I’ve been using the Eclipse Integrated Development Environment for Java programming language for the last year now and I can say I’m impressed.
In fact, I’m so impressed that I’ll make a bold move and say aloud: Eclipse is the BEST programming tool ever.
It’s nicest featured according to me are: its integration of JUnit for unit testing, its rather magnificent refactoring facilities and its compatibility with CVS for version control and team development.
I also like the fact that it’s compiler is very quick and that its sourcecode editor has a lot of very useful features (like syntax colouring of course but also all sorts of automatic error correcting tools).
But the best thing is that Eclipse is Open Source Software meaning that it can be freely downloaded and used (and abused…). Thanks to IBM for having created and donated something as powerful as Eclipse to the OSS community.
Eclipse works wonderfully well in Linux but it also works in Windoze and MacOS X.
So give it a try… and I’m sure you won’t look back :-)
Eddy Young says
Been there, done that. Currently using NetBeans :-)
avinash says
Why? I’ve tried Netbeans myself and I find it very slow. On the other hand, I like the GUI designer. But I have a (free for non-commercial project) plugin in Eclipse (Bigloo) which does just that :-)
So, I’m staying with Eclipse for the time being.
ashvin says
Hope it’s not boring and slow as Websphere.
Eddy Young says
Actually, my problem with Eclipse is the fact that it runs very slowly under Mac OS X, whereas NetBeans just blitzs. This is due to the integration of Swing with Quartz Extreme. *If* SWT is improved on Mac OS X, Eclipse will be faster on this platform. Until I get some more RAM, I’m sticking with NetBeans.
aadil says
You people can talk all you want, but I’m not leaving my beloved Vim. ;)
avinash says
Ashvin,
Eclipse is a development environment (a kind of supercharged vi, n’est pas Aadil :-)
Websphere on the other hand is a full J2EE application server which incidentally uses Eclipse as its IDE.
Eddy, Eclipse flies on my PC running Linux but Netbeans is very slow :-) And personally, I find Swing not too attractive. I much prefer the native Gtk look (I run Gnome) of Eclipse.
Eddy Young says
I love Gnome, too, but unfortunately, my little week-end adventure with Gentoo Linux on my iBook was not too convincing. The fault is not in the distribution, mind you. I love it. The thing that put me off was the trouble I had to go to to get my iPod to connec to Linux.
As for Swing, it is not bad on Mac OS X, since it is tightly integrated to the operating system window system (ie. Quartz Extreme) and performance is very good. Unlike other platforms that run SWT applications faster than Swing ones, Mac OS X does the contrary. That is why I say that when SWT is fully supported on Mac OS X, Eclipse will be more attractive for me. Still, when the missus is using the iBook, I access my code over SMB from Eclipse under Windows. And, there, it works very, very well, of course.
Anyway, I bit the bullet today and ordered an extra 512 MB RAM module for the iBook. The one I had before became corrupt for some reason.
Eddy Young says
BTW, I hope the code visible in this screenshot is not production code :-)
Why have two different classes for “Avion” when one with different properties will do? Note that the behaviour of any airplane is basically the same (except from some fundamental difference such as the propulsion mechanism, jet vs propller).
The number of pilots could simply have been implemented as a property.
avinash says
Yeah, I agree 100% with you.
This “smallish” program is to teach polymorphism in 1 week to MCCI students.
I wanted to do something really simple to understand. I thought about the classic Shape thing but then, as the students were not too proficient in Swing, I changed my mind.
I thought about using a simulation of a solar system (with a sun, planets, satellites and artificial satellites) using a Composite design pattern but also changed my mind because of the 1 week limit.
Finally, I decided that the application will be console-based and will simulate an aircraft company having a number of aircrafts, some of which have 1 pilot and some of which need 2. The methods are somewhat different in each subclass. And polymorphism is used nearly everywhere (CQFD) :-)
Eddy Young says
Ah, I’m relieved. Still, you can use the AvionAReacteur and AvionAHelice example that I wrote about. At least, you can introduce this during a refactoring class, I guess, where you would tell them that the design is not optimal and that there is room for optimisation by using attributes.
avinash says
Exactly :-)
avinash says
I’ve had a thought about this discussion and I’ve decided to keep things like I did originally.
The difference between the two kinds of airplanes is not only the number of pilots but also in the way they behave when they receive the same message. For instance, for ‘obtenirDetails’, the behaviour is somewhat different. This is also the case for ‘associerPilote’.
This is a sound OO model according to me.