November 21st, 2005

Ranty Time!

(no subject)

meh. Burned out. Considering whether I want to extend my stay at Cal Poly for a quarter or two (probably on my own dime) so I don't either (a) run the risk of exploding next quarter, or (b) have to drop something I'd rather do.

I want to be doing most of what I'm doing right now ... but yeesh. I want time to go to the beach and whatnot, too. I want the time (and creative energy) to write creatively, to learn other languages, and to generally work on interesting projects. (For starters, I would like a programming language that doesn't suck. A desktop environment that doesn't suck would be nice, too, but it's hard to write one of those without a programming language that doesn't suck.)

Yes, you heard that right, I did just imply that KDE sucks. It does suck. It's just that it sucks less than all the other DEs out there. (Yes, it even sucks less than GNOME. ;P)

Ruby looks nice ... but there are a number of things in it that are just way too half-assed for my taste, and the syntax makes me cross-eyed. First off, it doesn't have threads. (I'm talking about *real* threads... you know, the kind that run in parallel, not some stupid "hey! let's round-robin in a single process and pretend it's concurrent!" bullshit.) Second, they do some weird "oh, this function's a generator" thing, instead of trying to make true closures work well. (Does the language even have true closures? I don't know.) Finally, the Ruby authors can't seem to keep the difference between punctuation and keywords straight. ("def"/"end" or "{"/"}"? Which is it, guys? ... I think "{"/"}" makes more sense ... use the keywords to describe/declare things, and use punctuation to visually separate out the definitions of those things. You wouldn't want to declare/initialize a variable by writing "int x 5", would you? (Does that mean "5 x integers", or "int times 5", or "the integer value of x followed by the number 5", or...?) It's not nearly as obvious as "int x = 5". :p Yes, you figure it out after half a second or so, but you need to expend more mental energy doing so because there isn't as much contextual information.)

Python ... meh. Way too inconsistent and crufty. The OO features look like a bolted-on afterthought. The core library doesn't even feel consistent ... it's like they threw a bunch of junior designers at the problem, each one came up with a different solution, and then they tried to use them all at once. Plus, even though it has real threads, they still have that whole "global interpreter lock" thing going on. It's not nearly as bad as Ruby's "solution" (I/O at least doesn't block other threads), but still... come on, guys. Oh yeah, and I like my semicolons and block markers. The whitespace thing doesn't do it for me.

Don't even get me started on Perl. Nice language if you're writing throwaway scripts (or throwaway web applications), but Jesus Fuck is it hard to read.

Oh yeah ... forget about Java, too ... excessive verbosity makes it less easy to read, not more. The goal here is a balance of compactness and readability. Plus, Java's just plain cumbersome. They took C++ and threw out a bunch of stuff because it was "too complicated" (like, say, templates and vararg functions), and now that Java 1.5 is here, they realized "oh, shit, that was in there for a reason...". Real smart. :p

I'm just waiting for them to throw operator overloading back in. (Which, believe it or not, is very useful in some situations.)

So. Yes. All programming languages suck. Every desktop environment (yes, including Mac) sucks. Every OS sucks.

And you know what else? I should've been in bed an hour ago.

-- Des
  • Current Mood
    burned out