As Linguagens de Programação que Tem de Aprender

Sexta-feira, 10 Dezembro 2021

Por: Laboratório de Inovação Pedagógica e Educação a Distância (LIED), do Institituto Politécnico de Tomar

As Linguagens de Programação de que Tem de Aprender

A sociedade está em constante mudança e algumas invenções causaram revoluções profundas e irreversíveis, como a descoberta da agricultura, da máquina a vapor, os computadores ou a Internet.

Na verdade, os “computadores” estão em toda a parte, seja da forma convencional, com teclados e monitores, ou embutidos nos objetos que utilizamos no nosso dia a dia, como os telefones, carros ou eletrodomésticos inteligentes. Ora, estes dispositivos são constituídos por componentes físicos, o hardware, a exemplo do monitor, do microprocessador ou da memória RAM, que permitem transformar sinais elétricos em tarefas e informações úteis aos seus utilizadores. E se estes componentes comunicam entre si através de uma linguagem binária que possui apenas dois símbolos, zero e um (sem e com eletricidade), já a nossa forma de comunicação é mais rica e complexa, pois utilizamos linguagens naturais de alto nível, como o português ou o inglês. Para fazer, então, a ponte entre estas duas formas de comunicação existem as linguagens de programação. Uma linguagem de programação é formada por um conjunto de palavras organizadas segundo uma gramática, que geram instruções para serem executadas de forma automática por computadores. Um programa é um conjunto de instruções organizadas de forma lógica, que permite executar uma tarefa. Programar consiste, portanto, em ensinar o computador a desempenhar tarefas.

O que torna os computadores muito úteis é a sua capacidade de adaptação a ambientes diversos, sendo que esta versatilidade só é possibilitada pela utilização de linguagens de programação.

Nas linguagens de baixo nível, como por exemplo o Assembler, existe uma relação direta entre as suas instruções e o código binário executado pela máquina. As linguagens de alto nível, por seu lado, são codificadas numa linguagem formal utilizando palavras das linguagens naturais, usualmente a língua inglesa.

As linguagens de alto nível podem ser agrupadas tendo em conta a forma como as instruções são organizadas no programa. O paradigma imperativo ou procedimental é o mais simples, funcionando como um conjunto de instruções organizados por blocos e procedimentos, executados sequencialmente. A forma como estas linguagens resolvem os problemas, o algoritmo, é muito semelhante à forma como os humanos comunicam e, por isso, a aprendizagem da programação é feita, na maioria das vezes, através das linguagens naturais. No paradigma Orientado a Objetos, os programas utilizam abstrações de objetos aos quais são atribuídas propriedades, como, por exemplo, o titular ou o saldo de uma conta bancária, e que podem executar ações, como por exemplo depositar ou levantar valores.  Os programas manipulam objetos que interagem entre si através da troca de mensagens e alterando as suas propriedades. A produção de software em contexto industrial é feita maioritariamente por linguagens desta tipologia, utilizando ambientes de desenvolvimento integrado (IDE), concebidos para assegurar a produtividade dos programadores e a qualidade do software.

Existem muitas linguagens de programação, umas de propósito geral, e outras desenvolvidas para facilitar o desenvolvimento de programas para determinadas áreas. Podemos classificar os programas em aplicações para desktop, aplicações web, dispositivos móveis e sistemas embebidos. A produção de aplicações desktop destina-se a desenvolver programas que operam em computadores tradicionais, onde a interação com o utilizador é feita através de uma consola de texto ou de uma interface gráfica. As aplicações web utilizam a Internet e são executadas por um browser. Usualmente estas aplicações são alojadas e executadas num servidor remoto e a interface com o utilizador é feita na janela do browser num paradigma cliente/servidor. As aplicações para dispositivos móveis são executadas em equipamentos com ecrãs sensíveis ao toque, como por exemplo tablets ou smartphones, e fazem uso dos sensores disponíveis como, por exemplo, a câmara ou o GPS. Os sistemas embebidos são programas que operam em dispositivos eletrónicos que tradicionalmente não são vistos como computadores, como, por exemplo, robots, carros autónomos ou eletrodomésticos.

Devido ao elevado número de linguagens existentes a escolha pode não ser um processo simples. Se for um iniciante em programação, sugerimos que comece por aprender lógica de programação e algoritmos para a resolução de problemas utilizando pseudocódigos ou fluxogramas. O Algorithmi é um excelente ponto de partida para a aprendizagem destas duas competências, pois sem elas as linguagens de programação não terão qualquer utilidade.

