5 IDEs para programar no Linux

Os ambientes integrados de desenvolvimento (Integrated Development Environment> ou IDEs) são conjuntos de ferramentas que visam a oferecer ao desenvolvedor(a) tudo o que ele(ela) necessita para trabalhar: editor, corretor, debugger, compilador/interpretador etc.
O objetivo da IDE é proporcionar conforto, eficiência e desempenho a projetos de desenvolvimento de todos os tipos e tamanhos.

O Linux é muito rico em ferramentas para programação e é apontado como uma opção segura para profissionais sérios(as).
Neste post, vou me limitar a falar das opções disponíveis na interface de instalação Programas no Debian 10 “Buster” (testing edition).
Debian Ubuntu Instalar programas

Mesmo que a sua distro favorita seja outra, tenho certeza (quase) absoluta de que você vai encontrar todas estas opções lá também.
Para estar nesta lista, os itens precisam obedecer os seguintes requisitos:

  1. Precisa estar disponível no repositório oficial do Debian
  2. Precisa estar disponível na busca do painel de instalação Programas.
  3. Precisa ser uma ferramenta genérica, voltada para várias linguagens de programação e não apenas uma ou outra plataforma específica.

Use a sessão dos comentários, para me avisar (se não encontrou alguma coisa) ou para sugerir outras opções. 😉

Anjuta DevStudio

anjuta ide

Escrito, desde o inicio para o ambiente GNOME, o Anjuta DevStudio tem uma interface totalmente integrada.
Foi lançado em Dezembro/1999 e é, portanto, um projeto com aproximadamente 20 anos de estrada.
Entre seus principais atributos, o site oficial lista:

  1. Interface simplificada de usuário.
  2. Possui assistentes de projeto e modelos prontos.
  3. Tem suporte a C, C++, Java, JavaScript, Python e Vala.
  4. Integração total com o Glade, ferramenta de design de interfaces.
  5. GDB integrado, para depuração completa.
  6. DevHelp, como sistema de ajuda integrado e sensível ao contexto.

Code::Blocks

code blocks ide

A proposta do Code::Blocks é ser uma plataforma de desenvolvimento de código aberto, voltada para as linguagens C, C++ e Fortran.
Tem suporte a múltiplos compiladores, como o GCC, MSVC++, Clang Digital Mars etc.
O programa é especialmente projetado para ser estendido, através de plugins e receber variadas configurações.

Eclipse

eclipse ide linux

O projeto da IDE Eclipse já tem mais de 15 anos e começou dentro da IBM, em um projeto chamado VisualAge, voltado a construir ferramentas de desenvolvimento para os próprios projetos da empresa.
Atualmente, o Eclipse tem suporte a mais de 45 idiomas e a dezenas de linguagens de programação, como Ada, ABAP, C, C++, C#, COBOL, D, Fortran, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby (inclusive Ruby on Rails framework), Rust, Scala, Clojure, Groovy, Scheme, e Erlang.
O suporte a estas e outras linguagens é adicionado por meio de plugins.
Tal como o Code::Block, tem suporte a diferentes sistemas operacionais e, portanto, pode ser uma ótima opção para projetos multi-plataforma.

Geany

geany ide linux

O Geany é o queridinho entre desenvolvedores que apreciam o equilíbrio entre a quantidade de recursos e o bom desempenho de uma IDE leve.
O objetivo que guia este projeto é manter sempre este equilíbrio — que é alcançado, entre outras coisas, mantendo o mínimo de dependência de bibliotecas de terceiros.
Portanto, é indicado também para quem tem espaço limitado no computador de trabalho.
Tem suporte a C, Java, PHP, HTML, Python, Perl e Pascal.

Netbeans

Outra IDE desenvolvida por uma grande companhia, o NetBeans surgiu dos laboratórios da Sun Microsystems.
Inicialmente, o objetivo era prover um ambiente integrado aos desenvolvedores Java – dentro e fora da empresa.
Mas o projeto cresceu e adquiriu “vida própria”. Sobreviveu, até mesmo, a aquisição da Sun pela Oracle.
O projeto, hoje, tem suporte a dezenas de linguagens de programação (através de plugins) e pode ser usado até mesmo para desenvolver temas para WordPress.

Menções honrosas

