Posts Tagged ‘rant’
Java: First Impressions
(For context, I’ve just spent most of my [Australian] summer on a large project in Common Lisp, and enjoy working in Ruby and Haskell.)
So I just finished my first small/medium-sized project in Java. There’s a few things that stuck out at me.
- Boilerplate, boilerplate, boilerplate! Why do I have to create so many oneline getX functions? What’s with the verbosity? What’s with the creating classes after classes for the simplest extensions?
- …
string1.Equals(string2)? Really? - Uggh, lack of closures. Had to create an entire class hierarchy (complete with discounted boilerplate!) just to get a freakin’ lambda.
- No tuples. What. The FUCK.
- Oh, hey, this
for (Type var : list)syntax is surprisingly elegant for Java – whaddya mean I can’t stick a literal list in there? No, of course not, that would make too much sense. - Ick, no deep copy. Spent so long tracking down a bug that boiled down to
array[][].clonenot doing what you’d expect. - Wait, are you seriously saying the
()at the end of a function call with no arguments is non-optional? ifstatements. You want two clauses, you have to goif ((-a-) && (-b-)). And then they complain about Lisp’s parentheses.- Nothing like macros or eval. There’s so many places I could’ve reduced duplication and verbosity – and Java code definitely needs it.
- Objects don’t evaluate to true? Seriously? You’re not Haskell, stop pretending your type system is anywhere near as robust. In the meantime, is being able to write
if (obj)instead ofif (obj != null)that terrible? - What’s this about “int cannot be dereferenced”… oh, that’s right, you don’t have true OO. Seriously. It’s 2009. You should’ve fixed that a long time ago.
- Dying … of boredom … during compile cycles. After living with a REPL for so long it’s almost unbearable.
- Solitary mark in the plus column: The existing API stuff is really nice. I’m not sure there’s anything in there that’d be too hard to write, but it’s good to have tested code right there.
- Subjective little mark in the negative column: I don’t like C-style syntax in languages other than C. It just doesn’t fit well with Java’s verbosity.
Bear in mind that these were all issues that cropped up one small/medium project. I don’t think I’ll be willingly going back to Java again, but the concept of JVM languages is sounding more interesting.
<rant>
I am angry today.
I am angry because today I have seen the culmination of something I have been dogged with ever since I learned to think rationally. I am also angry because I could have seen this before, but chose to placate myself instead, thinking “Oh, it can’t be that bad.”
I am angry because of an idea.
I have seen this idea in many different guises and forms in my life, from be courteous, have manners to if you can’t say something good, don’t say anything. It’s disguises and cloaks also include being wrong is bad, don’t speak until you are certain, and don’t question authority. A common masquerade is I am older than you, and thus I know more than you, and another common one is respect other people’s beliefs. I am angry that this idea has found its way into our vernacular, and currently goes by the name of politically correct speech.
What this idea boils down to, in all its forms, is don’t make waves. Don’t rock the boat. Don’t speak your mind, you may offend. Don’t try to change anything. Stick to the status quo.
I am angry because this is a horribly wrong, destructive and retarding idea. I am angry at the number of people that I respect who have succumbed to this idea, and I am angry that they are trying to force it upon those who disagree.
I am angry that people feel that change is bad purely because it causes a difference. I am angry that we, a species that prides itself on being intelligent, still have issues with avoiding stagnation.
I am angry that, as a culture, we still haven’t gone beyond the archaic trappings and imaginary friends of religion.
I am angry that a concept such as “social proof” even exists. I am also angry that I have caught myself succumbing to it.
I am going to attempt to combat this, as much as I can. I am going to adopt the motto Being wrong is not a bad thing, but feeling something is wrong and not speaking up terribly, horribly bad.
And no, I will not close that rant tag. I will only be closing it once I feel that this issue has been addressed.
It could be a while.
Dell Latitude c600
This is the last thing I have time to do now. Yet, here it is: another blog post!
I My parents just bought me an old Dell Latitude C600, off eBay, for schoolwork. The eBay listing is still up, so you can have a look at the specs here.
Awesome things about it include the general laptop-y-ness of it, a trackpoint, and a good tactile-feedback keyboard. But you don’t want to read about that, do you? Stuff that sucks about it are:
- Onboard ethernet doesn’t work. It comes with an old Xircom PCMCIA ethernet card — that has these weird ports that are really long and flat, without an adapter to be found for love or for money. To be fair, this is my fault for not reading the listing carefully enough and assuming that it would come with onboard ethernet.
- Since there are no usable networking networking capabilities, and since my parents don’t seem to want to get even an old PCMCIA standard ethernet card, I cannot connect even to the local network. This makes checking out my school svn repo for laptop use, which I always figured I was going to do, very clunky (I have to check it out to my iPod, transfer it to the laptop, do edits, then transfer the changed set back to the ipod, then check in. Yeah.)
I also have practically no way to easily install software from the net on it (Ubuntu was horrible as it’s repository lists somehow didn’t sync properly; I’m hopingyumdownloaderon Fedora Core will not have this problem), so I have to get a distro that comes on multiple CDs and hopefully contains most of what I want on those CDs. - … but the CD drive is flaky. It will intermittently work and not work. It seems to not work after a period of heavy use — which makes installing any distro that comes with multiple CDs well nigh impossible. As of writing, I have installed, in quick succession, Ubuntu, Slackware, and half of Fedora. This, of course, wiped the Slackware partition, and the CD drive is acting up again, so I have a nice paperweight on my hands. Again, to be fair, the seller has responded very graciously to this, and a replacement drive is on it’s way as I write this.
So. in short, I’m having a very hard time. This rant made me feel slightly better.
Ah well. I better get back to that utterly boring “Deflection of a cantilever” prac writeup. I’ll have another blog post up Real Soon Now™. Yeah.
[Update] The new CD Drive has arrived. Unfortunately, it is physically broken, which makes it do a little *click-click* noise when I try to boot up Fedora Disc 1. This is not good.
I am currently debating whether to stick with this thing, or send the whole thing back. Of course, that would mean we’d have to pay for shipping. To the seller’s credit, he’s been very nice and helpful, and absolutely doesn’t care about the formatting of the hard drive, and is perfectly willing to send us another drive, if need be.
And of course, all this while, the laptop goes unused, and I’m forced to waste large swathes of time at school.
[Update] The new new CD drive arrived 23-Apr, and has been working perfectly. So has the PCMCIA wired ethernet card we bought; so school time is not wasted anymore! Battery life’s a bit low, but we have power points.
The laptop in general has been working perfectly for what I’m using it for, and life in general, at least when it comes to electronics, is simply peachy.



