Notes on Languages
- I really like static typing because it eliminates a common source of errors.
- I really like pointers because they make the distinction between a value and a reference explicit.
- I'm fine with both manual memory management and garbage collection. Manual memory management adds awkwardness (particularly to code with a functional style). Garbage collection adds uncertainty.
- I like having goto. It would drive me insane not having break, return or continue (see also "structured programming").
- I'm not a fan of automatic exception handling (like in C++). It usually leads to anything unusual being flagged as an error. It's troublesome with concurrent programs.
- I like having a good way to do threading, in particular having channels for communication.
- I dislike OOP. While it can mean vastly different things to different people, it usually boils down to unnecessary abstraction and complexity.
Notes on particular languages:
- I really like C, despite its weak spots.
The most annoying problem is the lack of a good standard library.
Plan 9 fixes that.
- I like the syntax, except for the precedence issue with the
&operator. - Type declarations can be crazy, but it's usually not a problem in practice and can always be worked around using
typedef.
- I like the syntax, except for the precedence issue with the
- I like Go, although I feel it's not much of an improvement over Plan 9 C.
It has much nicer interfaces than C on other systems though.
- I don't like the syntax. I hate forced braces.
- I don't like having 1 MB binaries for small programs.
- I hate C++ (although I've used it a lot in the past). The languages has too many crazy complex features.
- I hate Java and C# for similar reasons. Add to that the forced use of object orientation and a completely insane standard library.
- I like writing shell scripts with
rc, but I don't like the bourne shell. - Python is kind of okay for testing algorithms. Awkward to write larger programs in.
- Perl is a mess.
- LISP is fun although it gets messy quickly.
- I admire FORTH for its simplicity but I can't wrap my head around all the stack dancing.