Modifica: la mia lingua consente l'ereditarietà multipla, a differenza di Java.
Ho iniziato a progettare e sviluppare il mio linguaggio di programmazione per scopi educativi, ricreativi e potenzialmente utili.
All'inizio, ho deciso di basarlo su Java.
Ciò implicava che tutto il codice sarebbe stato scritto in forma di classi e che il codice viene compilato in classi, che vengono caricate dalla VM.
Tuttavia, ho escluso funzionalità come interfacce e classi astratte, perché non ne ho trovato la necessità. Sembravano imporre un paradigma, e mi piacerebbe che il mio linguaggio non lo facesse. Volevo mantenere le classi come unità di compilazione, perché mi sembrava comodo da implementare, familiare, e mi è piaciuta l'idea.
Poi ho notato che sostanzialmente sono rimasto con un sistema di moduli, dove le classi potevano essere usate come "namespace", fornendo costanti e funzioni usando la direttiva static
, o come modelli per oggetti che devono essere istanziati ( scopo "effettivo" delle lezioni in altre lingue).
Ora mi chiedo: quali sono gli svantaggi e gli svantaggi di avere le classi come unità di compilazione?
Inoltre, qualsiasi commento generale sul mio design sarebbe molto apprezzato. Un post informativo sulla mia lingua può essere trovato qui: link .