Antes de começarmos a programar, temos de verificar se o software necessário para esse efeito está instalado, e isso leva-nos temporariamente a outro tópico: a gestão e instalação de programas em Linux. A boa notícia é que, regra geral, é muito mais fácil instalar e desinstalar aplicações em Linux do que, por exemplo, em Windows. Por outro lado, a enorme quantidade de maneiras de realizar essa tarefa pode confundir o utilizador inexperiente. Vamos então tentar simplificar: cada distribuição de Linux tem o seu gestor gráfico de aplicações e pacotes (o seu "AppCenter" em linguagem corrente), cujo objetivo é apresentar, instalar e remover o software disponível (99% do qual gratuito e aberto) de forma apelativa; por exemplo, o Ubuntu tem o Ubuntu Software Center, enquanto o Mint tem o Mint Software Center. Existe no entanto um programa comum a todas as distribuições, embora menos "bonito", e que faz a mesma coisa: chama-se Synaptic Package Manager e vem instalado de raiz em algumas distribuições (e caso não venha, é fácil instalar). Todos estes diferentes "AppCenters" não são mais do que interfaces gráficas para o sistema base de gestão de aplicações e pacotes, chamado Apt. O Apt faz parte do núcleo duro do Debian e seus derivados, e vem sempre instalado de raiz. Ao contrário dos restantes "AppCenters", o Apt é usado através da temível linha de comando. Vou usar o Apt na demonstração da instalação de quaisquer aplicações (que neste post são as aplicações necessárias para programarmos em C). No entanto é bom ter a noção de que instalar ou remover um programa usando o Apt tem exatamente o mesmo efeito que fazê-lo com o Ubuntu Software Center, Synaptic, etc. (por exemplo, se instalarmos um programa com o Apt, esse mesmo programa vai aparecer como "Instalado" no Ubuntu Software Center).
A primeira coisa que temos de verificar é se o sistema básico de desenvolvimento de programas está instalado. Algumas distribuições trazem este sistema instalado de raiz, mas outras mais minimalistas (como o Bodhi) nem por isso. Vamos então usar o Apt para instalar (ou confirmar se está instalado) o sistema de desenvolvimento de programas. Para tal, basta abrir a linha de comandos2, e escrever (não meter o $!):
$ sudo apt-get install build-essential
Este comando pode ser críptico para quem não está habituado ao Apt, mas é na realidade bastante simples: estamos a pedir ao Apt para instalar o build-essential, que é o nome do pacote que contém o sistema básico de desenvolvimento de programas. O comando sudo indica que o Apt deve ser executado em modo super-utilizador/administrador, o que normalmente implica a solicitação da palavra-passe ao utilizador. No próximo post vou falar sobre sobre a linha de comandos (incluindo o Apt), pois trata-se de um tópico muito importante para quem deseja perceber como um computador funciona na realidade. Caso o build-essential já esteja instalado, o Apt vai indicar uma mensagem do género:
build-essential is already the newest version.
Caso contrário, o Apt vai pedir confirmação para instalar o pacote e as respectivas dependências3. Estamos prontos para escrever o nosso primeiro programa em C. Para criar o programa é necessário um editor de texto, de preferência com realce de sintaxe, para facilitar a escrita desse mesmo programa. Todas as distribuições de Linux costumam trazer três editores de texto, dois baseados na linha de comando (nano e vi4) e um com interface gráfica. O Ubuntu e o Mint trazem o gedit por defeito, embora distribuições mais leves normalmente optem pelo LeafPad ou MousePad, que são bastante limitados. Caso não encontrem o gedit nos menus da vossa distribuição Linux, é fácil instalar usando o Apt no terminal (ou a tua "AppCenter" preferida):
$ sudo apt-get install gedit
Neste blog vou usar o gedit a maior parte das vezes, pois é rápido, simples e realça a sintaxe de todas as linguagens de programação que vão ser discutidas neste blog. Além disso, o gedit não esconde os detalhes do desenvolvimento do software, e permite ao programador iniciante entender completamente o que se está a passar, ao contrário de alguns IDEs5. As distribuições baseadas no ambiente gráfico KDE6 (tais como o Kubuntu) normalmente trazem o editor Kate, que é do mesmo nível de qualidade do gedit, ou até superior; caso optem por usar o ambiente KDE, podem perfeitamente usar o Kate em vez do gedit.
Vamos então escrever o nosso primeiro programa em C. Abre um terminal e cria uma pasta onde vamos colocar o nosso primeiro código C:
$ mkdir aprender_c
O comando anterior significa "make directory", ou seja, cria uma pasta ou diretoria. Em seguida vamos para "dentro" dessa diretoria:
$ cd aprender_c
O comando anterior significa "change directory" e vai-nos colocar "dentro" da pasta que acabamos de criar. Em seguida vamos criar o nosso programa em C usando o gedit (ou o teu editor preferido):
$ gedit primeiroprog.c &
O comando anterior invoca o editor gedit, que vai assumir um novo ficheiro chamado primeiroprog.c, localizado na pasta que acabamos de criar. O caractere & no final do comando indica que queremos voltar a ter o controlo do terminal após invocar o gedit (se experimentares o mesmo comando sem o & no fim, vais verificar que o terminal fica bloqueado até fechares o gedit). Obviamente, também é possível invocar o gedit diretamente através do menu, e guardar posteriormente o novo ficheiro na pasta criada. Agora, faz copy-paste do código em baixo para dentro do gedit, e guarda o ficheiro.
#include <stdio.h> int main() { printf("O meu primeiro programa em C!\n"); return 0; }
Agora vamos compilar o programa, ou por outras palavras, vamos transformar o nosso código C num ficheiro executável. Para tal, executa o seguinte comando no terminal:
$ gcc primeiroprog.c -ansi -Wall -pedantic -g -o primeiroprog
Em princípio não deverás ter erros neste processo. Vamos então executar o nosso programa:
$ ./primeiroprog
O resultado deverá ser:
O meu primeiro programa em C!
Sucesso! Não te preocupes se não percebeste estes últimos passos do processo. Estamos apenas a verificar se o nosso sistema Linux está de facto preparado para desenvolvermos programas em C. Vamos voltar a este primeiro programa mais tarde e dissecar ponto por ponto o que cada um dos passos indicados significa.
Até breve!
1 Não referi estas duas últimas distribuições no meu último post, mas resumindo muito rapidamente, o Bodhi Linux é super-leve e minimalista (usa uma interface gráfica chamada Enlightenment), sendo necessário instalar praticamente tudo o que o utilizador quer usar. Por usa vez, o Pear Linux é basicamente o Ubuntu com uma interface Gnome-shell personalizada para se parecer com a interface do MacOS X.
2 A aplicação Terminal dá-nos acesso à linha de comandos. No Ubuntu ou no Mint basta carregar na tecla "Start" (com o logotipo do Windows, entre o Ctrl e o Alt, do lado esquerdo), começar a escrever "Term...", e a aplicação Terminal aparece logo. Noutras distribuições, o terminal pode ser acedido através do menu "Acessórios => Terminal". Por vezes as distribuições trazem diferentes tipos de aplicações Terminal, que podem ter nomes como LXTerm, Terminology, Konsole, ROXTerm, Sakura, XTerm, etc. Normalmente é possível invocar a aplicação Terminal em qualquer distribuição pressionando as teclas Ctrl+Alt+T.
3 Muitos programas dependem bibliotecas ou aplicações de terceiros para funcionar, evitando assim "reinventar a roda" para realizar algumas das suas funcionalidades (o mesmo acontece no Windows através dos ficheiros .dll, que por vezes dão problemas e conflitos). Nos sistemas modernos de Linux todas as dependências das aplicações disponíveis nos repositórios são geridas automaticamente pelo Apt (ou pelo "AppCenter" que estivermos a usar), poupando muitas preocupações ao utilizador.
4 O vi, bem como a sua versão melhorada, vim, são editores de texto do mais diferente e estranho que se possa imaginar. Inicialmente são totalmente contra-intuitivos, porém, os fiéis juram a pés juntos que após dominar um ou outro, a produtividade na programação mais que duplica. Não sei se isto é verdade, pois eu não uso nem um nem outro, mas fica a dica.
5 IDEs - Ambientes de desenvolvimento integrado tais como o Eclipse, NetBeans, Code::Blocks ou Kdevelop (ou o Visual Studio no Windows), podem facilitar e acelerar imenso o desenvolvimento de software; porém, para o programador iniciante, os IDEs podem complicar mais do que simplificar, pois ofuscam detalhes importantes do que está na realidade a acontecer, tornando difícil a resolução de certos problemas. Na minha opinião, o programador só deverá começar a usar um IDE quando dominar minimamente a linguagem de programação em questão (especialmente C); até lá, a melhor opção é usar um editor simples tipo gedit para editar o código juntamente com a linha de comando para compilar e executar os programas desenvolvidos. Existe um programa chamado Geany, que oferece algumas facilidades de um IDE sem esconder a complexidade do desenvolvimento de programas (tem inclusive uma linha de comando incorporada...). Todos estes IDEs podem ser instalados na tua distribuição de Linux através da tua "AppCenter" preferida (Apt, Synaptic, etc...).
6 O KDE consiste num ambiente gráfico, bibliotecas gráficas e conjunto de aplicações para Linux. A sua interface é das mais avançadas hoje em dia, embora nem toda a gente o aprecie. Os seu principal concorrente é o Gnome 3 (bibliotecas gráficas + conjunto de aplicações), embora este esteja fragmentado em vários ambientes gráficos tais como o Gnome-shell (ambiente gráfico por defeito no Gnome 3), Unity (ambiente gráfico do Ubuntu) e Cinnamon (ambiente gráfico do Mint).
Sem comentários:
Enviar um comentário