Tive que conter o meu entusiasmo para não continuar escrevendo.
A lista ultrapassaria 10 itens, facilmente.
Apesar disso, faço questão de mencionar 3 IDEs e os motivos pelos quais ficaram fora desta lista.

  1. O Eric ficou de fora por ser um projeto exclusivamente voltado ao Python.
    Contudo, é um ambiente de programação fantástico e, se você é desenvolvedor Python, definitivamente recomendo que vá aos Programas conhecer esta opção.
  2. O Kdevelop também merece estar em qualquer lista de IDEs para a plataforma Linux e ele também pode ser encontrado no painel de instalação.
    Ficou de fora por ser voltado ao ambiente gráfico KDE — o que implicaria (para quem usa o GNOME, como ambiente padrão) em instalar uma enorme quantidade de bibliotecas para Qt e KDE.
  3. O Codelite, por pouco, não me fez aumentar a lista de 5 para 6…
    No Debian, ele pode ser instalado pela CLI, por que faz parte dos repositórios oficiais.
    O problema é que não consegui encontrá-lo no painel gráfico de instalação — e este seria o segundo pré-requisito para entrar na lista.
    Na sua distro, aí, é possível que ele esteja presente — dá uma olhada!
    Se não estiver e quiser conhecer o ambiente, use o apt (ou dnf):

    
    sudo apt install codelite
    

O exemplo do Codelite, aqui, mostra por que desenvolvedores não podem abrir mão da linha de comando, sob pena de deixar passar coisas importantes.
Se cometi algum erro ou alguma injustiça, por favor, me conte na sessão de comentários.

Ferramentas de programação para desenvolvedores Debian e Ubuntu (GUI)

Por mais completos que os ambientes de programação dos sistemas operacionais GNU/Linux Debian ou Ubuntu já estejam, logo após a instalação, sempre vai faltar alguma coisa.
O básico, compiladores e interpretadores C, C++, PHP, Python, Perl etc. já estarão ali, a postos, para você começar a escrever e testar o seu código.

Como editor de programação, o Gedit oferece realce de sintaxe para (quase) todas as linguagens de programação. Visualmente, tem a sofisticação de oferecer temas diversos para não cansar a sua vista.
Se quiser ou precisar de algo mais, os repositórios estão repletos de aplicativos á sua escolha.
Debian Ubuntu Instalar programas

Abra o Programas (loja de apps, padrão no GNOME) e tecle Ctrl + F (^F) para começar a busca.
No exemplo, abaixo, foi feita uma busca por “python”.
Tela de instalação de ferramentas de programação para Python

Além da sua linguagem de programação favorita, faça a busca por “IDE” e “editor”, para encontrar opções interessantes para você — não tenha pressa.
Se não tiver medo de usar a linha de comando (CLI), você pode encontrar muito mais opções para desenvolvedores.
Se você tem interesse em interpretadores e compiladores de versões específicas, vai ter que ir buscar na CLI. No link, acima, eu ensino como.

Se o seu objetivo é desenvolver especificamente para o ambiente GNOME, vai achar interessante instalar o Builder.
Para desenvolvedores Android, há o um kit de desenvolvimento completo disponível, chamado Android Studio.

Leia mais sobre como encontrar ferramentas de programação para Debian e Ubuntu, usando a CLI.

Como se tornar desenvolvedor(a) Red Hat Linux.

A Red Hat tem investido para melhorar seu programa voltado a criar uma comunidade mais sólida de desenvolvedores em torno da sua própria versão do GNU/Linux.
Para fazer parte do programa, é necessário apenas se cadastrar no site da empresa e fazer o download da(s) versão(ões) desejadas do sistema operacional.

É possível usar o QEMU para rodar qualquer uma das versões do Red Hat.
Da mesma forma, é possível rodar com o KVM ou o VirtualBox (do Windows, por exemplo).
O ideal, como sempre, é fazer seus backups, formatar seu notebook e instalar a distro — ou seja, imergir na plataforma.
red hat oficial logo

O Red Hat Developer Program foi lançado com o objetivo de prover uma experiência completa para desenvolvedores(as) que desejam criar e manter softwares corporativos dentro da plataforma da empresa.
Através do programa você terá acesso a ferramentas de desenvolvimento (presentes no pacote de instalação) e no site da empresa.
O cadastro é gratuito.

O programa permite que desenvolver, testar, criar protótipos e demos de seus softwares na mesma plataforma corporativa que a Red Hat oferece a seus grandes clientes.

Através do programa, a empresa dá acesso a recursos e a um completo ecossistema de experts que podem ajudar o trabalho de desenvolvimento ser mais produtivo.

A suíte de aplicativos Red Hat Development Suite provê os seguintes itens:

  • Red Hat JBoss Developer Studio 11.1
  • Red Hat Container Development Kit 3.2
  • Red Hat JBoss Enterprise Application Platform 7.0
  • Red Hat JBoss Fuse Integration Platform and Tooling
  • OpenJDK 8

