Editar: mi idioma permite la herencia múltiple, a diferencia de Java.
Comencé a diseñar y desarrollar mi propio lenguaje de programación con fines educativos, recreativos y potencialmente útiles.
Al principio, decidí basarlo en Java.
Esto implicaba que todo el código se escribiría en forma de clases, y que el código se compila en clases, que son cargadas por la VM.
Sin embargo, he excluido características tales como interfaces y clases abstractas, porque no encontré necesidad de ellas. Parecían estar aplicando un paradigma, y me gustaría que mi lenguaje no lo haga. Sin embargo, quería mantener las clases como la unidad de compilación, porque parecía conveniente implementarlas, familiares, y simplemente me gustó la idea.
Luego me di cuenta de que básicamente me quedaba con un sistema de módulos, donde las clases podían usarse como "espacios de nombres", proporcionando constantes y funciones usando la staticdirectiva, o como plantillas para objetos que necesitan ser instanciados (propósito "real" de las clases en otros idiomas)
Ahora me pregunto: ¿cuáles son las ventajas y desventajas de tener clases como unidades de compilación?
Además, cualquier comentario general sobre mi diseño sería muy apreciado. Puede encontrar una publicación informativa sobre mi idioma aquí: http://www.yannbane.com/2012/12/kava.html .