Update Coding environment

Glen Whitney 2024-07-11 20:55:38 +00:00
parent 6c0659033c
commit 120b6f2ca0

@ -20,25 +20,27 @@ Non-negotiable items:
Other items Other items
(should be fleshed out, but things like easy lists and dicts, nice comprehension expressions for them, what else?) (should be fleshed out, but things like easy lists and dicts, nice comprehension expressions for them, what else?)
Here let's try to collect various language options, with their pros and cons: Next let's try to collect various language options, with their pros and cons:
### Civet ### Civet
+ Nicest syntax I've ever used + + Nicest syntax I've ever used
- Tied to the dreadful TypeScript type system (probably disqualifying) - - Tied to the dreadful TypeScript type system (probably disqualifying)
### Nim ### Nim
+ Nice rational syntax with lots of features + + Nice rational syntax with lots of features
- Clunky comprehensions (see the examples on the home page) and dicts not first-class with good literal notation. (Oddly, {"a": "b", "c": "d"} appears to be a literal representation for a fixed-length array of pairs of strings. So in particular, the types in each pair have to match, and all pairs must be the same type. But it's hard to find documentation about this, which is somewhat worrisome.) + + Compiles to JavaScript or WASM (via either C/C++ > emscripten or a third-party LLVM backend)
- Some odd rigidity, such as indentation for continuing expressions is only allowed in certain special places like after a binary operator or a parenthesis. Araq, the "benevolent overlord" of Nim, definitely displays his opinionated rigidity on the forums. Of course, maybe that's what it takes to see a new language through to success... - - Clunky comprehensions (see the examples on the home page) and dicts not first-class with good literal notation. (Oddly, {"a": "b", "c": "d"} appears to be a literal representation for a fixed-length array of pairs of strings. So in particular, the types in each pair have to match, and all pairs must be the same type. But it's hard to find documentation about this, which is somewhat worrisome.)
- - Some odd rigidity, such as indentation for continuing expressions is only allowed in certain special places like after a binary operator or a parenthesis. Araq, the "benevolent overlord" of Nim, definitely displays his opinionated rigidity on the forums. Of course, maybe that's what it takes to see a new language through to success...
### Lobster ### Lobster
(Is this worth a more careful comparison with Nim, or is it just too small/fringe?) * (Is this worth a more careful comparison with Nim, or is it just too small/fringe?)
### Scala, now with significant indentation ### Scala, now with significant indentation
(I think targeting the JVM invalidates this?) * (I think targeting the JVM invalidates this?)
### C++ with our own civet-like syntax mangler ### C++ with our own civet-like syntax mangler
- Big con: we would have to implement this! - - Big con: we would have to implement this!