[quote=sergiotaborda][quote=carlosanalista]http://www.computer.org/portal/web/computingnow/software%20engineering/content?g=53319&type=article&urlTitle=computing-trends-lead-to-new-programming-languages
Segundo o artigo publicado na revista “COMPUTER”, uma publicação do IEEE, as linguagens mais utilizadas numa pesquisa feita a partir de 45 milhões de linhas de código são respectivamente:
C, C++ e Java.
Entretanto estas linguagens, segundo o artigo, podem perder lugar de destaque para novas linguagens, pois apresentam algumas deficiências que tornam exaustivo seu uso em cenários computacionais que utilizam por exemplo processamento paralelo, CPUs multicore, alta performance e cloud computing, sistemas distribuidos e Mobile. O artigo apresenta alguns exemplos de novas linguagens como exemplo: Microsoft F# que é apresentada como funcional e prática.[/quote]
Hoje é obvio a todos que o modelo de usar VM é muito melhor que escrever codigo diretamente para o CPU. Isto era obvio antes - porque a VM nada mais é que um nivel de indireção e todos os problemas podem ser resolvidos com o nivel de indireção a mais - mas as pessoas resistiam à ideia. Hoje não mais. E a JVM da Sun, hoje Oracle é a melhor que existe no mercado em termos de VM. Ora, mas ela é uma máquina. então da mesma forma que várias linguagens compilam para máquinas reais, várias podem compilar para máquinas virtuais. Aliás, o .net sempre partiu deste principio. A linguagens .net compilam todas para a mesma linguagem comum que depois é executada.
Ora, o que estamos vendo agora é o pessoa entendendo que “VM” é legal, mas ainda é apenas uma VM. E da mesma forma que o java quiz ser cross plataform, a nova vaga de linguanges quer ser “cross-Vm” e aqui está um potencial imenso ainda inesplorado. Inclusive entenderam que a VM javacript é um alvo de mais linguanges ( o dart prova isto)
E é a corrida ao ouro. Todas querem ser o próximo java. A Haxe , assim como Fantom apostam neste ideia de corss-vm, mas isso vem com consequencias. Vamos ter UI para tudo ? Imagine ter algo semelhante ao swing que corre em qualquer VM. Imagine vc escrever um código que realmente nunca mais vc terá que reescrever porque vc vai trocar de VM , não de linguagem. Isto seria otimo. Uma linguagem e API para governar todas as outras. A uma-linguagem é próximo santo graal e quem conseguir encontrá-la vai ficar milionário. O problema é que o trabalho é imenso. Imagine compatibilizar .net com java com javascript, com php , com ruby, etc… loucura. Mas se vc tiver algo que corra vm de javacript (e ha várias , cada browser tem a sua) e algo que corra em uma plataforma de servidor como java ou .net ( ou ambas), pronto. Tá fechado. O problema agora é comercial e econômico. Porque alguém iria migrar para essas novas meta-plataformas ? E será que realmente os resultados são bons ? Dá para confiar ? Esta é a pergunta chave.
Como ainda é tudo muto corre-corre, ainda não dá para apostar tudo em uma delas. Então o pesoal precavido ainda fica no java ou no .net e no máximo faz um programa hibrido usando uma em um nodo e outra em outro (tipo android no cliente +.net no servidor). É que a linguagem é apenas o primeiro passo, o dificil é compatibilizar as API. sobretudo as básicas (I/O, Threads, UI ) (como se abre um arquivo em javascript ? )
Eu acho que é o futuro e estou de olho no melhor candidato e ha muitos. Realmente muitos. Mais dos que estão no artigo. Tem o fantom que já citei, mas tem o scala, o kotlin o gosu e muitos outros. Algumas querem ser meta-plataforma outros não . Por exemplo o scala ainda usa muita API do java. Ele pode ser compilado para .net ( porque o java pode ser compilado para .net via ikvm) mas é estranho tanta mistura. O idela seria ter uma aPI scala pura e o compilador se virar para usar API da plataforma base. Outros já partem deste principio. O fantom por exemplo tem api propria para muitas coisas e deixa usar o conceito de “native” que em java é usado para programa em C++ , em fantom é usado para programar código “nativo java” ou “nativo C#”. É um conceito interessante.
tudo se resume à robustez. quando estas novas plataformas mostrarem que valem o investimento, as pessoas vão começar a migrar. E no entretanto todas as variantes mostram as vantagens e desvantegens das outras. Hoje em dia se vc não é OO, esquece. E tem que ser fortemente tipado e tem que ser dinamicamente tipado e tem que ter closures e tem que ter paralelismo e um monte de outras coisas. E está se procurando o melhor encaixe para tudo isso. O problema que eu vejo com essas linguagens é que são pouco simples. têm muitas palras chave em vez de conceitos profudamente compreendidos . O java é muito bom em ser simples, com poucas palavras chave, mas parece que ninguem quer seguir isso. Talvez quem conseguir esta simplicidade seja o ganahdor da corrida.
Vamos ver o que o futuro nos trás [/quote]
Não concordo que a vm é a solução para todos os problemas. Um exemplo disso é comparar o ios com o android. O segundo precisa de 3x mais hardware para conseguir o que o primeiro faz com pouco. Existe um “talvez” e um “depende” enorme aí na sua resposta.