| « Programação Orientada a Objetos com Java | PostgreSQL 8.2 a caminho » |
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)
Endereço de trackback para este post
Trackback URL (clique direito e copie atalho/localização do link)
8 comentários
Uma lista das páginas da Wikipédia sobre as linguagens listadas:
- http://pt.wikipedia.org/wiki/Linguagem_de_programação_C
- http://pt.wikipedia.org/wiki/C_sharp
- http://pt.wikipedia.org/wiki/C++
- http://pt.wikipedia.org/wiki/Cobol
- http://pt.wikipedia.org/wiki/Fortran
- http://pt.wikipedia.org/wiki/Linguagem_de_programação_Java
- http://pt.wikipedia.org/wiki/Lua_(linguagem_de_programação)
- http://pt.wikipedia.org/wiki/Perl
- http://pt.wikipedia.org/wiki/Python
- http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programação)
- http://pt.wikipedia.org/wiki/Smalltalk-80
- http://pt.wikipedia.org/wiki/SQL
Outras páginas na Wikipédia:
- http://pt.wikipedia.org/wiki/ANSI
- http://pt.wikipedia.org/wiki/JavaScript
- http://pt.wikipedia.org/wiki/MYSQL
- http://pt.wikipedia.org/wiki/Php
- http://pt.wikipedia.org/wiki/PostgreSQL
Outras referências:
- http://www.cbrasil.org/wiki/?title=Página_principal
-
http://www.microsoft.com/brasil/msdn/Tecnologias/visualc/Default.mspx?mfr=true
- http://www.cobol.com/
- http://www.fortran.com/
- http://www.geocities.com/helder_pc/fortran/
- http://java.sun.com/
- http://www.lua.org/portugues.html
- http://www.perl.org/
- http://perl.com/
- http://cpan.perl.org/
- http://www.python.org/
- http://www.python.org/2.5
- http://www.ruby-lang.org/
- http://www.rubyonbr.org/
- http://www.smalltalk.org/
- http://www.cincomsmalltalk.com/
- http://www.mysql.org/
- http://www.postgresql.org/
- http://www.postgresql.org.br/
http://www.dieblinkenlights.com/artigos/projeto_de_ferias/html
Fica aí então a sugestão de leitura!
[]'s
Por favor, não responda dizendo que Ruby, Perl ou Python suportam programação funcional - pessoas acostumadas a pensar em termos imperativos, com as demais linguagens da sua lista, vão programar de modo imperativo nessas linguagens também.
Primeiramente não devemos explicar nada. Esse é nosso ponto de vista e pronto.
Ninguém aqui deve nada a ninguém.
Continuando, realmente faltou alguma linguagem funcional.
Por que as pessoas que percebem essas faltas não escrevem suas próprias «10» ou «12» mais? Seria bem mais divertido.
[]'s
Eu e meu amigo tentamos subverter isso um pouco, colocando uma lista mais baseada em conceitos subjetivos e pessoais do que mercadológicos. Não há muito método científico nisso, apenas gosto mesmo.
Mas, se você der uma lida em posts recentes, como o post http://devlog.waltercruz.com/javascript_eu_gosto, você verá que eu menciono lisp e sua importância.
Aliás, antes mesmo que você mencionasse o fato, eu já havia concluído que faltou mesmo uma linguagem funcional na lista. Estou acompanhando os posts sobre haskell do Torcato. Saiu um livro de Haskell da editora Novatec, que já está na minha lista de compras. Quem sabe é hora de escrever 'A 13º linguagem?'
Só não gostei muito de voces terem omitido um comentário maior sobre o PHP, que é uma linguagem que vem crescendo muito no mercado.
Se vc quer enterprise? C#! ah, não gosta da microsoft(ta perdendo dinheiro)? Java! ah acha complicado(vai estudar)?
Vc não é enterprise e sim autonomo que quer fazer um site que lista notícias? Python! Não gosta de zope/plone ou não suporta a deselegancia da sintaxe? Ruby! se vc não tem tempo/saco de aprender? Então mude de profissão!
PHP só não foi embora ainda pq criaram muitas ferramentas interessantes na linguagem. Vide worpress,dotProject, entre outras.
PHP é sinonimo de preguiça e de templates misturados a ifs!
Legal o artigo.
