Linguagens de programação aprendidas e por aprender (2)

(continuando…)

Depois de Python, sempre simpatizei com a linguagem D. Gosto dela porque foi projetada pra corrigir os defeitos do C++, melhorar seus bons recursos (como templates, execução em tempo de compilação) e ao mesmo tempo se mantendo como uma linguagem de relativo baixo nível, compilada diretamente pra código de máquina e acessando funções da biblioteca C sem nenhuma dificuldade. E o D vem com várias facilidades, como constantes binárias, caractere “_” como separador de números pra facilitar a leitura de números grandes, raw strings (strings que não interpretam “\”), static asserts, bons recursos pra exceções e exception safety (muito melhor que finally!), gerenciamento de memória relativamente fácil, etc.

A maior parte das linguagens famosas atualmente roda numa máquina virtual, e eu não vejo por que essa preferência… No caso de linguagens muito dinâmicas, como Python, é uma implementação muito interessante, pois facilita a implementação de recursos como um interpretador interativo, desenvolvimento rápido sem etapa de compilação, reflexão, e avaliação de código dinamicamente (eval). Agora, em linguagens como Java e C#, acabamos ganhando o incômodo de recompilar o código a cada mudança; ter que instalar o run-time environment da linguagem nos computadores que usarão o programa; e ainda tem o custo de processamento e memória da interpretação ou compilação just-in-time (que é interessante em alguns casos, mas deveria ser opcional). Tudo isso em linguagens rígidas, inflexíveis e verbosas (Java mais do que C#)…

Então, por isso eu agora estou mais interessado em linguagens que são normalmente compiladas pra código nativo, como D, pelo desempenho e menor uso de memória. Em termos de expressividade, D tem praticamente tudo o que eu preciso (talvez dê pra sentir falta de reflexão… nesse caso, sim, eu usaria outra linguagem). Só tenho que conferir as bibliotecas disponíveis. Tendo isso, quem é que precisa de máquina virtual? :-)

Mas então, tenho ouvido falar de outra linguagem, que também vem com compilador pra código nativo e parece ter um ótimo desempenho: OCaml. Mas isso é assunto pra outro post, falando mais sobre linguagens funcionais…

Anúncios

Um pensamento sobre “Linguagens de programação aprendidas e por aprender (2)

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s