Se já possui conhecimentos de algoritmia, a escolha da próxima linguagem de programação deve ter em conta o tipo de aplicações que deseja desenvolver, seguido da sua popularidade, que garante que existe uma comunidade que o ajude na sua aprendizagem e, por fim, a sua utilidade no mercado de trabalho presente e futuro. Os websites Top Programming Languages[i] ou TIOBE Index[ii] fornecem um ranking de popularidade das linguagens de programação, organizados por diversos critérios.

De seguida apresentamos algumas linguagens que cumprem os requisitos anteriores.

Python - É uma linguagem simples e fácil de aprender, e um excelente investimento, pois está em franco crescimento de popularidade e potencialidades. O poder desta linguagem advém do facto de ter uma comunidade muito ativa que desenvolve e mantém um conjunto de bibliotecas que asseguram o seu desenvolvimento para a web, desktop, inteligência artificial e computação científica. Recentemente têm surgido sistemas embebidos com a capacidade de executar código python, o que a torna especialmente atrativa para a programação no domínio da Internet das Coisas (IOT).

C/C++ - A linguagem C é uma das linguagens mais populares da atualidade. Esta popularidade deve-se ao facto de uma grande parte das linguagens mais modernas adotarem a sua sintaxe e semântica. Os programas gerados por esta linguagem são muito rápidos, pois tèm uma tradução direta para Assembler, e é utilizado para programar sistemas de baixo nível, como sistemas operativos ou microcontroladores, com aplicação por exemplo na IOT. A linguagem C++ é uma evolução da linguagem C que possibilita a programação orientada a objetos, sendo respaldada por um vasto número de bibliotecas que permitem o desenvolvimento de aplicações com interfaces gráficas e orientadas por eventos.

Java – Esta linguagem é bastante popular e continua a ser um bom investimento, pois é uma das mais procuradas a nível empresarial. Foi a primeira linguagem verdadeiramente multiplataforma, possuindo um conjunto de bibliotecas que potenciam o desenvolvimento aplicações para a web e desktop, com uma comunidade muito ativa que promove o seu desenvolvimento e manutenção. É a linguagem nativa do sistema operativo Android e é usada também no desenvolvimento de aplicações (apps).

C# - É uma linguagem multiparadigma criada pela Microsoft para o desenvolvimento da plataforma .NET, servindo de suporte às aplicações que operam em Windows e no Azure. Devido à popularidade destas plataformas, o investimento na aprendizagem desta linguagem é fundamental para a programação destes sistemas. O C# é também a linguagem de programação da plataforma de desenvolvimento de jogos Unity.

JavaScript - É uma linguagem interpretada de forma nativa pelos browsers modernos, possibilitando o desenvolvimento de aplicações para vários tipos de dispositivos, extendendo o funcionamento do HTML (Hypertext Markup Language) e do CSS (Cascading Style Sheets) e, finalmente, permitindo a criação de páginas/interfaces web ricas e interativas. Mais recentemente esta linguagem é também usada no desenvolvimento de aplicações web server side, por exemplo, em ambiente NodeJS.

A nossa sociedade é cada vez mais tecnológica e está recheada de dispositivos computorizados. De tal modo assim é que no futuro a capacidade de comunicar e interagir com estes dispositivos será tão necessária e valorizada como a atual capacidade de ler e escrever.  

Efetivamente, os computadores e as redes de dados vieram para ficar, permitindo a troca de informações e a produção de uma quantidade infindável de dados que, se devidamente aproveitados, possibilitam um modo de vida mais inclusivo, com mais qualidade e sustentável, indo ao encontro do conceito de Sociedade 5.0. Para que tal aconteça, precisamos de aprender a comunicar com os computadores e a forma de o fazer passa pelo domínio das linguagens de programação.

Autores do artigo:

António Manso, manso@ipt.pt

Laboratório de Inovação Pedagógica e Educação a Distância (LIED)

Instituto Politécnico de Tomar, Portugal

Célio Gonçalo Marques, celiomarques@ipt.pt

Laboratório de Inovação Pedagógica e Educação a Distância (LIED)

Instituto Politécnico de Tomar, Portugal

Hélder Pestana, helder.pestana@ipt.pt

Laboratório de Inovação Pedagógica e Educação a Distância (LIED)

Instituto Politécnico de Tomar, Portugal

Paulo Santos, psantos@ipt.pt

Laboratório de Inovação Pedagógica e Educação a Distância (LIED)

Instituto Politécnico de Tomar, Portugal


[i] https://spectrum.ieee.org/top-programming-languages/

[ii] https://www.tiobe.com/tiobe-index/