Recentemente estava navegando no Quora quando vi uma pergunta lá que me fez escrever uma resposta que pode ser excelente para o blog. A pergunta era: Qual é a linguagem de programação mais impressionante?

É uma pergunta complicada, porque sempre vai um pouco de gosto. Vejo 3 linguagens impressionantes, talvez 4.

A primeira que acho mais impressionante é Javascript, como também já comentaram, mas senti falta de um porque mais detalhado.

Eu chamo Javascript de ornitorrinco, tem um monte de características em uma única linguagem assim como o animal, ela é Orientada ao Objetos Prototipados e também ela pode ser funcional. Só do histórico em 10 dias já seria impressionante, mas além disso ela também tinha que ter semelhanças com Java, mas por conta do trabalho anterior do seu criador (Brendan Eich), tem várias semelhanças de Scheme um subtipo de Lisp.

Só essa introdução seria o suficiente, mas a linguagem é bugada e tem várias falhas, principalmente na forma de tratar seus tipos primários, strings, números e objetos e booleanos, tudo em Javascript é um objeto, incluindo valores booleanos, o que possibilita você escrever um código `true.toString()`.

Comparada com algumas linguagens ela é até recente e nasceu bem perto do Java que causa uma grande confusão com nomes. Mas como uma linguagem bugada e desenvolvida em 10 dias se torna tão relevante?

Nas comunidades de desenvolvimento Javascript sempre foi piada, uma "linguagem de brinquedo", que não tinha precisão numérica o suficiente para ser levada a sério ou muito lenta e que um simples erro como esquecer um ponto e virgula (as vezes necessário outras não ) poderia quebrar e parar de funcionar.

Coisas assim eram bem comuns…

Mas Javascript proporcionava o código acidental e que se tornava o primeiro contato com programação de muitas pessoas, principalmente designer e profissionais de web, já que era o caminho para fazer animações no HTML. Nessa época se algo mais complexo fosse requerido, exigia a instalação dos malditos plugins Java e/ou do Macromedia Flash Player, ambos lentos e que demoravam muito para carregar por conta das conexões da época.

Javascript se tornou muito relevante e a principal linguagem de programação já por alguns anos. Lembra das pessoas que experimentaram codificar algo pela primeira vez? Muitas delas quando falavam que só sabiam Javascript, ouviam algo de que isso não era saber programar e começou a se tornar um desafio comum escrever ou simular programas complexos em Javascript.

De 2007-2009, os anos mais relevantes para Javascript, muita coisa foi construída usando a linguagem, foi quando surgiu bibliotecas como jQuery, Angular houve a popularização do XMLHttpRequest(facilitava a comunicação com servidor sem precisar recarregar a página), e outras, ela era leve e fácil de transferir bastava uma linha de código e um arquivo de alguns KBs, para você modificar a tela e conseguir boa parte das animações que só conseguiria em Java ou Flash (este também usava uma variação do EcmaScript ou o padrão Javascript).

As bibliotecas ajudavam a criar sites mais complexos e também aplicações que diminuíam consumo de dados ou dava a impressão de aplicações rápidas sem precisar esperar a página ficar recarregando. Outro diferencial dessa época foi o Google lançar as ferramentas do Docs, SpreadSheet e o navegador Chrome com a V8.

A V8 é especial até hoje ela acelerou o processo de executar Javascript esse gráfico aqui mostra um pouco da diferença na época.

V8, TraceMonkey, SquirrelFish, IE8 BenchMarks

E o surgimento da V8 levou a criação do NodeJS em 2009, apesar de Javascript no servidor ser algo antigo e muito discutido a predominância para isso era do Java que estava perto de ser a linguagem multiplataforma e longe de ser a "linguagem de brinquedo" que era Javascript.

Poucas das implementações para servidor tiveram sucesso, a Microsoft tentou a Mozilla tentou, mas a mudança de abordagem do Node teve sucesso.

NodeJS trouxe a capacidade de Entrada e Saída de programas muito mais rápida e com custos muito menor em comparação com outras linguagens, apesar de ser não multithread ela melhorou a criação de sistemas que dependiam de coletar uma informação da rede e salva em disco, ou ler um banco de dados e responder em uma requisição HTTP.

Com o sistema de pacotes chamado NPM, contribuiu para o crescimento da linguagem que se tornou usada desde de um servidor até na página web acessada por um smartphone.

Falando em smartphone 2010 foi um ano interessante sobre o assunto, existia um debate muito grande sobre se smartphones deveriam ter suporte ao flash ou não, iPhones não tinha suporte, diferente de alguns modelos Android. Foi quando o Steve Jobs, decretou a morte do Flash e ainda mais força do Javascript.

Thoughts on Flash - Apple

Apple has adopted HTML5, CSS and JavaScript – all open standards. Apple’s mobile devices all ship with high performance, low power implementations of these open standards. HTML5, the new web standard that has been adopted by Apple, Google and many others, lets web developers create advanced graphics, typography, animations and transitions without relying on third party browser plug-ins (like Flash)

Apple adotou HTML5, CSS e Javascript - Todos padrões abertos. Dispositivos móveis da Apple são entregues com alta performance, implementações de baixo consumo de bateria para esse padrões abertos. HTML5, o novo padrão da web que tem sido adotada pela Apple, Google e muitos outros, deixa que desenvolvedores web criem gráficos avançados, tipografia, animações e transições sem depender de uma terceira parte do browser com plugins como o flash.

A linguagem com tanta coisa precisou evoluir e hoje já se encontra na sua versão 9 de padronização, já não vemos mais a necessidade de instalar plugins nos navegadores para ver animações e interações, nem esperar a página carregar e ficar sem algo funcionar por conta do erro na linha 678 caracter 2. Também temos diversas operações financeiras sendo processadas em Javascript, dispositivos de conectados que usam Javascript, fora aplicativos híbridos que funcionam em Android e iOS.

Esses motivos para mim é o que torna Javascript a linguagem mais impressionante, a linguagem de brinquedo que se tornou a linguagem principal da web, lugar que a Sun, Oracle e Microsoft tanto queriam, ficou para uma linguagem de padrão aberto, que está em quase todo o lugar.

Com exceção ao C, para mim a segunda linguagem mais impressionante e acredito que só não é mais impressionante por questões de gosto e não conhecer tão bem a história, mas nada do que acontece em Javascript seria possível, sem as ferramentas escritas em C.

Como terceira linguagem que acho impressionante é o COBOL, desenvolvido por Grace Hopper e ainda muito utilizada por bancos e organizações governamentais, uma linguagem que está sobrevivendo ao tempo.

E a quarta linguagem que acho impressionante e acredito que será pro futuro é Python, ela era uma linguagem já meio esquecida quando se tornou a principal linguagem para Machine Learning, que terá um enorme crescimento no futuro.