|
|
- Powerful dependent type system for safety, correctness and rich meta information
|
|
|
- [Don't repeat yourself (DRY)](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) code
|
|
|
- Code readability & low entry barrier
|
|
|
- People coming from imperative languages will have a hard time anyway learning functional programming as it's new. Let's not make it harder for those people as must be.
|
|
|
- Development before science
|
|
|
- Made possible by science and for science, but it's a programming language, not a formula
|
|
|
- Focus should be use for development
|
|
|
- Minimalism, Modularity & Pragmatism
|
|
|
- Small language core for maintainability and forward compatibility
|
|
|
- Don't do stuff just because it's cool, do what's actually better in practice
|
|
|
- Speed
|
|
|
- Don't optimize your code, let the compiler do it for you.
|
|
|
- Question everything
|
|
|
- Each design decision should be properly motivated and justified. Don't do stuff just because it seems easy or how other languages do it.
|
|
|
|
|
|
- One canonical way to do it, governance
|
|
|
- A very important part of a language is the standard library and the usage. You need a practically usable standard library that people use to do stuff so that libraries and programs can actually be used together. The best language is good for nothing if half the community uses `Text` and the other uses `String` because it's in the Prelude. |
|
|
\ No newline at end of file |