Que linguagem você aprenderá em 2008?
“Learn one language every year“. Não me lembro ao certo onde e quando foi a primeira vez que li isso, mas depois de pensar por alguns instantes, eu mudei aquela idéia que eu tinha — de que é melhor se especializar numa única tecnologia em detrimento das demais. Melhor um peito na mão do que dois no sutiã, concorda?
Voltando aos tempos da faculdade, embora subliminarmente, eu aprendi que Java é o que há, que C só serve para aprender algoritmos (e estruturas de dados) e que depois de trabalhar como programador eu devo virar gerente. Nada mais justo, afinal, o que esperar de um curso de Sistemas de Informação? (droga, eu devia ter feito Ciências da Computação.)
A cada nova descoberta eu me impressionava mais com as vantagens do Java. Não demorou muito para eu decidisse me “especializar” nessa tecnologia; comecei a visitar regularmente sites e fóruns sobre Java, montar pequenos programas, ler livros e estudar para certificações.
Hehehe, pela forma que esse texto vem sendo escrito, você deve estar se perguntando quando é que eu vou parar com essa babação de ovos e começar a contra-argumentar tudo o que disse. O famoso “mas”.
Mas… nada!
Felizmente, não me arrependo de nenhum programa que fiz, de nenhuma certificação que tirei e de nenhum livro que li. O simples uso do Java me ensinou coisas que eu provavelmente nunca aprenderia caso escolhesse outra linguagem. Em outras palavras, Java me ensinou uma coisa que poucos sabem (ou muitos ignoram): é difícil fazer software.
Se eu vou largar o Java? Talvez… daqui uns cinco anos. Entretanto, depois de me dedicar ao Java por todo esse tempo, eu percebi que agora é o melhor momento para desacelerar um pouco e olhar mais atentamente o que acontece ao meu redor. Não com o intuito de migrar para outra coisa, mas de ampliar meus horizontes.
Conforme o ano passado se encerrava, eu ia coletando informações aqui e ali a respeito de tecnologias que eu estudaria neste ano de 2008; tentei ver qual delas seria viável a ponto de não ser apenas mais uma diversão nas horas vagas, qual é rica em projetos e bibliotecas, qual é sustentada por uma comunidade organizada e capaz, etc. No fim das contas a única opção que me pareceu interessante foi Python.
Já comecei a ler o Learning Python, que é um livro excelente para quem, como eu, nunca viu Python na vida. Minha pouca experiência na linguagem não impediu que eu já encontrasse algumas features interessantes, dentre as quais eu destaco list comprehensions e generators.
Nos próximos meses veremos se essa foi uma boa escolha, mas, de qualquer forma, eu estou confiante. Se tudo correr bem, a comunidade Python brasileira vai ter que me engolir!
E você, vai aprender uma nova linguagem ou vai continuar nessa? Se optou pela primeira opção, qual é a linguagem e o que o motivou a escolhe-la?
Tags: java, opiniões, python

