[quote=Alexandre Gazola]Acho que estão começando a “forçar a barra” com a linguagem Java… espero que não acabe virando um “C++ da vida” (estendendo a linguagem C)…
Seria melhor continuar focando esforços em aprimorar o suporte às linguagens dinâmicas na JVM, em vez de tentar fazer Java ser “a linguagem” para desenvolver todo e qualquer sistema.
[]´s[/quote]
Não entendi o c++ da vida.
Toda linguagem tem que evoluir. É pior ficar criando várias linguagenzinhas para cada problema.
A tendência que temos hoje é criar linguagens específicas para resolver problemas específicos. É melhor que criar um pato que nada, anda e voa, mas não é ótimo em nenhuma dessas tarefas.
A tendência que temos hoje é criar linguagens específicas para resolver problemas específicos. É melhor que criar um pato que nada, anda e voa, mas não é ótimo em nenhuma dessas tarefas.[/quote]
Uai, e o java não atende suas necessidades?
Imagino que ter que ficar alternando entre várias linguagens pode ser ainda mais cansativo.
A tendência que temos hoje é criar linguagens específicas para resolver problemas específicos. É melhor que criar um pato que nada, anda e voa, mas não é ótimo em nenhuma dessas tarefas.[/quote]
Cuidado. Criar DSL e criar Linguagens de Programação são coisas bem diferentes. Linguagens como ruby,e groovy ou javascript podem ser uma boa base para criar DSL mas são uma linguagem de programação só.
Java é uma linguagem de utilidade genérica o que significa que a sua preocupação não é em criar DSL.
[quote=marcosalex][quote=juliocbq]
Uai, e o java não atende suas necessidades?
Imagino que ter que ficar alternando entre várias linguagens pode ser ainda mais cansativo.[/quote]
São dois mercados distintos. Linguagens pra um domínio específico x linguagens de uso geral.
Já trabalhei com VHDL, uma linguagem pra fazer especificação e simulação de hardware. Inclusive no meu mestrado usei Haskell pra fazer um compilador funcional mais eficiente e simples que o VHDL.
[/quote]
O flex e o Bison também fazem isso e são bibliotecas para c++, e existem também para java. Por isso penso que não há necessidades de tantas variações.
Já usei prolog para criar sistemas especialistas e resolver problemas de busca em profundidade, mas poderia facilmente fazer com java ou c++, ou c# também.
Acho mais fácil evoluir a linguagem que criar uma outra para certos problemas
Questão de gosto.
E o flex e bison são bem mais limitados que o VHDL, principalmente se você trabalhar com FPGAs. As bibliotecas teriam de evoluir muito ainda, enquanto o outro é focado.[/quote]
Eu nunca usei vhdl, vou pesquisar para ver como funciona.
A idéia (que está nas propostas FCM e CFJ) é usar o “#” para significar uma referência a um método qualquer. Ficaria mais claro (e além disso seria mais adequado para o uso com “invokedynamic”) que criar “inner classes”.
Por exemplo:
class ExemploOrdenacao {
public static int comparar (String c1, String c2) {
return c1.compareTo (c2);
}
public static int compararDecrescente (String c1, String c2) {
return c2.compareTo (c1);
}
public static int compararIgnorandoMaiusculas (String c1, String c2) {
return c1.compareToIgnoreCase (c2);
}
public static void main (String[] args) {
String[] s = {"abc", "def", "ghi" };
Arrays.sort (s, #comparar(String,String) );
Arrays.sort (s, #compararDecrescente(String,String) );
Arrays.sort (s, #compararIgnorandoMaiusculas(String,String) );
}
}
Eu não sei não… Acho que essa história de closures pode trazer danos ao Java. Quem quer “lambda expressions” pode usar uma linguagem de script pra isso.
Pra falar a verdade ainda não entendi qual vai ser a grande vantagem de usar closures.
[quote=ceklock]Eu não sei não… Acho que essa história de closures pode trazer danos ao Java. Quem quer “lambda expressions” pode usar uma linguagem de script pra isso.
Pra falar a verdade ainda não entendi qual vai ser a grande vantagem de usar closures.
[/quote]
A vantagem maior é pros desenvolvedores de ferramentas e frameworks e não pro desenvolvedor comum.