IMO every popular language at the moment has some sort of debilitating problem which makes me unhappy recommending it as a first teaching language.
So my language will have:
- curly braces and standard 3-clause for loops
- first-class functions and only first-class functions
- first-class strings and dicts
- no variable hoisting
- no magic methods (e.g. Main.main())
- suitable for OS development (compiled to x86 via nasm), web servers, application development, and retargetable to javascript
I've written a runtime bnf-esque parser, got ast building and flattening to asm working, just touching up my asm syntax now (first milestone is simple numeric/string console programs under win32)