jump to navigation

Aprender nova Linguagem de Programação em 2009 23/Apr/2009

Seguindo o conceito de PolyglotProgramming, aprendi em 2008 o que podia aprender sobre a linguagem de programação Ruby. Mais irei certamente aprender, o certo é que as noções, conceitos e ideias que eu tinha sobre programação orientada a objectos sofreram mudanças radicais.

Tão radicais que mesmo a forma como passei a codificar noutras linguagens de programação também sofreu impacto. Para melhor. Com Ruby aprendi mais sobre TDD e BDD, CodeCoverage, MVC, etc.

Em 2009 espero aprender mais uma linguagem de programação. Não espero uma aprendizagem tão radical com foi com Ruby em 2008, mas espero aprender certamente várias novas noções e ideias sobre como bem programar. Para isso, para escolher a linguagem de programação para aprender, terei que decidir entre:

Tenho adiado aprender Python, de ano para ano. E após saber das noticias sobre o SAPO Scratch a vontade de aprender Smalltalk re-acendeu-se. Será em 2009?

Update 2009.04.24: A linguagem de programação deverá contar com libraries e ferramentas modernas, tais como: DataBase Adapters, GUI Toolkits e TDD/BDD. Por esta condição apenas, a escolha mais lógica seria Python.

Update 2009.04.25: Acrescentei Erlang, principalmente por causa do momentum que tem actualmente com CouchDB. E o critério de selecção também passou a englobar a portabilidade, ou seja, poder codificar e executar os programas em qualquer Sistema Operativo.

Update 2009.05.04: Acrescentei Haskell, por ser a linguagem “fundamental” das linguagens de programação funcionais.

Update 2009.05.05: Última das linguagens para 2009, porque é preciso escolher uma e concentrar esforços, e porque corre sobre a Java Virtual Machine é também uma linguagem “disruptiva”: Scala. Esta linguagem, suportada pelo “mundo Java”, combate eficazmente as vantagens que advém de usar Python. Por outro lado, ou aprendo com a “mãe” das linguagens orientadas a objectos (Smalltalk) ou aprendo uma nova forma de programar com uma das linguagens funcionais (Haskell, Erlang, Scala, Lua?).

Comments»

1. José Carlos Monteiro - 04/May/2009

Encontrei alguns artigos interessantes, que abordam este mesmo assunto: “aprender uma nova linguagem de programação, mas qual?”

2. José Carlos Monteiro - 13/May/2009

Para incremental o meu skill-bag e após ponderação decidi que aprender uma linguagem ou puramente orientada a objectos (Smalltalk) ou puramente funcional (Haskell) seria menos proveitoso do que aprender uma linguagem com estilo multi-paradigma: Erlang ou Scala.

Tal como aconteceu com Ruby, que foi altamente disruptiva para com a minha forma de programar orientado a objectos, espero que uma destas duas também seja igualmente disruptiva. Ambas são notoriamente funcionais e reconhecidamente “concorrenciais” – leia-se Actors – quanto ao seu estilo de programação. A última vez – há muitos anos atrás, na Universidade – em que trabalhei com uma linguagem funcional foi com Lisp.

Quanto à oferta de libraries, a Scala permite acesso facilitado à imensa oferta de libraries em Java, incluindo ir a reboque da JDBC. E corre em cima de uma das mais robustas, fiáveis e sustentadas plataformas: JVM - Java Virtual Machine.

Será Erlang ou será Scala?

3. José Carlos Monteiro - 01/Jun/2009

Decisão tomada: Scala.
Razão principal: porque será a linguagem a usar no trabalho, sempre que possível e que faça sentido face ao problema.

Apesar das linguagens mais disruptivas face ao meu conhecimento actual serem Haskell ou Erlang ou Lua, não me encontro numa posição que me permita dar um passo assim tão grande. Com estas retiradas da lista final, ficam apenas Scala, Clojure e Objective Caml. No entanto, OCaml não corre só por si em cima da JVM e não parece ter adquirido tanto “momentum” quanto Scala ou Clojure. E Clojure é também mais disruptiva do que Scala, o que somado ao facto de estarmos a tentar usar Scala no trabalho faz com que escolha sensata para 2009 não deva ser Clojure mas sim Scala.

4. José Carlos Monteiro - 19/Mar/2010

Passou 2009 e não aprendi quase nada de Scala, infelizmente. E como no trabalho não foi decidido avançarmos com Scala, aconteceu que no que fim de 2009 começamos a aprender um pouco de Python.

E agora, em 2010, com a abertura do curso online – grátis – do Satish no RubyLearning a começar em Abril vou apontar para aprender Clojure.