TODO - The ultimate programming language

I’d like to make a “universal” programming language that takes the best features of all the new languages, and either (1) directly supports those features, somehow, or (2) provides lower-level primitives out of which those features can be built, with features provided by the standard library.

If I have seen further, it is by having built a giant robot to stand on.

Goals

Prototyping can be done in LES.

The wishlist

Step 1 is to gather a list of the features we’d like to support. This post is step 1.

Functional languages

Object-oriented languages

C# (among others):

.NET:

LISP languages:

sweet.js (among others)

Nemerle:

Ceylon:

D2:

Go:

Rust:

Julia:

Fortress (dead language):

Plaid:

Other ideas:

Note: many of the above features implicitly enable other useful features that some languages implement directly. For example, C#’s events and the safe?.navigation?.operator would not require any special compiler support in a language with macros and custom operators. I still put a couple of features of this nature in the above list, e.g. an expression-based language with macros wouldn’t require the quick-bind :: operator to be a built-in feature, but I put it on the list anyway because it is very handy but not well-known.

TODO: Learn more about

Notes:

Type system ideas

I’m thinking of having several levels of typing:

Details have not been worked out, but the most important goal should be to find some reasonable and easy-to-use form of type-system extensibility, so that interesting type-system features can be added as “libraries”, in such a way that multiple orthogonal typing concepts can apply to a value at the same time.

Comments