2006-09-19

As doze mais

Poliedro 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)