⬅ 🏠 Home
⬅ 1 💭 Philsophy of the Language
The following is a list of programming languages that inspired this one in one way or another. This can either be certain constructs or keywords in the language, or the philosophy of the language as a whole. It should be noted that this is based on my personal experience with these languages. It may be that a certain feature of a certain language did inspire a certain feature of Mamba, but that does not mean that another language does not contain said feature, only that I encountered it there first.
| Language | Inspired |
|---|---|
| Python | Flexibility. Co-existence of functional and OOP paradigms. Large portions of the syntax. |
| Java | OOP concepts. Static typing rules. |
| C# | OOP concepts. Static typing rules and type inference. |
| Scala | That everything is an object, including primitives of the language. Pattern Matching. |
| Kotlin | Ranges baked into the language. Type aliases. Covariance and Contravariance using in and out. |
| Ada | Custom data types (or type aliases) with ranges, which also partially inspired the type refinement system. Use of natural language over symbols, such as using and as opposed to &&. |
| C++ | OOP concepts and operator overloading. |
| C | General programming concepts. Not so much a direct inspiration but more a general influence. |
| Eiffel | The design by contract philosophy and the retry keyword. Design by contract also inspired the type refinement system. |
| Haskell | Pattern Matching. Immutability. Closeness of mapping with mathematical notation, for instance set constructor notation. |
| Rust | Error handling mechanisms and strict rules regarding mutability. |
| Ruby | Portions of the syntax of the language. |
| Swift | Elegant error handling mechanisms. |
| Go | Error handling mechanisms, which encourage error handling on site. |
| MATLAB | Small portions of the syntax. |
| SmallTalk | OOP concepts, with a large emphasis on program state. |
| JavaScript | Interchangeability of variables and functions, and a reliance on higher-order functions. |
| Perl | The forward keyword. |
My experience with each language varies greatly, from having used it on a near daily basis, to only having read about it online and only have a conceptual understanding of its workings. Below I outline a bit what each language aims to do, and how well I believe that it achieves these goals. The groupings might seem somewhat arbitrary to the reader, and to some extent it is. I grouped them mostly by what I perceived to be their intended design goals. Though their grouping depends heavily on the narrative, I'm sure that someone