As doze mais

Link: http://montegasppa.blogspot.com/

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)