Edit: minha linguagem permite herança múltipla, diferente do Java.
Comecei a projetar e desenvolver minha própria linguagem de programação para fins educacionais, recreativos e potencialmente úteis.
No começo, eu decidi basear isso em Java.
Isso implicava que todo o código seria gravado na forma de classes e esse código seria compilado em classes, carregadas pela VM.
No entanto, excluí recursos como interfaces e classes abstratas, porque não encontrei necessidade deles. Eles pareciam estar aplicando um paradigma, e eu gostaria que minha linguagem não fizesse isso. Eu queria manter as aulas como a unidade de compilação, porque parecia conveniente implementar, familiar, e eu apenas gostei da ideia.
Então notei que, basicamente, me resta um sistema de módulos, onde as classes podem ser usadas como "namespaces", fornecendo constantes e funções usando a static
diretiva ou como modelos para objetos que precisam ser instanciados (finalidade "real" das classes) em outros idiomas).
Agora fico pensando: quais são as vantagens e desvantagens de ter classes como unidades de compilação?
Além disso, qualquer comentário geral sobre o meu design seria muito apreciado. Um post informativo no meu idioma pode ser encontrado aqui: http://www.yannbane.com/2012/12/kava.html .