Nova linguagem de programação

11 respostas
luizfar

Olá!
Faz tempo que não visito o fórum!
Ando meio ocupado ultimamente…
Mas, bem, estou aqui para fazer uma pergunta para todos.

Eu ando com umas idéias de criar uma nova linguagem de programação. É um projeto que quero fazer desde o ano passado, quando estudei compiladores na faculdade, e devo fazer como um hobby mesmo. Aliás, já iniciei o planejamento da linguagem e a implementação do compilador. Estou estudando a biblioteca ASM e como funcionam os bytecodes Java, pois pretendo fazê-lo gerar bytecodes.

A minha idéia seria uma linguagem dinâmica e fácil de programar, com tipagem dinâmica e estática, closures e integração com bibliotecas já existentes em Java. A linguagem é compilada para bytecodes Java, e a JVM faz o papel de interpretador. Não conheço Ruby, mas conheço Python e gostaria de trazer aquilo que gosto em Python, e tirar aquilo q não gosto (i.e. _s e __s para modificadores de visibilidade, métodos especiais iniciados com __, etc)…

Estava muito empolgado com a idéia, até que me lembrei que certa vez ouvi falar de Groovy. Bom, procurei mais detalhes sobre a linguagem e descobri que ela é bem parecida com aquilo que eu imaginava. Isso meio que deu uma desanimada… pois apesar de ser algo que me divirto fazendo, não seria legal criar uma linguagem para só eu usar.

Por isso venho até vocês, que são experientes, perguntar:
O que vocês acham da idéia? com tantas linguagens, como Ruby, Python, Groovy, é uma idéia que compensa? Como a comunidade de desenvolvedores reagiria?
Se compensar, que tipo de features você acham que seriam interessantes?

Agradeço desde já a colaboração de todos!
Abraços!

11 Respostas

Luca

Olá

Se é para gerar bytecodes eu faria como o Scala e adotaria tipagem estática pois suponho facilitaria as coisas. Veja o Scala porque quem fez tem larga experiência em desenvolver linguagens e compiladores (javac por exemplo). O Scala gera bytecodes e ainda é interoperável com a API do Java.

Se não for para gerar bytecodes, então fica mais fácil pensar em tipagem dinâmica.

Recomendo que estude bastante as linguagens funcionais porque é delas que surgirá inspiração.

Quanto a saber se vale a pena ou não tudo dependará do grupo que você conseguirá formar em torno da sua idéia porque isto atualmente é meio difícil de fazer sozinho. Se você está em um ambiente acadêmico fica mais fácil.

Se você realmente gosta desta área porque não começa contribuindo com alguma linguagem que já exista como o Lua, Scala, Erlang ou mesmo Haskell?

[]s
Luca

ASOBrasil

luizfar:


Por isso venho até vocês, que são experientes, perguntar:
O que vocês acham da idéia? com tantas linguagens, como Ruby, Python, Groovy, é uma idéia que compensa? Como a comunidade de desenvolvedores reagiria?
Se compensar, que tipo de features você acham que seriam interessantes?

IMHO, para você atingir um público bom, ou você vem com uma idéia original, e/ou melhore o que o pessoal não gosta nas outras linguagens, vai por essa linha.

Mas para competir com Groovy, JRuby entre outras você vai ter que dedicar bastante tempo do seu dia-a-dia e ainda assim no final é capaz de só servir para seu aprendizado mesmo!

ASOBrasil

peczenyj

Eu ja estive com vontade de criar a minha linguagem de programação, ai descobri este post:

http://logbr.reflectivesurface.com/2003/12/04/criando-linguagens-de-programacao-declarativas/

otaviofcs

Antes de usar Java, eu desenvolvi uma linguagem script para estender funcionalidades de um sistema desktop. Fazia/faz muita coisa (loops, ifs, criação de métodos, impressão e coisas relacionadas) e é utilizada até hoje.

Foi muito útil para flexibilizar a aplicação e como aprendizado também (principalmente para aprender a não ter medo de outras linguagens).

De qualquer modo concordo com o ASOBrasil quanto à utilização pela comunidade. Qual o tchan da sua linguagem? Isso é fundamental para adoção. hoje mesmo tinha um tópico sobre a LUA no fórum. Essa é uma linguagem que tem muita aplicação em um nicho: script para personalização de games (o que já é muita coisa para uma linguagem que não tem um forte apoio financeiro por trás).

