|
@@ -1,42 +1,6 @@
|
|
|
# Description (My bad opinionated opinions :D)
|
|
|
|
|
|
-## 0. Reason - Why? - Because!
|
|
|
-
|
|
|
-Because I need a more user-friendly tool, that's why!
|
|
|
-
|
|
|
-#### 0.1. less f*ck brains with parentheses
|
|
|
-
|
|
|
-todo (about problems in languages with C-like syntax)
|
|
|
-
|
|
|
-#### 0.2. less f*ck brains with whitespaces
|
|
|
-
|
|
|
-todo (about problems in languages with indentation syntax - Off-side rule - YAML, Python, Nim)
|
|
|
-
|
|
|
-#### 0.3. less key presses
|
|
|
-Erlang is most laconic high-level language that I ever seen -
|
|
|
-laconic and expressive, very simple (not overcomplicated) and is easy to learn.
|
|
|
-
|
|
|
-#### 0.4. target language
|
|
|
-The only imperfection of Erlang is .. VM -
|
|
|
-so if you write any crypto miner in Erlang - it won't impress with its performance...
|
|
|
-(Erlang is very well designed for IO - network, parallel tasks etc,
|
|
|
-but can show not better results for "number crusher" - CPU heavy tasks)
|
|
|
-.
|
|
|
-so as target needs system programming language that compiles to native single executable binary file.
|
|
|
-.
|
|
|
-Haskell was rejected cause - sometimes headache with io-pure-impure functions, non-optional GC, too many ways to make the same (so read other people's code may be too nontrivial);
|
|
|
-Go was rejected cause - that was not more easy that Haskell for me (Haskell was more easy in use), also non-optional GC;
|
|
|
-Rust was rejected cause - overcomplicated style of writing code - you do not thinking about your app architecture but have f*ck your brains with compiler - borrow checker etc (also is not so "memory safe" in reality as in advertising);
|
|
|
-C++ was rejected cause - super overcomplicated, not need so headache ;) ;
|
|
|
-C was rejected cause - I think for 2025 year C is a bit outdated (not so user friendly as we want), also don't want to write function declarations twice, and other cucumbers;
|
|
|
-OCaml was rejected cause - has not user friendly compiler (non-informative errors messages), non-optional GC;
|
|
|
-Nim was rejected cause - too less performance comparing to Dlang and C;
|
|
|
-Zig was rejected cause - unstabled - in active development phase (will check - compare in future);
|
|
|
-Jai was rejected cause - still in closed beta (will check - compare in future);
|
|
|
-Forth, Common Lisp, Red, Ada, Lua, Mojo and Swift - have not been considered for this task;
|
|
|
-D - Dlang - compiles to native single executable binary file, rich of features - not less possibilities than in C++, has optional GC, stable - mature etc.
|
|
|
-so Dlang has been selected as target language, and compiler v1 will be in Dlang (v2 will be seft-hosted).
|
|
|
-
|
|
|
+## 0. [Reason - Why?](reason_why.md)
|
|
|
|
|
|
|
|
|
## 1. Naming
|
|
@@ -44,10 +8,11 @@ so Dlang has been selected as target language, and compiler v1 will be in Dlang
|
|
|
Compiler `dopp` for `doppelganger`
|
|
|
(also `dopp` command),
|
|
|
|
|
|
-Language `DEF-lang` for
|
|
|
-`[based on] Dlang [and influenced by / inspiration from] Erlang [new] Fine language`.
|
|
|
+Language `DE[F]-lang` for
|
|
|
+`Dlang [with -- influenced by / inspiration from] Erlang [Flavoured language]`.
|
|
|
|
|
|
-File extension - `*.de` (because `de` shorter than `def`).
|
|
|
+File extension - `*.de`.
|
|
|
+File text code - utf8 without BOM.
|
|
|
|
|
|
|
|
|
|