Além disto, você poderá instalar outras ferramentas que julgar adequadas ao seu ambiente de trabalho, como IDEs, compiladores, editores de texto etc.

Referências

Red Hat Developer Program: https://developers.redhat.com/products/rhel/download/.
Página em português do programa da Red Hat: https://access.redhat.com/documentation/pt-br/red_hat_enterprise_linux/7/html/installation_guide/chap-download-red-hat-enterprise-linux.
Como gravar o Linux em um pendrive: https://elias.praciano.com/2017/01/como-gravar-linux-em-um-pendrive/.

Brinque com o TRS 80, uma das máquinas glamourosas dos anos 70 e 80, no Linux

Com emuladores, hoje é possível estar em vários lugares, conhecer e revisitar diversos “brinquedos” e, até mesmo, voltar ao passado.
O sistema de micro computador TRS 80 foi uma linha importante de microcomputadores, lançada pela companhia Texana (EUA) Tandy Corp.

No Brasil, em função da Política Nacional de Informática e da prática de uma reserva de mercado, esta linha foi vendida na forma de clones compatíveis com os originais.
Alvo de críticas extremamente ácidas, a reserva de mercado para fabricantes de computadores nacionais (brasileiros) teve aspectos positivos, que convém ressaltar:

  1. Desenvolvimento básico da indústria nacional de informática, com a consequente geração de empregos especializados e desenvolvimento científico no setor.
  2. E, pessoalmente, creio que o design dos nossos clones, em vários casos, superavam o original estrangeiro — com destaque pro CP-400 (eu morria de inveja dos amigos que tinham este…)

As pessoas ainda tem discussões acaloradas sobre esta política, no Brasil e – neste artigo, pelo menos – pretendo me manter afastado disso, para não perder o foco do TRS-80 e de seu emulador. 😉

No nosso território, foram vendidos, nos modelos CP 300, CP-400, CP-500 (Prológica) e D-8000 (Dismac).
Chamava a atenção, no hardware, o teclado QWERTY completo e o novíssimo processador Zilog Z80 (que competia com o Intel 8080), 4K de memória RAM e a presença da linguagem de programação BASIC .
Nos EUA, o preço era equivalente a 2.400,00 dólares (atualizados para 2017).

Como instalar o emulador do TRS-80 no Linux

No Debian/Ubuntu, o emulador xtrs está disponível nos repositórios oficiais e pode ser instalado a partir do terminal, com o apt:


sudo apt install xtrs

Trata-se de um emulador GUI para os modelos TRS-80 I, II, III, 4 e 4P.
O emulador estende suas capacidade a periféricos, como o monitor, suporte a fita cassete, disquete (podem ser usadas as mídias reais, inclusive) e disco rígido.
Suporta ainda, importar e exportar arquivos do sistema hospedeiro
Você vai precisar obter as imagens ROM para conseguir dar um boot com sucesso.
No site TRS-80.com é possível obter disquetes com conteúdo útil (inclusive as ROMs) para usar com o xtrs.

Como obter os arquivos ROM

Até aqui, tudo foi fácil, eu espero.
Encontrar as ROMs requeridas para fazer o emulador funcionar pode vir a ser um verdadeiro teste para a sua paciência.
O problema é que, apesar do tempo decorrido, o conteúdo original das ROMs ainda está sob os direitos da Tandy e da Microsoft.
Nos fóruns da comunidade de usuários do emulador, é possível encontrar quem possa te enviar estes arquivos.
De acordo com o site Gaming After 40, só é necessário o MODEL1.ROM, ou trs80model1.rom, como arquivo requerido para fazer o xtrs decolar.
xtrs trs-80 emulador

De cara, ele já permite usar a linguagem de programação BASIC para começar a dar instruções ao sistema.
Consegui por o meu sistema no ar após ler o último link (em inglês), abaixo, na sessão Referências.
Boa sorte!

Referências

Página de direcionamento da Wikipedia sobre os TRS-80: https://pt.wikipedia.org/wiki/TRS-80.
Mais informações sobre o uso do emulador (em inglês): http://www.trs-80emulators.com/model-1-3-4-emulator/.
Aonde encontrei informações muito úteis (inclusive aonde baixar ROMs): https://gamingafter40.blogspot.com.br/2010/12/how-to-emulate-trs-80-model-iiii.html.

Perl, PHP e Python.