Em suma, boa sorte e bom aprendizado.

Mauricio_Linhares

Erlang e Haskell rodando na JVM seriam uma maravilha :smiley:

Fabio_Kung

Do lado negro da força tem a Boo. Pelo que entendi também é bastante parecida com o que você quer fazer.

Também foi criada por um brasileiro.

luizfar

Obrigado pelas opiniões!

Então, acontece que a tipagem dinâmica é uma das features que eu mais pretendo colocar na linguagem. Facilitaria as coisas usar tipagem estática? Claro, a geração de bytecodes seria muito mais fácil, mas não seria tão divertido :smiley:

Tive a oportunidade de estudar Lisp na faculdade. Lembro-me de ter preferido Prolog (que é programação lógica, bem mais diferente do usual, e bem mais legal também), mas sempre há coisas a se aproveitar. Estou estudando bastante coisas novas e pesquisando em diferentes linguagens pra ter inspiração.

ASOBrasil:
IMHO, para você atingir um público bom, ou você vem com uma idéia original, e/ou melhore o que o pessoal não gosta nas outras linguagens, vai por essa linha.
Mas para competir com Groovy, JRuby entre outras você vai ter que dedicar bastante tempo do seu dia-a-dia e ainda assim no final é capaz de só servir para seu aprendizado mesmo

Este é o principal motivo do tópico: o que vocês gostariam em uma nova linguagem?

Sei que posso não conseguir fazer algo realmente funcional. Neste caso realmente vai valer o aprendizado, mas estou me esforçando pra fazer uma linguagem utilizável, e ficaria feliz em ver alguém usando.

Erlang parece bem interessante, eu não conhecia. Pretendo dar estudada, pode render idéias para o suporte a programação paralela.

Se quiserem, posso postar mais detalhes do que tenho em mente para esta linguagem, como a sintaxe e algumas features que estou pensando.

Obrigado novamente!
[]s!

Java_Vinicius_Machin

Luca:
Olá

Se você está em um ambiente acadêmico fica mais fácil.


:roll: Luca, acho que no meio acadêmico é mais complicado. Bom, tenho quase certeza. Acho que a FAPESP não sustentaria financeiramente algo desse tipo, e sem bolsa(s) dificilmente vai atrair as atenções para seu projeto em tal meio.

Sobre a idéia, acho realmente boa mas um pouco utópica. A quantidade de pessoas envolvidas, acho (novamente), deve ser bem grande e, normalmente, pessoas adoram ver resultados logo, o que não seria o caso nesse projeto, causando perdas esporádicas de pessoal.

cv1

Eu quero um Smalltalk, misturado com Self e usando as boas ideias da Io, que seja facil de ler e escrever pra quem ja passou da fase de tomar sorvete pela testa, mas que mesmo assim nao pareca alienigena pra quem usa Java - e tambem nao seja outra copia do Ruby.

Eu quero uma linguagem orientada a mensagens (e nao a objetos), onde tudo eh um objeto, onde nao existe distincao entre classe e instancia. E, de quebra, eu queria poder modificar o pipeline da compilacao (como pode ser feito na Boo).

Boa sorte criando algo do genero pra JVM. :wink:

nbluis

Eu quero um Smalltalk, misturado com Self e usando as boas ideias da Io, que seja facil de ler e escrever pra quem ja passou da fase de tomar sorvete pela testa, mas que mesmo assim nao pareca alienigena pra quem usa Java - e tambem nao seja outra copia do Ruby.

Eu quero uma linguagem orientada a mensagens (e nao a objetos), onde tudo eh um objeto, onde nao existe distincao entre classe e instancia. E, de quebra, eu queria poder modificar o pipeline da compilacao (como pode ser feito na Boo).

Boa sorte criando algo do genero pra JVM. ;)
Se tiver isso eu uso.

P

Dada a disponibilidade cada vez maior de máquinas multiprocessadas, acho que eu iria na linha de uma linguagem que tornasse realmente simples a utilização de threads. Procure no google sobre Transputers e Occam.

Criado 31 de maio de 2007
Ultima resposta 6 de jun. de 2007
Respostas 11
Participantes 11