As doze mais
Recentemente o sítio NotíciasLinux.com.br divulgou uma lista das «10 linguagens de programação que você deveria aprender agora mesmo».
Nós (Rodrigo Cacilhas e Walter Cruz) conversamos e decidimos fazer nossas próprias lista. Qual não foi nossa surpresa ao descobrir que estas só divergiam em duas linguagens!
Então resolvemos escrever um artigo sobre as «12+». =)
Segue então a lista em ordem alfabética.
C
rank Cacilhas: 1
rank Walter: 3
C é a raiz de todas as linguagens modernas. Ninguém que precise de desempenho e confiabilidade abre mão de C.
Apesar de ser uma linguagem de alto nível – não confunda notação matemática com baixo nível! –, proporciona um melhor entendimento sobre o funcionamento do sistema, ajudando o programador a ter um pensamento menos dependente das peculidades de cada linguagem. É muito boa para explicar sobre o funcionamento de um computador nos seus detalhes.
C#
rank Cacilhas: 4
rank Walter: 10
É a melhor coisa que a Microsoft já fez. Tem lá seus problemas – como não poderia deixar de ser –, mas é uma linguagem eficiente e a melhor escolha para programação .NET.
Sem falar que é um plágio de Java.
C++
rank Cacilhas: -
rank Walter: 4
É uma linguagem importante devido à quantidade de aplicações desenvolvidas e também porque é a mais neutra das linguagens orientadas a objeto.
Ocupou um lugar relativamente importante na história da orientação a objetos, e foi mercadologicamente suplantada por Java.
Assim como C, ajuda o programador a ter um pensamento mais livre, a livrar-se da escravidão imposta por outras linguagens, apesar de não passar de um «C mais lento».
Cobol
rank Cacilhas: 10
rank Walter: -
Há um mercado legado muito grande de aplicações Cobol no Brasil que necessitam de manuteção – e constantes reindexações de bases de dados. =P
Em cinco ou dez anos talvez esta realidade mude, mas atualmente programadores Cobol são necessários e estão se tornando raros.
Fortran
rank Cacilhas: 9
rank Walter: -
Um linguagem antiga e ultrapassada sim, mas muito usada em ambiente acadêmico: pós-graduação e pesquisas.
Seu foco em análise numérica é perfeitamente conveniente para satisfazer as necessidades da Computação Científica e dificilmente outra linguagem conseguirá tomar seu lugar.
Portanto, para quem não quer ser mais uma batata no saco, é importante conhecer Fortran.
Java
rank Cacilhas: 2
rank Walter: 5
Java foi o que na verdade trouxe a orientação a objetos para a boca dos programadores.
Traz em seu bojo uma cultura que muitos chegam a pensar que é originada de Java, mas isso é um engano. Poderíamos citar dentre eles: Design Patterns, máquina virtual (já presente no Smalltalk na década de 80), refatoração (outro que nasceu na comunidade Smalltalk) e Programação Extrema (outro filho do Smalltalk).
O que mais dizer de Java? Não é lá grande coisa, nem se compara a C ou Fortran, mas funciona e bem.
Quando o front-end é mais importante que o back-end, Java é o que há. E ainda trabalha bem em aplicações de back-end – não tão bem quando as outras, mas a homogeneidade com o front-end compensa.
Um dos grandes problemas que eu vejo em Java é sua quase onipresença. Tem um problema? Não importa qual, mas a solução é Java. Outro grande diferencial é que essa é a linguagem que fala empresariês. É a linguagem que tem mais siglas, mais nomes e expressões complicadas, que no final acabam por se mostrar coisas simples na maioria dos casos. Não me entendam mal – depois de anos, resolvi aprender Java, e de fato estou até gostando. Existem na verdade duas coisas chamadas Java: a plataforma Java (JVM) e a linguagem Java. Apenas recentemente, com o advento do .NET a comunidade Java se tocou que nem todos gostavem de Java e passaram a alardear que outras linguagens poderiam rodar na JVM. Será que isso veio tarde demais? Espero que não.
(Walter)
Lua
rank Cacilhas: 8
rank Walter: 6
A linguagem de extensão por excelência! Combinada a C é imbatível.
Como se já não bastasse dizer que Lua conquistou seu nicho no mercado de animação, nós brasileiros temos um compromisso patriótico com esta linguagem (em vez de tratá-la com ignorância sistemática, como temos feito).
Sem contar que Lua tem méritos próprios. Metatabelas e orientação a objetos em Lua são coisas totalmente originais.
(Walter)
Perl
rank Cacilhas: 5
rank Walter: 8
Perl é uma linguagem pra gente grande. Uma das mais eficientes, não deixando a desejar a nenhuma outra.
É uma linguagem de propósito geral, mas se dá muito bem na Computação Científica, e serve como base de entendimento para outras linguagens mais modernas nela baseadas.
Outra curiosidade de Perl é ter a capacidade de irritar os trolls defensores de verdades absolutas, já que, sendo uma linguagem estrutura de tipagem fraca e orientada a objetos – ao contrário do que dizem os trolls –, é mais eficiente e aplicável do que qualquer linguagem da moda.
Python
rank Cacilhas: 3
rank Walter: 1
Python é tudo o que Java e Ruby pretendem ser.
Simples, clara, multipropósito, fortemente orientada a objetos, fortemente tipada e explícita. Sua sintaxe é clara e fácil, permitindo que iniciantes possam aprender Python rapidamente mesmo sem ter conhecimento algum de programação, mas ao mesmo tempo possui recursos avançados, como metaclasses, e incontáveis módulos, o que permite o desenvolvimento de aplicações complexas, como o Zope.
Assim temos uma linguagem – talvez a única – que faz a ponte entre o iniciante e o programador avançado.
Para saber mais veja Introducing Python.
Na minha opnião, é uma das melhores linguagens pra ensino.
(Walter)
Ruby
rank Cacilhas: 7
rank Walter: 7
Vem ganhando um certa importância atualmente, principalmente por causa dos programadores Java frustrados, mas que não querem dar o braço a torcer para Python e não aguentam esperar pelo Groovy, que é uma mistura de Ruby e Java, só que abençoada pelo JCP.
É uma linguagem da moda, mas faz coisas legais, como Ruby on Rails.
Embora seja muito semelhante a Python na superfície, são bichos de espécies diferentes. Ruby nasce do cruzamento de Perl com Smalltalk, e Python herda da linguagem ABC. Isso é algo importante de se lembrar.
(Walter)
Smalltalk
rank Cacilhas: -
rank Walter: 9
É a orientação a objetos por excelência. Mais antiga que C, quase todos os paradigmas que têm sua criação erroneamente atribuída a Java foram desenvolvidos no Smalltalk (vide seção sobre Java).
É uma linguagem de propósito geral, mas focada na interface com o usuário, há ferramentas profissionais interessantes, como Cincom VisualWorks.
Considero uma ironia que PHP tenha tido um grande sucesso e Smalltalk tenha ficado sempre em segundo plano. É particularmente chatinha de aprender – eu tentei fazer qualquer coisinha aqui e sempre me atrapalho. Isso porque a mente da maioria dos programadores já está viciada em sintaxes C-like. A história da informática seria certamente muito diferente se Smalltalk tivesse alcançado o merecido sucesso. Mas isso é díficil para quem está sempre um passo à frente.
(Walter)
SQL
rank Cacilhas: 6
rank Walter: 2
É impossível manter e interfacear uma base de dados sem conhecer seu funcionamento, e nada melhor para isso do que conhecer ANSI-SQL.
Considerando os principais bancos livres, podemos subdividir este tópico em três:
ANSI-SQL
Cobertor curto, mas conhecendo – e entendendo – o ANSI-SQL, é possível entender qualquer querência estruturada.
MySQL
O MySQL implementa um SQL ligeiramente diferente, mas nada de assustar. =)
PL/pgSQL
Sem o conhecimento das funções e peculiaridades do PostgreSQL, ele não passa de uma alterativa gorda e gulosa ao MySQL.
Mas com o entendimento do PL/pgSQL, o PostgreSQL se torna a mais poderosa das ferramentas de banco de dados.
Omissões Notáveis.
PHP
PHP é na minha opinião uma linguagem de desenho ruim, e que o passar do tempo apenas acentua isso.
JavaScript
Embora seja praticamente impossível desenvolver para a web sem ela, creio que ela já fica coberta pelo tópico Lua. Lua é muito semelhante à JavaScript, com objetos de primeiro nível, closures, e sintaxe parecida.
(Walter)