?

Log in

No account? Create an account
I love Sun but... - The tissue of the Tears of Zorro [entries|archive|friends|userinfo]
tearsofzorro

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

I love Sun but... [Apr. 3rd, 2008|10:01 am]
tearsofzorro
[Tags|, , , , , ]

I love Sun but, dear God, they can't do an IDE right to save their lives!

So, if you're doing things with Java, you're going to come across 2 giants of programming tools: Netbeans and Eclipse. Both are open-source these days (to varying degrees and for different definitions of open) and both have their drawbacks.

One of the big issues I had when I was trying to work with Netbeans was that there were some incredibly simple things that I wanted to do, that I hoped would be obvious in the interface. Nope. I googled things, and still nothing. Nothing in howtos, nothing in documentation. It was a real pain.

What was I trying to do? I was trying to subclass an object. Now, if anyone doesn't understand classes and subclasses that well in Java, or just in general here's a quick run-down. Let's say I want to model a reclining armchair, I'd start out by saying "A recliner is a type of chair, so I don't have to tell the computer how to make this from scratch, I can just tell it how to make a chair and then tell it what makes a recliner different". See that "is a type of" bit? That relationship is what subclasses are all about. As a programmer, I'd say "Recliner is a subclass of Chair" or in pure Java I'd say "Recliner extends Chair".

If you understand that, congratulations, you now understand one of the core concepts of object-oriented programming. I should mention that Java purports itself to be an object-oriented language. As a result, it would not be unreasonable to infer that one of the core things you're going to be doing is writing "is a" relationships a lot. So why is Netbeans, the flag-ship Java programming tool from Sun - the creators* of Java - failing to let programmers utilise such a core feature of that language when Eclipse has had it from, pretty much, day one?

Enter Geertjan Wielenga, a programmer of Netbeans and his blog post on extending netbeans to finally get this functionality into Netbeans 6.

Now, to me, this blog entry is essentially saying, "For all you far-out types who need this sort of functionality, go program it yourself as a plugin" - nothing that suggests that maybe they'd be folding anything like that back into the main netbeans functionality. No, that would be too simple for the users. There's a reason that Netbeans loses mindshare to Eclipse. Sure, Eclipse is a right pain to program for - it's an incredibly ugly, evil hulk of a thing - and yet it runs rings around Netbeans in terms of sheer end-usability.

This is not an encouraging post. I'm a computer science student, learning what I can about the various tools that I have to use. If I'm not working on them, my time and imagination is taken by the next in a long line of things I have to do. Quite frankly, this is the mindshare Sun should be gunning for, not the open-source people because they already know what their favourite tools are. As for students? Well, why do you think Microsoft try and talk people into using Visual Studio and their .NET, giving copies for free to students? To gain mindshare! As a student, I'm going to go with the tool I have to go for, or the one that makes things as easy as possible for me, and Netbeans doesn't make it easy for me. Instead, I use it when I have to and I resent it every step of the way. Now some developer is saying "Hey, you can roll your own!" Too Little. Too Late. Seriously. I don't want to roll my own for a feature that is so integral to the language made by the same creators as Netbeans. It makes me feel that they miss the point of their own software.

In short, I just want something that works. Yet, by making things "open source" it gives them an excuse to palm development off to "The Community(tm)" while saying, "If you want it so bad, make it yourself". For exotic features, yes. For things that should have been picked up on while in commercial development - piss off, we are not your personal devteam.

In fairness, I'm probably a bit hormonal and a bit ranty, but I want something that works, and now some engineer is saying "Look what we can do, aren't we great?". He shouldn't be looking for praise for something simple that we have to do most of the work to attain. If we wanted to be doing this much ourselves, we wouldn't be using a product like Netbeans.

I realise I probably annoy a lot of Open Source people by behaving like a consumer, but I'm not going to apologise for it. When I can make a meaningful contribution, I will, but until then I need to sound them out just to see what their mentality actually is, and if their mentality is that such a basic feature isn't part of what their product should be providing, then yes, I'm going to complain about it and I'm probably going to avoid them when I can.

At any rate I'm not going to roll my own!

Yeah, I can't remember if they strictly were or if the creating company was bought out by Sun. Either way it's not a real big thing because however you look at it, Schwartz considers Java to be theirs so much that he changed the stock ticker from SUNW to JAVA
linkReply

Comments:
[User Picture]From: ebel
2008-04-03 11:35 am (UTC)
See your first problem was leaving Vim. :P

One advantage of the open source development model is that every now and then some talented hacker will come out of the woodwork with some new feature/extension/bugfix or something. If it's good people will use it. The maintainer (in this case Sun Microsystems) should then go "Hey this is cool" and add it to the main 'offical' version. In the closed source development model the only people who can come up with new features are your employees. If Sun doesn't want to add features from random third parties then they don't really 'get' open source development, and their products and their users will be worse off for it.
(Reply) (Thread)