Linux

Linux by Grossmann

Programando no Linux

Programadores no mundo inteiro estão adotando o Linux como plataforma preferencial para desenvolvimento de software, não apenas software GPL ou software open-source, mas todo tipo de software closed-source: freeware, shareware e payware.

A razão deste movimento é simples: o Linux é um ambiente extremamente estável e amigável ao programador. Não só todas as ferramentas de desenvolvimento GNU podem ser utilizada (compiladores, linkeditores, ferramentas de teste e documentação), como novas ferramentas estão sendo introduzidas no mesmo.

A quantia de linguagens de programação, quer compiladas, quer interpretadas, que estão disponíveis para o Linux é absolutamente estonteante. Desde linguagens script tradicionais, como Perl, Tcl/Tk, a linguagens mais novas, como Python, Java. Existem linguagens científicas, como o FORTRAN, liguagens didáticas, como Pascal, Modula e Oberon, e algumas linguagens “controversas”, como COBOL e BASIC. Existem até mesmo clones de programas famosos, como o Phoenix Object Basic, que imita muito bem o Microsoft Visual Basic®. Sem contar com linguagens novas, como Lua e outras.

Outro fator que atrai o interesse dos programadores para o Linux é a sua estabilidade. Você pode fazer um programa que se comporte mal, mas terá que se esforçar para fazer um programa que derrube o sistema.


  Interpretadores  

Existem vários interpretadores de comando para Linux. Os mais famosos são, sem dúvida, o Python e o Perl, ambos orientados a objeto e que podem ser utilizados interativamente.

Outros interpretadores menos conhecidos incluem o interpretador de linguagem C, o Tcl/Tk, que é relativamente bem utilizado, e o próprio shell -- isto mesmo, você pode escrever programas simples utilizando os recursos de programação embutidos no bash, o shell que mais é utilizado no Linux.

Outro interpretador pouco utilizado é o bc, um programa-calculadora que pode ser utilizado para fazer programas simples de cálculos ou para fazer cálculos rapidamente na linha de comando. A maioria das distribuições Linux conta com uma versão do bc no seu CD de instalação.

Há inclusive um interpretador de JavaScript, que pode ser utilizado em linha de comando.


  Compiladores  

Os compilador que mais é utilizado no Linux é, sem sombra de dúvida, o gcc, que é usado não só para compilar código C/C++, mas também para fornecer a base de outros compiladores, como da linguagem FORTRAN 77. A útima versão do gcc é capaz de compilar até mesmo código Java.

Outro compilador que merece destaque é o javac da BlackDown, utilizado pela Sun como base para a sua versão de compilador Java para o Linux. O projeto BlackDown foi criado para criar um compilador e máquina virtual java que fosse livre.

Há ainda o FreePascal, um compilador para a linguagem Pascal, capaz inclusive de emular o comportamento do Delphi®. Outros compiladores menos conhecidos de linguagens Pascal-like incluem o Oberon e o Modula-2 e Modula-3.


  Ferramentas RAD  

Por Ferramentas RAD (Rapid Application Development) entende-se uma ferramenta utilizada para facilitar o desenvolvimento de aplicações, quase sempre combinando compilador, editor, linkeditor, depurador e, em alguns casos, profiler.

Existem várias ferramentas RAD em uso no Linux atualmente. Para Java existe o Forté e o NetBeans. Existe o Kylix da Borland, que permite o desenvolvimento de programas em Object Pascal. Há também algumas ferramentas pouco conhecidas, como o RHIDE, que é semelhante ao IDE (Integrated Development Environment) dos antigos Turbo C e Turbo Pascal da Borland.

Cabe também citar o KDevelop (fantástico, segundo o Mad@Spammers) e o Anjuta. O Anjuta, além de fornecer um ambiente integrado para programação C e C++ no Linux, tem várias funções avançadas, como gerenciamento de projetos, "wizards" de programas, um depurador interativo, e o editor conta com navegação de código fonte e sintaxe colorida. O KDevelop parece ser o mais avançado ambiente de desenvolvimento. Suportando programação C/C++, ele tem um wizard de aplicações que facilita a criação de aplicativos KDE 1&e, Qt 1&2, GNOME, e projetos para terminal. Tem também administração de projetos, um editor que suporta sintaxe colorida, um editor de diálogos integrado, depurador, navegador de classes, suporte a CVS, e mais uma coisinha ou outra...