21 de janeiro de 2008 às 6:29 am
Posso dar meus $10 cents?
Java é o canal, mas usuário vê interface, que tal estudar uma linguagem front-end?
http://blog.digows.com/?p=103
Perde uns 15min, acredito que vai gostar muito..
=)
21 de janeiro de 2008 às 7:35 am
É verdade, usuário vê interface. Mas mesmo assim eu não me vejo apelando para o Flex para desenvolver aplicações web. Pelo menos, não por enquanto.
Não estou questionando as capacidades da tecnologia, longe disso. Mas é que já temos de integrar tanta coisa ao desenvolvermos uma aplicação web em Java (Spring, Hibernate, EJBs, framework web etc) que é melhor ficar só no XHTML + JavaScript mesmo.
21 de janeiro de 2008 às 8:16 am
Boa escolha Daniel, depois de algumas horas a sua nova frase será “Python é o que há!”
21 de janeiro de 2008 às 8:35 am
Provavelmente foi no livro The Pragramatic Programmer de Hunt e Thomas.
Eu fiz… e ouvi a mesma coisa! =P
Ruby! Gosto de hypes rsrsrsr… falando sério, eu acredito que mais q aprender uma nova linguagem, é interessante aprender um novo paradigma, para abrir a cabeça mesmo. Se programo OO, seria legal dar uma mergulhada no paradigma funcional para ver como é… Mudar o nível de abstração também é interessante… se trabalho num nível alto (JEE e frameworks) que tal dar uma olhada em algum projeto do linux usando C em baixo nível, drivers ou algo do gênero. =)
Enfim… sacudir p ver o q é q da!
Keep coding!
21 de janeiro de 2008 às 8:57 am
Olá Jeveaux!
Então, pra falar a verdade eu já me peguei dizendo para mim mesmo essa mesma frase, mesmo tendo pouco contato com a linguagem. Tomara que essa sensação continue nos meses que virão!
[]s
21 de janeiro de 2008 às 9:27 am
Fala Rodrigo!
Cara, na verdade nem foi no Pragmatic Programmer! Eu sei que tal frase se originou nesse livro, mas eu li isso noutro lugar. Ah, que diferença isso faz?
Que coisa, não? =P
Concordo totalmente com você. Inclusive, ontem eu dei uma procurada sobre como criar GUIs com Python e PyGTK/Glade, e devo confessar que eu fiquei muito empolgado com o que vi. Pela primeira vez eu vi que sim, é possível separar completamente a interface com o usuário do código que a controla. Claro, meu objetivo é aprender Python e partir para suas bibliotecas e frameworks conforme o tempo passa, mas foi legal ver que é possível desenvolver software decente com Python.
A idéia que eu tive até o momento é que Python me parece uma linguagem “diferente” o suficiente para me fazer pensar, mas não tão “esquisita” a ponto de só poder utilizá-la nas minhas horas vagas.
21 de janeiro de 2008 às 11:56 am
Scala. Minha escolha foi Scala. Boa sorte com Python.
21 de janeiro de 2008 às 12:11 pm
Marcos, obrigado e igualmente!
Pelo que eu li por aí, Scala parece ser uma excelente opção de linguagem a se aprender, principalmente aos que já estão familiarizados com Java - a plataforma.
Eu inclusive já instalei a SDK aqui no meu computador, mas ainda não sei ao certo quando irei realmente pegar para aprender. Talvez no ano que vem.
21 de janeiro de 2008 às 1:29 pm
Vai q vc consegue um emprego no youtube né?
21 de janeiro de 2008 às 1:32 pm
Pois é, quem sabe isso não acontece?
21 de janeiro de 2008 às 3:38 pm
Ano passado eu me dediquei a aprender todo o ecosistema da ECMAscript, tanto no lado cliente quanto servidor, tanto que uso Rhino em coisas bem espe´cificas aqui.
Mergulhei a fundo como entender OO do tipo Prototyped-based, descobri coisas interessantíssimas como a herança no javascript pode ser simulada de varias formas.
Estou aprendendo programação funcional agora e pensei em usar outra linguagem e essa seria Python ou Perl, estou dando uma olhada nas duas para ver qual estudar mais a fundo.
21 de janeiro de 2008 às 3:46 pm
Ainda não sei se irei aprender uma nova linguagem ou outra coisa esse ano. Boa escolha!
21 de janeiro de 2008 às 3:50 pm
Ano passado peguei C++ de verdade (e creio que vou continuar para sempre, pois certamente não basta um ano para aproveitar tudo) e este ano estou brincando bastante com Javascript, que tem as tão faladas closures, tem first-class functions, é fracamente tipada, entre outros atributos das linguagens-hype, além de ter o benefício de ser imediatamente útil no trabalho.
21 de janeiro de 2008 às 3:59 pm
Dalton, a vantagem do javascript para quem trabalha com java é com a JSR223 e usando Rhino voce tem toda a programação funcional ao seu dispor.
21 de janeiro de 2008 às 4:21 pm
@Milfont: Eu acho que teremos boas supresas neste ano em relação a ECMAScript, bastante gente está voltando suas atenções para a linguagem. E realmente, o Rhino vem sendo bem aceito pelos usuários da JSR-223, tanto é que já existem diversos projetos que se apoiam nele de alguma forma.
@Walter: Cara, é que tem tanta coisa pra aprender que a gente fica até meio perdido! E a cada dia surge mais. Escolher o caminho a seguir não é uma tarefa fácil… sempre temos de abrir mão de alguma coisa.
@Dalton: C(++) é praticamente a linguagem-mãe da computação, né! Impossível aprendê-la sem extrair algo de bom.
21 de janeiro de 2008 às 4:27 pm
ruby! ruby e rails como framework. python tb está na minha lista, mas não pra agora.
21 de janeiro de 2008 às 5:07 pm
Ainda estou (re)descobrindo Io e acho que vou continuar assim esse ano. Comecei a estudar Smalltalk e estou gostando muito do que vejo. Javascript me parece bastante interessante também e Python é um caso à parte, principalmente pela curiosidade de ver como funcionam recursos como list comprehensions e aplicações parciais (que me acostumei a ver em Haskell) numa linguagem que não é puramente funcional. Mas no fim das contas vou ter que escolher alguma coisa, não vai dar pra ficar com todas.
Não por muito tempo.
21 de janeiro de 2008 às 5:21 pm
Olá Rafael!
Eu gosto bastante de Ruby e do Rails, embora não seja um profundo conhecedor. Para falar a verdade, o que me fez ficar longe do Ruby foi o fato de que há um “excesso” de gente caindo no Ruby única e exclusivamente por causa do Rails.
Dois exemplos:
validates_presence_ofem suas classes se tratava de um método! O cara usava isso em diversos lugares, mas achava que era apenas uma linha de configuração ou algo do tipo (o que de certo modo é, mas você entende o que eu quero dizer). Obviamente, esse cara não é o que podemos chamar de exímio desenvolvedor, mas também devemos lembrar que nem todo mundo é (ou quer ser) o melhor na sua profissão.Isso acontece em outras linguagens? Claro que acontece, mas a impressão que eu tive enquanto espectador é que tais situações ocorrem com mais frequência na comunidade Ruby do que em outras comunidades.
Então, por essas e outras, eu decidi por esperar a poeira baixar antes de uma eventual olhada no Ruby.
Só para terminar, não estou dizendo que este é o seu caso! Foi apenas algo que eu percebi acontecer com certa frequência e que me deixou esperto.
21 de janeiro de 2008 às 5:28 pm
Olá Thiago!
Eu já li alguns trechos de código em Io e confesso que achei a sintaxe
meio exótica (para não falar esquisita)!
Não mexi com Smalltalk pelo tempo que gostaria, mas foi o suficiente
para ela se tornasse uma das minhas favoritas… não apenas pela
sintaxe, mas pelo ambiente como um todo.
[]s
21 de janeiro de 2008 às 5:40 pm
JavaScript é minha linguagem de estimação.
Eu tenho escrito e lido um bocado de código em JavaScript e é diversão garantida. As outras linguagens na lista incluem Python, Erlang e me aprofundar em shell script (que eu só estudo quando preciso fazer algo).
21 de janeiro de 2008 às 5:43 pm
Somos dois! Eu apanhei tanto de ShellScript que atualmente eu faço tudo com Groovy mesmo.
21 de janeiro de 2008 às 6:03 pm
Eu quero aprender Smalltalk um dia.
Talvez não esse ano ainda mas um dia eu vou começar a ler sobre.
Se bem que estou na média… Ano passado aprendi C++ e Assembly, então acho que esse ano pode passar em branco =P
Abraço e boa sorte em seus estudos.
21 de janeiro de 2008 às 6:12 pm
Boa!
22 de janeiro de 2008 às 7:42 am
Verdade, Io pode parecer bem esquisito mesmo. Deve ser por causa da quase ausência de sintaxe. Io, assim como Smalltalk, é uma linguagem de sintaxe minimalista e isso transparece. Assim como em Lisp, é bastante comum ver um bocado de parênteses.
Esse é um dos motivos que me faz gostar de estudar Io. Gosto de linguagens que se agarram a um conceito, dizem “isso aqui é o que vai me diferenciar das outras” e vão em frente.
23 de janeiro de 2008 às 11:45 am
Até o meio do ano ainda é Lisp. Depois de junho vai ser Prolog.
Quero entender direito como funcionam linguagens lógicas, tipo do paradigma que nunca me entrou na cabeça.
E Assembly? Alguém arriscou?
23 de janeiro de 2008 às 12:02 pm
Vixe… eu já mexi com Assembly uma vez, numa aula de Sistemas Operacionais. É do mal o negócio!
23 de janeiro de 2008 às 12:16 pm
Ah verdade, eu também mexi um pouco com Assembly quando descompilava jogos para driblar limitações de serial number ou presença de CD-ROM. Como era fácil!
Aliás, eu acabei de encontrar aqui no meu computador um projeto de Visual C++ MFC de um crack que eu fiz pro jogo Star Wars: Shadows of the Empire, para que este funcionasse sem o CD-ROM. Bons tempos aqueles…
23 de janeiro de 2008 às 1:05 pm
Bom, na onda de tentar aprender algo um pouco diferente do que está acostumado, vou de Groovy, já que estou acostumado com java.
Mas a JVM continuará fazendo o serviço sujo pra mim! Hahaha
23 de janeiro de 2008 às 1:11 pm
Groovy é bem massa… no meu ver, o Groovy — junto com o suporte a outras linguagens dinâmicas — foi uma das melhores coisas que aconteceram com o Java nos últimos anos.
29 de janeiro de 2008 às 8:18 pm
Apesar de não gostar de java, gostei do seu post, enquanto todo mundo se preocupada em se especializar na linguagem “X” ou no sistema operacional “Y”, são poucas pessoas que ficam tentando abrir o horizonte estudar outras ferramentas, a origem delas, pensar em barreiras a serem vencidas ou até mesmo caminhos não explorados, parabéns pela atitude, isso provavelmente refletirá positivamente em sua carreira.
Sobre as minhas preferências, no ano passado estudei um pouco sobre o RoR, e em 2008 tenho dedicado algumas horas do meu dia para o desenvolvimento ágil, extreme programming, rup… me interesso também em scrum e pmbok, estudarei este ano.
Adicionei seu blog no meu blogroll
[]s
FC
29 de janeiro de 2008 às 8:20 pm
Faltou falar… pra mim o PHP programado por quem sabe e por quem estudou OO é o que há, porém 80% dos pseudo-programadores php acabam com a linguagem ao publicar pseudo-códigos
antigamente trabalhei com PERL, e C… mas PHP é o que há
[]s
29 de janeiro de 2008 às 8:39 pm
Olá Fernando! Valeu mesmo pela força.
Eu já programei em PHP também e em 90% das vezes o que eu vi foi algo parecido com a cantora Maria Bethânia após dormir ininterruptamente por 2 semanas. Eu mesmo já fiz bastante coisa feia, mas fazer o quê… é a vida.
1 de fevereiro de 2008 às 6:25 pm
Eu estou me aprofundando no Smalltalk e pretendo dar uma olhada melhor em erights. erights, da qual ouvi falar lendo sobre o Croquet, me chamou atenção com suas promises e garantia de segurança desde o início, independente da programação.
1 de fevereiro de 2008 às 6:56 pm
Eu até me dedicaria a estudar melhor o Smalltalk, mas o critério “usar na prática” pesou bastante na minha escolha. No entanto, ainda considero Smalltalk a melhor linguagem que aprendi até hoje.
BTW, Croquet rulez!
[]s
29 de fevereiro de 2008 às 10:38 pm
Na faculdade brinquei com LISP, achei muito legal, pq pra fazer qualquer coisa tem q quebrar a cabeça, meu professor falava que não era difícil, o problema era que não estavamos acostumados a programar recursivamente! E não era mentira, no final tudo ficou mais fácil e isso me ajudou com java, alguns problemas que muitas pessoas pensam de uma forma conseguia pensar de uma forma bem mais rápida com recursividade! Apesar que não sei se LISP é uma linguagem que pode ser útil de verdade, nunca pesquisei a respeito!
Outra linguagem totalmente diferente de tudo, que “aprendi” na faculade - na verdade não aprendi - foi vhdl. Não aprendi, mas percebi que era bem diferente de tudo e parecia ser muito útil nas áreas certas!