Cada qual com suas próprias vantagens e desvantagens, Perl, PHP e Python têm mais do que a letra ‘P’, no início de seus nomes, em comum.
Trata-se de 3 linguagens de programação modernas e muito populares.

Para se tornar um bom programador, dominar uma única linguagem de programação não é o suficiente.
É muito comum nos envolvermos em projetos que fazem uso de mais de uma linguagem, como meio para solucionar problemas.
Fazer a mudança de uma linguagem de programação para outra é mais fácil quando se tem intimidade com mais de uma.
O problema é que há muitas linguagens de programação no mundo.
Neste post, vou tentar mostrar porque Perl, PHP e Python merecem que você dedique parte do seu tempo para aprender, pelo menos, uma delas.
Claro que a escolha de uma linguagem, para erigir um projeto, parte de se considerar diferentes fatores — tais como

  • as funcionalidades que se deseja que as aplicações tenham,
  • que novos recursos elas devem suportar,
  • a(s) plataforma(s) de hardware/sistemas operacionais para as quais se vai desenvolver as soluções
  • performance, segurança, quantidade de código que precisará ser criado, a comunidade etc.

As linguagens dos ‘P’, são dinâmicas e poderosas, cada qual do seu jeito e têm em comum o fato de que são muito usadas para desenvolver aplicações web e scripts.
Vamos conhecer um pouco de cada uma, suas vantagens e (lógico!) desvantagens.

Perl

O Perl (nas versões 5.x e 6.x) é uma linguagem de programação dinâmica, interpretada, de propósito geral e de alto nível.
Originalmente desenvolvida por Larry Wall, em 1987, para uso no sistema operacional Unix — tinha um objetivo inicial de facilitar o processamento de relatórios de sistema.
O Perl passou por várias mudanças e revisões e tem sido reprojetada na versão 6 — a ponto de evoluir para uma nova linguagem, em relação á original.
Ambas as ramificações (Perl 5 e 6) têm desenvolvimento ativo e independente uma da outra, formando a família de linguagens Perl.
A família pega emprestado características de outras linguagens importantes, como C, shell script, AWK e sed.
Atualmente, encontra aplicação na administração de sistemas, programação de redes, aplicações financeiras, bioinformática etc.

Manipulação de cadeias de caracteres (strings) e expressões regulares são pontos fortes conhecidos do Perl.

Vantagens

  • Perl é muito boa para lidar com expressões regulares e costuma ser a primeira opção para fazer trabalho pesado nesta área.
  • Seu código é bem curto e, comumente, é possível implementar soluções com apenas uma linha de código.
  • Pode ser usada como linguagem funcional, imperativa, procedural ou orientada a objetos.
  • O CPAN do Perl provê uma grande quantidade de módulos e código testado. Boa parte é gratuita.
  • Por ser uma linguagem, já tradicional e com bastante estrada (mais de 30 anos), conta com muita documentação online e uma grande comunidade de suporte.
  • Portabilidade e disponibilidade a todas as plataformas.

Desvantagens

  • Uma vez que tem sintaxe complexa, iniciantes podem ter alguma dificuldade de entender.
    O mesmo código pode ser escrito de modos diferentes — o que é muito bom, quando se já tem um conhecimento mais avançado sobre a linguagem, mas pode ser fator de confusão para quem está aprendendo.
  • Comparado ao Python, tem documentação escassa sobre como programar orientado a objetos.
  • Pode ser lenta, em comparação com outras linguagens de script.

Popularidade

Mesmo não sendo “nova no pedaço”, seu crescimento tem sido lento, (novamente) comparado a outras linguagens.
Ainda assim, goza de grande popularidade e de uma comunidade engajada.

PHP

Também se trata de uma linguagem de propósito geral, mas é amplamente usada em websites.
Projetada por Rasmus Lerdorf, é uma linguagem de script interpretada server-side, desenvolvida com o propósito de ser usada no desenvolvimento web — sendo que, inicialmente, seu nome correspondia a Personal Home Page.
Atualmente, PHP é um acrônimo recursivo para PHP: Hypertext Preprocessor — ou “PHP: Preprocessador de Hipertexto”.
É muito usada em meio ao código HTML e está inserida em vários sistemas de gestão de conteúdo online.
O código é geralmente processado por interpretador implementado como módulo no servidor web ou como CGI (Common Gateway Interface).
O código também pode ser executado/interpretado na interface de linha de comando (CLI) e pode ser usado para implementar aplicações standalone.
Com um desenvolvimento, cujo início data de 1995, o PHP se encontra na versão 7.x, atualmente.
Ao contrário do Perl (5 e 6) e do Python (2 e 3), a comunidade do PHP caminha junto com as novas versões — de forma que a linguagem não sofreu uma bifurcação em seu desenvolvimento.
É usado no YouTube, no Facebook e em vários outros grandes projetos na Internet.

