Purpose
Popular programming languages (Java, Python, C++, C#, etc.) have evolved over the last decades. Many powerful features have been added to these languages. Furthermore, new language appeared with strong connections to these existing languages (Kotlin, Scala, Clojure, Go, Rust, etc.), adding from fundamentally new paradigms to mere syntactic sugar.
The purpose of Fuzion is to provide a simple and easy to learn programming language with powerful features, while avoiding the burden of the legacy of existing languages. Fuzion shall have the potential to become the most popular general purpose programming language.
The guiding principles of the Fuzion language shall be
- simplicity
- cryptic, complex and difficult to learn features should be avoided
- abstraction
- implementation details should be left to the development tools to select for most efficient implementation
- avoid redundancy (deprecate?)
- the developer should not be confronted with different mechanisms to achieve the same goal
- safety
- there must be no way for code to access data or functions unless it explicitly has been given permission to do so
- scalability
- it must be useful for small command line tools up to large server applications
- efficiency
- modern optimization techniques and run-time systems should be supported
- extensibility
- it must be possible to extend the language, e.g. to define a DSL
- interoperability
- access to code and libraries written in other common languages must be possible
- analyzability
- automatic code analysis tools should be available or relatively easy to develop
- determinism
- it must be possible to accurately predict the outcome of a program, possibly including its timing behavior.