terça-feira, março 08, 2005

Wish List - A Linguagem Ideal

Aqui vai minha lista de características para uma linguagem de programação ideal, por ordem de importância.
       
  1. Closures.
  2.    
  3. OPCIONALMENTE tipada. Isso mesmo, nem dinâmicamente tipada nem estaticamente tipada, quero usar tipo qdo eu quiser. E mais, por conta disso tem que aceitar polimorfismo local.
  4.    
  5. Biblioteca decente para Coleções com suporte a Closures e uniformidade de métodos entre as coleções.
  6.    
  7. Reflexão simples e funcional.
  8.    
  9. Puramente Orientada a Objeto. Classes tb tem que ser objetos.
  10.    
  11. Suporte a Expressões Regulares no padrão PERL, de preferência com muito açúcar sintático.
  12.    
  13. Biblioteca para Arquivos simples e funcional, PRINCIPALMENTE com facilidades para trabalhar arquivos texto. Nada de open - close, deve trabalhar com closures (padrão "during" do Smalltalk). Serialização opcional em CSV e XML tb ia ser legal.
  14.    
  15. Biblioteca para Banco de Dados simples e funcional. Também que ser capaz de trabalhar com closures naturalmente. Nada de open - close tosco, usar novamente o padrão "during" do Smalltalk.
  16.    
  17. Biblioteca para Rede simples e funcional. Suporte a closure, serialização e desserialização automática de qualquer objeto. Sockets do Java são um bom começo.
  18.    
  19. Suporte descente a Threads. A nova biblioteca do Java 1.5 parece boa, mas, adicionalmente, deveria ter uma estrutura especial de linguagem para indicar instruções que eu posso executar em paralelo daquelas que eu sou obrigado a executar sequencialmente. O trecho em paralelo tem que terminar todo antes de prosseguir para a próxima instrução sequencial. A JVM ou equivalente deveria aceitar um parâmetro de quantas paralelizações no máximo ela aceita e qdo esse limite chegar, executar sequencialmente as instruções que estão marcadas como "executáveis em paralelo". Se quiser ter uma boa idéia do que estou falando, veja as tags "sequential" e "parallel" do ANT.
  20.    
  21. Suporte MUITO simples e funcional a XML e processamento XSLT.
Obs: Qdo digo SIMPLES, quero dizer SIMPLES DE USAR, não que o suporte seja limitado. SIMPLES DE USAR é conseguir executar 80% das operações mais comum em apenas uma linha. É isso aí, aparentemente as linguagens de script que estão crescendo por aí atendem boa parte da minha lista de desejos. Preciso ver em especial Python e Ruby. O Groovy já atende muitos dos requisitos, mas ainda tem uns bugs. Smalltalk atende a maior parte da lista, mas peca um pouco por falta de bibliotecas.

Nenhum comentário:

Postar um comentário