A IBM também tem alguns RAD's para Linux, como o WebSphere, que permite o desenvolvimento de aplicações para Internet. A Oracle também tem um ambiente integrado para desenvolvimento de aplicações para a Internet que acessem dados em um servidor Oracle.


  Servidores de Aplicação  

Com o advento da Internet tornou-se popular escrever programas para a rede, e surgiram ferramentas para o serviço. A primeira linguagem a se destacar na rede foi o Perl, utilizada em CGI scripts.

Atualmente existem várias ferramentas para quem vai trabalhar com servidores de aplicação. Há a linguagem PHP, que pode ser utilizada para criar aplicações idênticas ao ASP da Microsoft.

Há também servidores de aplicação no sentido da palavra, como o Zope e o Midgard, que incluem um ambiente de desenvolvimento rudimentar, mas funcional.

Outros servidores de aplicação estão dando os primeiros passos, como o GNU Enterprise, que deve prover a mesma funcionalidade que o “forms” do Oracle, ou seja, ser um servidor de aplicações empresarial.


  Documentação  

A documentação para o programador Linux é bastante extensa. Comecemos pela documentação que pode ser encontrada no Linux Documentation Project:

No lado dos guias, temos o Linux Programmers Guide, um guia básico para escrever programas para o Linux, bem como uma referência de algumas funções do Linux.

Na seção de HOWTO's, temos vários documentos que podem ser conferidos em http://www.LinuxDoc.org/HOWTO/HOWTO-INDEX/programming.html, uma relação categorizada de documentos explicando: como administrar projetos de software no Linux; como usar o gcc e ferramentas associadas para compilar, linkeditar, executar, e depurar programas no Linux; algumas linguagens de programação Linux (como obter, instalar e usar); como usar e criar bibliotecas; algumas interfaces/API/protocolos; como programar de forma segura; algumas ferramentas; bancos de dados (instalação e uso em programas no Linux); e alguma coisa sobre Inteligência Artificial e o Tango.

Saindo do LDP, temos alguns livros na Internet, como o Advanced Linux Programming, um livro que pode ser baixado ou adquirido. Há ainda alguns livros de programação no site do OReilly Open Books Project, que podem ser baixados em formato PDF ou HTML.


  Meus Programas  

Como todo bom fuçador de computador, eu também escrevi um ou outro programa. Na falta de lugar melhor para colocar os mesmos, vou hospedar o que for possível nesta página. O código está aí, quem achar útil que o use.

  Filtro de CNPJ/CPF  

Em meu trabalho eu lido, pelo menos uma vez por semana, com uma lista de CPFs e CNPJs que me é fornecida por outra pessoa. Esta pessoa não faz nenhuma verificação e, eventualmente, erra na digitação, de forma que eu sempre preciso verificar se os números fornecidos são todos válidos. Por isto bolei este programa, que trabalha como um filtro. Tentei seguir o princípio do UNIX (seja pequeno, faça apenas uma coisa, e a faça bem feito), e deu no que deu. Acompanha o programa um arquivo README que deve ser bastante explicativo. Talvez algum dia eu escreva uma página man para o mesmo, e outras coisas (só pelo benefício da aprendizagem, por que o programa está praticamente finalizado, -- eu, pelo menos, não consigo ver nenhuma evolução no futuro deste programa, pelo menos na CLI).

Download do arquivo: cnpjcpf.tar.gz


  Observações Finais  

Existem muitas ferramentas e documentação disponível para programadores que estejam interessados em utilizar o Linux como plataforma primária de desenvolvimento. Desde a documentação escrita para programadores (o "Linux Programmer's Guide", que pode ser encontrado no LDP), a livros que ensinam o básico da programação para Linux, de scripts a programas gráficos (falo do livro "Beginning Linux Programming", da Wrox Press, na sua segunda edição.

Existem alguns sites que são dedicados à programação Linux e Open Source em geral. Destaca-se o SourceForge, um site que hospeda projetos e oferece serviços como bug tracking, controle de versões, “compiler farms”, e ambientes de teste de programas.

Outro site interessante para quem faz programas é Linux Programming, um portal dedicado à programação em geral, contando com bibliotecas de soluções, e seções dedicadas à várias linguagens disponíveis no Linux. Acrescente-se a isto um diretório sobre programação, com páginas de compiladores, ferramentas IDE, RAD, bibliotecas, interpretadores, e muitos mais recursos.



© 2001 César A. K. Grossmann
Esta página é OpenContent, e pode ser utilizada nos termos da OpenContent License.
1