Skip to content

aaliomer/c--

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

c--

This is a multiple paradigm language to replace c++ and rust. It should be easier to pick up, as boring and more productive than Go.

the top goals of this language are:

  • interoperability with c and possibly other functional languages with algebraic data types (why can't we call an elm function? or generate elm code?)
  • readability. rust and c++ are very difficult to read. nim, crystal, go and python are closer to what we want.
  • no garbage collection, no runtime and no built in allocator (think zig)
  • real algebraic data types and possibly dependent types (think idris + elm)
  • polymorphism in generics and limited function overloading (can't overload functions with the same number of params)
  • methods and interfaces (mix of explicit and implicit interfaces. think go meets Java)
  • macros! annotation and function based (think nim)
  • modules as first class citizens (think typescript)
  • array based... ish
  • copies methods names and signatures from other languages standard library to make it easy to learn
  • Destructors! think javascript
  • minimal syntax sugar (not religious though like Go)
  • library driven mostly and not language driven.
  • DSL's not as a goal, but as a consequence of macros.
  • compiles fast! use regular grammar and modular compilation. think zig
  • type inference. no one needs to type all that crap. We have IDE's
  • one or two ways to do one thing (instead of super opinionated languages)
  • expression based
  • simple memory ownership/borrowing as well as weak and shared references similar to c++ with automatic resource management
  • add ad-hoc methods to types outside their package (think scale)

About

This is a multiple paradigm language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published