Poliglota. Segundo o Grande Dicionário Houaiss, adjetivo e
substantivo de dois gêneros, cujo principal significado é aquele que sabe ou
fala muitas línguas. Este termo é geralmente aplicado para pessoas que falam mais
de três línguas. Mas também pode ser aplicado aos desenvolvedores capazes de construir
softwares usando várias linguagens de programação.
Neste post vamos discutir (e incentivar) o aprendizado de
várias linguagens de programação partindo do argumento conhecido da necessidade
de conhecer vários idiomas.
Bilíngue, Trilíngue, Poliglota, Hiperglota
O domínio de vários idiomas é considerando, pela maioria dos
recrutadores, um diferencial, que potencializa as qualidades de qualquer
candidato, como nesta matéria da revista Exame.
Mas o maior benefício de falar várias línguas é o maior
desenvolvimento de empatia, da criatividade, sem contar que é benéfico para o
cérebro em qualquer idade, como afirma a revista Deutsche Welle.
Não é necessário ser um hiperglota.
Linguagens de Programação
As estimativas sobre o número de linguagens de programação
existentes são bastantes imprecisas, mas são várias centenas. Um artigo na
DZone lista 256 (duzentas e cinquenta e seis) linguagens de programação diferentes, começando
por 4D (4th Dimension), ABAP, ABC, e terminando em yacc, Yorick e Z Shell.
E por que tantas linguagens? O grande número de linguagens
de programação que surgiu é justificado por dois fatores principais: evolução e
necessidade.
É bastante comum que, após o uso sistemático de uma
linguagem de programação qualquer, que sejam observadas limitações em sua
sintaxe e até mesmo defeitos em seu projeto. Isto estimula a criação de novas
versões desta linguagem. Mas como existem questões comerciais, problemas com retrocompatibilidade
e outras, novas versões podem não atender os anseios dos programadores,
motivando a construção de novas linguagens derivadas. Isto é a evolução, vista como
motor de criação de novidades.
Outra situação é que problemas específicos, difíceis de
solucionar com as linguagens disponíveis (ou conhecidas), acabem sendo
solucionados por linguagens de programação construídas para esta finalidade ou
para este domínio. Aqui a necessidade é a mãe da invenção.
Assim, muitas linguagens de programação são semelhantes,
compartilhando uma raiz comum que nada mais é que o modelo conceitual tomado
para seus projetos. Partindo da linguagem C (que também foi uma evolução de
outras linguagens), do paradigma imperativo, surgiram: C++, que acrescentou o
paradigma da orientação a objetos; PHP, voltado para o desenvolvimento web;
Java, com sua natureza multiplataforma; C#, uma releitura deste mesmo conjunto
de linguagens para a plataforma Microsoft; entre outras.
O que é importante notar é que enquanto algumas linguagens
de programação são semelhantes; outras são substancialmente diferentes. E tais
diferenças enfatizam os propósitos de cada uma destas alternativas.
Porque ser um Desenvolvedor Poliglota
Exatamente pelo fato de cada linguagem ter sido criada com
objetivos claros em mente, a solução de um problema específico pode ser
bastante facilitada pela escolha da linguagem de programação mais adequada.
Note que a palavra usada aqui é adequada, pois não existe opção correta ou
incorreta, mas apenas uma escolha que pode conduzir a melhores resultados no
processo de desenvolvimento.
Para que possamos escolher uma linguagem de adequada para a
solução de um problema, dois fatores são determinantes: quais linguagens de
programação são conhecidas; e quais são convenientes no cenário do problema.
Se não conhecemos linguagens diferentes, não poderemos
escolher. E aquela que conhecemos pode não ser a melhor alternativa. Além
disso, o cenário do problema é preponderante: se o cliente tem uma coleção de
aplicações numa linguagem específica, como propor a construção de um novo software
com outra plataforma, que só dificultara a reutilização de módulos e a
integração?
Conhecer várias linguagens é, então, uma necessidade do
desenvolvedor de software profissional, ou seja, é importante ser um programador poliglota!
Linguagens de Programação Populares
Existem vários rankings, mantidos cuidadosamente por
revistas especializadas e outras organizações na internet, interessantes em
medir a popularidade das linguagens de programação. Cada índice tem metodologia
própria, diferente, mas que mostra uma visão distinta da questão central: qual
a linguagem de programação com maior utilização?
Seguem as oito linguagens de programação mais populares
segundo os dados colhidos de alguns dos rankings disponíveis para 2016:
- TIOBE:
Java, C, C++, Python, VB.NET, C#, PHP, JavaScript - GitHub PYPL:
Java, Python, PHP, C#, JavaScript, C++, C, Objective-C - RedMonk:
JavaScript, Java, ,PHP, Python, C#, C++, Ruby, CSS - English4IT:
Java, C, C++, PHP, VB.NET, Python, C#, JavaScript - IEEE Spectrum:
C, Java, Python, C++, R, C#, PHP, JavaScript - NewRelic:
Java, C#, C++, JavaScript, PHP, Python, Ruby, C
É fácil notar que algumas linguagens estão sempre nestes
rankings, o que é ilustrado na figura que segue. A pontuação atribuída (8 para
1º, 7 para 2º, até 1 para 8º) permite agregar as listas diferentes numa última
classificação (última coluna da figura). Lá vemos: Java, C++, Python, C, PHP,
C#, JavaScript e VB.NET.
Rankings 2016 das Linguagens de Programação |
Java não é surpresa no primeiro lugar. Mas as veteranas C++
e C continuam nas listas das populares. Python vem crescendo em termos de
popularidade. PHP e JavaScript são linguagens para web (no criterioso ranking
da StackOverflow, JavaScript figura como a linguagem de programação mais usada
no mundo). Se outros rankings forem consultados, veremos outras diferenças, como na figura abaixo:
De fato, a colocação nestes rankings não importa quase nada.
O que vale, mesmo, é que a linguagem aparece na listagem de popularidade. E
aí, a pergunta que não quer calar: você é capaz de programar em várias destas
linguagens?
Como é muito provável que seu próximo empregador deseje
isto, que seus colegas trabalhem com isso, e que existam muitos projetos que
fazem uso destas linguagens, que tal pensar em expandir seus conhecimentos
desenvolvendo suas habilidade de programação numas quatro ou cinco destas
linguagens?
Espero ter convencido você! Fica a dica!
Para saber mais
- The Big List of 256 Programming Languages. DZone.
https://dzone.com/articles/big-list-256-programming - Por que é importante ser um desenvolvedor poliglota
https://www.infoq.com/br/interviews/importante-ser-um-desenvolvedor-poliglota - Unit 9: Top 10 Most Popular Programming Languages.
English4IT.
https://www.english4it.com/unit/9/reading - The PYPL PopularitY of Programming Language Index. GitHub.
http://pypl.github.io/PYPL.html - The 2016 Top Programming Languages. IEEE Spectrum
http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages - The Most Popular Programming Languages of 2016. NewRelic.
https://blog.newrelic.com/2016/08/18/popular-programming-languages-2016-go/ - The RedMonk Programming Language Rankings: June 2016.
RedMonk.
http://redmonk.com/sogrady/2016/07/20/language-rankings-6-16/ - Developer Survey Results 2016. StackOverflow.
http://stackoverflow.com/research/developer-survey-2016 - TIOBE Index for December 2016. TIOBE.
http://www.tiobe.com/tiobe-index/