Lanuage Design

The Venus programming language is influenced by the following languages:

D

You might find Venus much like D because I'm writing this language as my fork of D language. D is a great language, it is the most flexible language I've seen so far and writing code in D is a very pleasant experience. I love many features in D and is going to implement them in Venus as well.

But I'm still trying to create a new language rather than stick to using D because:

  • I'd like to learn from creating a new language.
  • Some of the default settings in the language was proved not the best. For example: final, pure, nothrow
  • D is huge. It has too many features and their interactions make it even more complicated.
  • Unlike Python, D is not a good first language. I'd like a language perfect for newbies as well as proffesionals.

I'm using D to implemented Venus.

Python

  • modules (a mix of python/D)
  • stdlib/docs
  • ease of use

Kotlin

Some of the syntax are influenced by kotlin

  • val, var
  • last function parameter expansion

C/C++

This is obvious. Just like D, Venus is a C/C++ derivative. Venus will be binary compatible to C, just like D does.

Rust

Go

  • Go - Concurrency model, tooling and the strategy of bootstrapping with C and then go full go.

Clojure

  • Clojure - value, ref, state, time... you see the similarities.

Scala

  • Scala - Kotlin is influenced by Scala and I'm too.

Javascript