What would be the main characteristics of a good, future-proof, general-purpose programming language? Depending on who you ask you may get slightly different answers. But if you carefully pick the most important answers you get, you will probably end up with the following list:
The main problem with these three items is that they are hard to combine into a single programming language. And that is the big challenge that Sparrow aims to solve.
We believe that Sparrow offers the right approach for solving this problem:
- we start from a simple language (a little bit more than C)
- the core abstractions need to be able to generate efficient code (zero-cost abstractions)
- we carefully make the language primitives be flexible and powerful
- with those primitives we construct more and more complex abstractions, maintaining the same level of efficiency
- we allow the user to extend the language with new abstractions and even with new programming paradigms
- we allow the user to extend the language to directly use files written in other languages
- we put the emphasis on writing library code instead of adding tons of language features
- we achieve all these through the use of static metaprogramming
- we make compile-time metaprogramming as easy as regular programming.
The results seen so far seem very promising. We've shown that efficiency, flexibility and naturalness can be integrated into one single programming language.
The purpose of this project is to bring Sparrow programming language to maturity. And from there, keep extending it to best adapt to the needs of programming. Hopefully we'll make a better world for programmers.