Language Griping 
2007.02.26 14:04 - Work-related
I was hired into a Java-programming position last May which, almost immediately (and well before I got to do any Java programming) became a .Net programming job. This is mostly okay. .Net is likely to be more saleable down the road, and it's a vast improvement over MFC in most regards. Still, I find myself pining for Java, now and then. (Also for Scheme, but that's not a problem specific to C#.)

C# is, mostly, a nice language. And it does have some nice features that Java really, really ought to have had ages ago. However, I sometimes run into a feature of the language that just gives me screaming fits.0 The one that's most often the bane of my existence is the lack of a throws clause on function declarations. I think I have a fair idea why they did this1, but it's really a major pain. Exception-safe code is a non-trivial enterprise when you know where your exceptions can come from. In C#, exceptions can, basically, be thrown anywhere, at any time (as far as you know). Granted, you're not going to be able to do much about the ones that really can be thrown anywhere, but there's also no way to guaratee that an object implementing an interface will actually behave the way you expect, because an important part of the contract is missing.

And documentation is no substitute, really. Although lots can be done to prevent docs from getting out of date with respect to the source code, there's no guarantee that everything will be documented, or documented correctly.

In any case, contract programming is, really, a no-go. The contract can change and you won't know until the application blows up messily. (In Java, you know at build that something's gone awry.)

0. Not actually. Well, there's no screaming involved. It's usually pretty irritating, though.
1. It allows derived interfaces to throw exceptions not specified above them in the class hierarchy. This allows for more generic interfaces. At least, I think that's the reason.2
2. It's probably also the case that they felt like too many Java programs just threw try { [...] } catch (Exception e) {} blocks in to avoid exception handling entirely. I would submit that making exception handling more difficult is probably not the solution. In practice, I think the C# solution probably encourages more of that, because you no longer have the same degree of certainty about thrown exceptions.

  |  [ 0 trackbacks ]   |  permalink
You'll probably hear about this before the day is out 
2007.02.26 11:02 - News and Politics, Philosophy and Religion
At least, if it's of any significance, anyway.

James Cameron is holding a press conference0 wherein he intends to present claims that a handful of bodies found in a family crypt in Jerusalem in 1980 actually belonged to Jesus of Nazareth; his mother, Mary; his wife, Mary Magdalene; and his son, Judah (amongst others, presumably).

He claims to have DNA evidence to support these claims, but I don't see how that can do anything other than verify that the bodies were related (which is stated by the inscriptions in the tomb, after all). At least, I'm not aware of too many free-floating bits of DNA that can be tied back to any of those figures.


0. Don't read the comments. It's really not worth the IQ points you'll lose.

  |  [ 0 trackbacks ]   |  permalink
I guess I'm going to see a movie this weekend. 
2007.02.20 13:37 - Entertainment, Movies
Apparently, my sister will be home soon, and wishes to go see "Ghost Rider," which is not getting great reviews. (I do have some sympathy with the reviewer from E! Online who offers this: "Seriously, people, if you're going to go see a movie you know is about a biker with a flaming skull and magic chains, you forfeit the right to complain about how the plot isn't logical or realistic." Fair enough.)

That said, it seems that "Pan's Labyrinth" is playing at a theater between home and the office, and I figure that I am somehow obliged to go see that at some point.0

Email's open for comments, if you'd like to offer them on either film, and I think I'll see about re-enabling comments this evening, so you can rant/rave as appropriate.

0. I actually enjoyed "Hellboy" in the theater, enough that I bought a copy of it later, and I'm pretty excited about "Hellboy 2: The Golden Army". All the same, "Hellboy" was not a good movie, however much I enjoy the comics on which it was based. At the moment, I just can't decide if I am owed a good movie by this director, or if I owe a good director the opportunity to show me a good movie in return for showing me one that I really wanted. One or the other, I guess.

  |  [ 0 trackbacks ]   |  permalink
Haikus, off-the-cuff and probably half-baked 
2007.02.05 22:51 - Entertainment, Bad Poetry Corner

Darkling wintersnight:
below, a graveyard silence;
o'erhead, the moon.


And another:

In springtime ever,
she waits: laughing, happy, hale.
I, in winter, strive.


  |  [ 0 trackbacks ]   |  permalink
The Weekend in Games 
2007.02.05 11:35 - Entertainment, Microcode, Television
  1. Final Fantasy XII: Completed a handful of hunts, but the big achievement was running through the last dungeon and beating the ever-loving tar out of the final boss. The strategy guide suggested a minimum level of 40, and recommended 45+. At level 56 across all six characters, I didn't have to significantly modify gambits or equipment, nor swap characters out. I didn't even need to issue very many commands manually, which was actually pretty cool. There's still several metric tons of side-quest to be completed, but I think I can say that FFXII is the best of the lot. Leaving FFXI aside, since I've never bothered, and Tactics (barely played), X-2 (haven't played, never will), and a handful of other side entries, I think FFXII is the best FF game made thus far. Given what I've seen of FFXIII, I think that's likely to remain true for a while. Yasumi Matsuno left Square part-way through this game's development; does anyone know anything about where he wound up, or what games he's working on? Recommended if you miss Final Fantasy.
  2. Guild Wars: Nothing much. Did a little faction farming, completed a couple missions over the past week and opened up another Hero for my main character. A little burned-out on GW at the moment, especially with the latest round of skill-balancing going through right now. It's cool that ArenaNet goes to such lengths to make the PvP end of the game interesting, but I don't play PvP any more than necessary (which is to say, hardly at all, and never against/with actual people). Since the latest round of changes doesn't do me any favors in PvE land, I'm not that interested. Looking forward to details on expansion 4, one of these days. (Nightfall's really excellent, though.)
  3. Myst Online: URU: Aside from a few uncomfortable moments of confused identity Saturday night, Uru's actually pretty cool. Since it's a non-competitive game (and a non-violent game), it's more fun, in some ways, than anything else I've played (I never played Myst back when it was new). It hasn't grabbed me quite as firmly as it seems to have taken some other people, though. More poking around the dusty remains of a dead(?) civilisation this evening.
  4. Final Fantasy III: Couldn't help but be a come down from FFXII, but this is the last of the mainline FF games that I haven't played. So far, I loathe the magic system (seriously: it's the FF1 system, with some extra types of magic. I'll probably just have to keep my characters dedicated to specific lines of magic, which defeats the point of the job system), and the story is a bit less directed than I'd like, but I don't seem to have gotten really lost more than once. First impression: crummy, legacy magic system in an otherwise spectacular remake of an originally 8-bit game.

I hear there was a football game, but I didn't see much besides pretty mediocre commercials. Sorry, Matt, I think your team lost this year.
  |  [ 0 trackbacks ]   |  permalink

Back Next