Herschel is a general-purpose multiparadigm programming language. It is strongly typed, offering type inference, and parametric polymorphism ("generics"). It is thoroughly object oriented (everything is a object), while its consequent multiple dispatch approach gives it a strong functional touch. The object model is class-oriented, supporting multiple inheritance just as a separation of types ("protocols", "interfaces") and classes.
A list of features envisioned:
- object oriented ("everything's an object")
- multi dispatch functions
- strong functional aproach (while being not pure functional)
- first class functions and closures
- fully lexical scoped
- automatic memory management (garbage collected)
- returnable exceptions
- multiple returnvalues
- named parameters
- modules and namespaces
- classes and types ("interfaces")
- optional static typing
- compiled, though not required by specification
This project is neither finished nor really usable yet. You can find the code on
https://github.org/hvellyr/herschel