Voltando a falar de desenvolvimento de software no Linux (especialmente no Ubuntu), vamos começar a falar de codificação, e por um um nível mais baixo: C.
C é uma linguagem de baixo nível*, criada entre o final dos anos 60 e início dos anos 70, originalmente desenvolvida para a implementação do sistema Unix (originalmente escrito em PDP-7 Assembly, por Dennis Ritchie e Ken Thompson). Em 1973, com a adição do tipo struct, C tornou-se poderoso o bastante para a maioria das partes do núcleo do Unix, serem reescritas em C. [Wikipedia]
Por ser Unix-Like, o Linux possui muito C em sua estrutura e a maioria de seus aplicativos são construídos utilizando a linguagem C como padrão de projeto. Um dos exemplos de programas conhecidos que usa C é o próprio GIMP. Na verdade, a maioria das linguagens de programação atuais derivam de C, umas diretamente, como C++ ou C#, outras indiretamente, como o próprio Java.
Programar em C no Windows requer a instalação de um compilador GCC e configuração de variáveis de ambiente. No Linux, o GCC já vem instalado por padrão e não requer configurações adicionais.
Diferente do Java, que sua IDE já identifica erros de sintaxe, C não possui uma ferramenta poderosa tão popular quanto Java possui. Programar em C requer apenas um bloco de notas. Nada mais, mas no Windows é possível encontrar algumas ferramentas de programação em C, como o DEV C++. Pode se programar muito bem também com o Notepad++. E no Linux?
No Linux é possível programar em C através de seus próprios acessórios, como o Gedit que vem nos ambientes que usam GNOME, ou o Kate nos que usam KDE. Sua ventagem? Não requer a instalação de nenhum item adicional e ainda faz endentação de código, colorização de palavras reservadas da linguagem.
Para que seja feita e endentação e colorização correta de seu código, você pode selecionar a linguagem na parte inferior da janela do Gedit (à esquerda de “Largura das tabulações).
Compilar seus programas em C no Linux requer a utilização do Terminal. Para isso, através de linhas de comando (vou considerar que no papel de desenvolvedor ou estudante, você não tenha medo de linhas de comando e ainda já conheça os comandos básicos do Linux, como navegar por pastas e diretórios utilizando o Terminal) chame o compilador GCC passando como parâmetro do compilador algum dos itens abaixo:
g++ [opções] [parâmetros] arquivos.
-v ————————————————–Mostra detalhes da compilação.
-wall ———————————————-Mostra todos os warnings.
-onome ——————————————-Define o nome do arquivo de saída (opcional).
-w ————————————————-Elimina mensagens de warning.
-I/path ——————————————–Acrescenta path include.
-l/path/lib —————————————-Inclue biblioteca (lib).
-ggdb ———————————————-Informações extras para o gdb.
-O ————————————————-Optimiza o código (-O1,-O2,-O3).
-c—————————————————Somente compila (gera o arquivo *.o).
-S ————————————————–Somente compila o arquivo, não linka.
-lcomplex —————————————–Inclui biblioteca dos complexos.
-lm Include —————————————biblioteca matemática.
-E ————————————————–Cria somente o arquivo pré-processado.
-C ————————————————–Não inclui comentários no executável.
-g ————————————————–Gera informações para o debugger (código lento)
[Fonte: VoL]
Exemplo:
gcc -o nome_do_programa_depois_de_pronto nome_do_arquivo_fonte.c
Confira um exemplo de linha de comando de compilação de código-fonte C mais comum em Linux:
gcc -o simulador simulador.c
Existem IDE’s para criação de código C em Linux, mas na prática, não são tão funcionais quanto deveriam. Destaco o Code :: Blocks ou CodeLite, que pode ser instalada no Ubuntu através da Central de Programas do Ubuntu.
Para a aquisição de conhecimentos em C, recomendo a leitura do livro C Completo de Total – 3ª Edição de Herbert Schildt.
* Linguagem de baixo nível: Uma linguagem que está mais próxima da operação física do computador. São exemplos de linguagens de baixo nível Assembly e C (Assembly está num nível ainda mais baixo que C. C está abaixo de outras linguagens mais modernas). Assembly é uma linguagem que está presente em BIOS de placas-mãe. Já C é uma linguagem que pode estar presente em EFI’s, que substituem as BIOS em computadores mais modernos. Estas linguagens requerem um nível de abstração mais baixo no projeto de construção de softwares para poder ter um bom desempenho.
No próximo artigo sobre desenvolvimento de software, vamos falar de Java.


















