Monday, December 27, 2010

Programming is Easy (Usually)

I read the Daily WTF sometimes, and I have to say: the only things they can complain about is "quirks" of the language they're using: exceptions make control flow hard to follow, rand() isn't referentially transparent, lack of syntax sugar, etc. etc.

These are bugs; they happen to be located in the programming language design. But you can still fix them. Stop complaining, start programming. Seriously.

The problem is that languages are considered to be "hard"; this probably comes from examples in the past.
  • C/C++ (namely GCC) was specifically designed to be messy and hard-to-modify, so that proprietary software can't interface with it.
  • Javascript (in general, any committee language) has too much red tape to modify it (e.g. "let" isn't used because it's not cross-browser)
  • Perl/Python/Ruby are constructed around "philosophies" rather than fixing problems in languages (i.e. they reject language patches)
  • "Small" languages are designed by academics, and are guilty by contamination (Lisp, Io, etc.)
So it's wrong; fixing bugs is easy. You just have to solve all these other "human" problems to get it accepted, which is supposed to be hard for programmers. Think "geek in the basement"; is he going to spend time advocating for his patches when he could just keep on hacking? Thus one ends up with a fragmented ecosystem of good programming; lots of people, working on their own, who nobody pays any attention to except to reject. And they don't say that it's easy, so it's hard.

Does the conspiracy to keep programming difficult sound extreme yet? Subscribe for more!

Sunday, December 12, 2010

Link dump

This is pretty much everything I'm going to dump into the language core: