“Programming languages are like religions”. This was a quote from Edwin Walder. He claimed that belief was one of the main reasons for a wide adoption of a programming languages. Naturally, it is only one side of the dice, and other aspects are of course important as well. Nevertheless, it is the belief that a language would be “highly productive”, “efficient” and “having a future” that makes people put the effort to learn them.
The reason I present this work is also based on belief. I personally believe that the language presented in this website is highly appealing and practically implementable. It is, if I may say so, a new generation language. A clean and intuitive syntax with high level constructs adapted to today’s concerns. It combines major paradigms, is implicitly parallel, network oriented, leverages means of abstraction, very interactive …and much more. Yet, it aims also at being simple and integrating well with other technologies to provide a productive and fun experience to the user.
Some of you may be suprised by the line "...but not object oriented". Indeed, despite OO is the paradigm of mainstream languages, many others exist and are mature. Arplan uses concepts from functional programming and the actor model, leading to different ways of programming. For example, it may seem highly bizarre and doubtful to program without assignation nor caring in which order statements are evaluated. However, this is common in functional programming like in Arplan.
Do not worry, the language is meant to be natural and easier to learn. You just have to unlearn other things first. It is by essence made to shift our ways to make programs: from sequential to parallel. But it is also much more than that. It is also a whole development environment integrating common development practices. The key aspects of Arplan as a whole could be summarized as follows:
- Parallel, concurrent computing
- Intuitive, high-level syntax
- Source code is just one representation of a program
- Extendable syntax
- "Flexible" typing
- Doc and meta-data as inherent part of the program
For instance: examples serving as both doc and executable test cases
- New means of structuring, navigating and verifying the code
This project started in 2009 and is in its early infancy. Hence, please be indulgent. This website tries to explain the various concepts used in the language as good as possible, but of course there can be lacks. Keep in mind that this is still in an experimental stage.
Thank you for your interest, and enjoy the reading. Feedback like comments, questions or suggestions is always welcome.