Vantagens

  • A grande maioria dos provedores de Internet oferece um ambiente pronto para você desenvolver em PHP, nas implementações mais atuais da linguagem.
  • É fácil de aprender e usar. A sintaxe é muito parecida com a da linguagem C.
  • Conta com uma enorme comunidade de suporte.
  • É estável e rápido.
  • Tem suporte a muitos bancos de dados e provê gestão nativa de sessão.

Desvantagens

  • Algumas das bibliotecas escritas em PHP usam uma abordagem procedural e podem ser de difícil compreensão para programadores com formação exclusiva em orientação a objetos.
  • Pode se tornar lenta com a escalabilidade das suas necessidades.
    Algumas organizações fazem uso de frameworks para contornar este problema, contudo.
  • Não é a opção ideal para escrever aplicações desktop.

Popularidade

É, certamente, muito popular e costuma integrar a lista top 10 de linguagens de programação — principalmente quando o assunto é desenvolvimento para a web.

Leia mais sobre o PHP.

Python

Desenvolvida no fim dos anos 80, por Guido van Rossum, Python é uma linguagem de programação elegante e fácil de aprender.
Tem se tornado especialmente popular nos últimos anos e costuma-se recomendar seu aprendizado (como primeira linguagem) a iniciantes em programação.
Tem suporte a múltiplos paradigmas — funcional, imperativa, procedural e, obviamente, orientada a objetos.
Pode ser usada para desenvolver aplicações para desktop, para dispositivos móveis, análise de dados, Web, computação nas nuvens, jogos etc.
A linguagem usa a indentação para identificar blocos de código, o que elimina a necessidade de usar pontos-e-vírgulas etc.

Vantagens

  • Muito bem documentada e você encontra muitos livros sobre a linguagem, inclusive ótimas publicações de autores nacionais. Ou seja, você não precisa comprar traduções malfeitas.
  • É usada em animação 3D e no desenvolvimento de jogos, diferente das outras linguagens de que falamos aqui.
  • Estudantes costumam aprender Python mais rápido do que C ou C++.
  • O código é mais enxuto e mais limpo e, portanto, mais fácil de entender.
  • Comparado a outras linguagens, seu código costuma ser mais curto.
  • Tem suporte a JVM, de forma que seu código pode rodar alguns objetos ou APIs Java.

Desvantagens

Por mais animado que se esteja com uma linguagem de programação, não dá para fechar os olhos para seus pontos fracos:

  • O seu código pode simplesmente não funcionar por que você esqueceu de indentar corretamente.
  • O Python força os programadores a seguir uma convenção.
  • É uma linguagem interpretada e mais lenta que C ou C++.
  • Até o momento, não é muito eficiente para rodar código voltado para múltiplos processadores e/ou núcleos.

Popularidade

Tem se tornado mais e mais popular nos últimos anos e chegou a ganhar o TIOBE Programming Language of the Year/2007. A instituição mede o crescimento e a popularidade de uma linguagem no período de um ano.
A linguagem se manteve em 2o, durante o ano de 2017.

Conclusão

Não existe resposta pronta para a pergunta “qual a melhor linguagem ….”
No caso destas 3, todas podem realizar os mesmos projetos — algumas, com mais eficiência do que as outras.
A título de sugestão, segue a minha lista:

  • PHP é a mais indicada para o desenvolvimento Web e projetos na Internet. Dos servidores gratuitos aos mais caros, quase todos oferecem suporte a PHP e a bancos de dados MySQL/MariaDB.
  • Projetos do lado do cliente, para rodar no desktop ou em dispositivos móveis, podem ser melhor servidos com Python.
  • Perl é mais vantajoso na automação de serviços, na administração de sistemas e em scripts.

Se você tem planos de iniciar um projeto na Web, vale saber que, com o PHP, vai encontrar quase tudo pronto para começar a trabalhar e ver os resultados.
Contudo, se ainda não tiver qualquer projeto em mente, minha recomendação pessoal é a favor do Python.

Referências

https://pt.wikipedia.org/wiki/Perl.

https://pt.wikipedia.org/wiki/PHP.

https://pt.wikipedia.org/wiki/Python.

Leia mais sobre Python.

https://electronicsforu.com/resources/software/a-guide-to-rogramming-in-perl-php-and-python.