Ok so I've heard all this magic about Eclipse, how wonderful it is, such a success story for the open source world, the amazing IDE that can do any language, any feature, any development tool. It'll even do your laundry for you.
My one computer science professor said a few good things about it in a class I took, and offered it as one of the choices for doing some Scheme development. So I downloaded Eclipse, no installation, that's kind of cool. Downloaded some Scheme plugins, just put the jar files in the dropins folder, that's kind of cool. Seemed like a fine IDE.
So today at my new job, I can't use SlickEdit anymore so I start looking for an open source alternative. I just want the editing/indexing/tagging features of the IDE, no need for build integration and all that. Sounds like simple enough features to ask for in an IDE.
Since Eclipse is the supposed prodigy of open source IDEs, I download it at work. All I want to do is import some existing C/C++ code to a project, have it indexed or tagged or whatever, and start clicking around definitions and references to get familiar with the code.
I tried both "Eclipse Classic" and "Eclipse for C/C++ Developers" (163 MB and 79 MB, respectively). Opened it up and started by trying to create an empty C/C++ project. It freezes on the last step. I give it the benefit of the doubt and try a couple more times, same problem every time. Since that doesn't work, I try making an empty general project. It works, whew. Now to import the existing code, and have a look. That seems to go smoothly and I start to forget the initial misgivings. It seems I can open files and such, but it doesn't appear that Eclipse has indexed the files yet. I can confirm this by trying to see the declaration of a class, no such element found.
So off I go in search of where the indexer is, and how to start it. I click through project properties, window configurations, different views, options, everywhere I could think of. It becomes apparent that the simple task of indexing the files in the project is definitely not intuitive. I search the never-fails help source, Google for some insight. Nothing. I do a little more browsing about the Eclipse project, and find that there is a plugin for C/C++ development. I thought I already downloaded the C/C++ version of Eclipse? Apparently not. So I download the CDT (C++ Development Tools) plugin. It's not immediately apparent to me as to how to install the plugin, so I do some more web browsing until I find that all you have to do is extract the zip file into the Eclipse directory. I unzip, then restart Eclipse. I do some more clicking around but nothing seems to have changed. I find a CDT tutorial, and the menu options that the tutorial requires are simply not there. Since it's pretty hard to mess up extracting a zip file into a directory, and the fact that all the CDT jar files were in the plugins directory, I decided that I at least hadn't messed up the installation. At this point, I was frustrated and decided that this was waaay too much installation, downloading, Googling, configuring and cussing for the sake of browsing some code. I'd be better off with Notepad, at least it does the exact same for code-browsing so far, and it's only 68 KB in size. Turns out Eclipse is not all it's made up to be, in my eyes. You can keep your bloat and resource-hogging and unintuitive-ness and bajillion features except for the one I need. I'm going to keep searching for alternatives.
The other big open source IDE I came across is NetBeans. I take a look at their website, and apparently they're a do-all IDE too, and it turns out they have a C/C++ version. The download is only 30 MB, I like it already! Once the installer downloads, it goes through a pretty typical installation process. Once it's done, I open it up and start a new C/C++ project. First item in the list, "C/C++ project with existing sources". Exactly what I downloaded this for! Apparently it's aware that this is a plausible scenario that could very well happen in every-day developer life. I go through the settings, and the only gripe I have is that the project setup forced me to specify a Makefile of some sort. I don't actually have one, nor do I need one, so I had to create a dummy Makefile in order to proceed. After that, when my project was created and opened, I see a little progress bar at the bottom of the IDE. It started indexing my project files for me, and I didn't even have to ask! By the time I've used the explorer side-panel to find a few C++ files to look at, the indexer is mostly done. I read through some code and I find something interesting, so I right click on it. From there, I can navigate to declarations, definitions, references, and even open up a cool little call graph that animatedly pops into view in a bottom panel, showing me what calls what.
In about ten minutes, NetBeans has helped me accomplish what I set out to do, where Eclipse failed and used up about an hour of my time. Not only that, it has a smaller footprint and a more intuitive user interface. The menu choices seem logical, rather than throwing everything and the kitchen sink at you. There are out-of-the-box options for Subversion, diff-ing, source code cleanup, and so on. I'm excited to try out all these features, and I plan to install NetBeans when I get home tonight. Plus, this is running on an old single-core machine and Windows XP. Not bad, I say.
In conclusion, I definitely prefer NetBeans over Eclipse, at least for C/C++ development.
Update: Recently, I've acquired some significant experience using Eclipse. My eyes have been opened to the vast amount of functionality that exists in an IDE and its plugins, and I don't think this blog post does justice to a comparison between Eclipse and NetBeans; but only scratches the surface.
34 comments:
I also experienced almost the same thing. When i wanted to write a big project using C, i downloaded Eclipse for C/C++. When i started using it, i didn't see any syntax colouring or brace matching and other things i see in simple code editors. I had to go for Netbeans too. Anyway, Maybe it's because i don't know how to use it.
This post makes me very happy. My constant assertion that NetBeans will just plain trounce Eclipse in everyday use falls on deaf ears.
I had a similar experince with PHP. I downloaded eclipse because its all the rage, and then spent 3-4 hours trying to get 2 og 3 different plugins to work. Finally settled on one and got descent editing capabilities. Next thing was ssh/sftp upload to my dev server (yeah right like i dont just edit on the live one harh..), well this was another 1-2 hours. This was a couple of yaers ago, recently i needed to edit PHP again (well, im not a pro dev, just dapple i bit with PHP and java). This time i tried Netbeans (6.7), and behold everything just worked with editing AND ssh/sftp upload.
maybe eclipse, with php has improved. i dont know, I just use netbeans for PHP, java and java servlets now (very slick Tomcat integration in netbeans BTW.)
Regards
Brian Simonsen
I'm glad to hear so many people agree! At my old job I got to use SlickEdit, which is pretty nice, but also pretty expensive. I've found NetBeans is a pretty good open source alternative.
Excelent post, I have to say that the problems with eclipse usability are also present for java developers. At my job we are switching to Netbeans for java with maven.
I cannot fully agree. OK, dealing with plugins and settings is sometimes a bit tricky, but when the language integration is mature enough, it's eclipse of the Netbeans.
I'm recently forced to work in Netbeans on some Java project and I miss lot of Eclipse's features. Well, I'm Netbeans' newbie...
Forgot to make a comment on your first paragraph there - it's true Eclipse is open source, but don't forget it's also the vanguard for IBM's Rational suite of proprietary software. Meanwhile, NetBeans is free of such associations.
Ahh, I was aware of IBM's connection to Eclipse, but not of the Rational suite relation. I've used Rational software before, and it seems about as resource-hungry as Eclipse in my experience. I enjoy that NetBeans is free of such corporation.
I don't agree. For me, Netbeans is a great IDE for beginners and is not so robust for more serious projects that posesses more complexity. And Netbeans also have some bugs, also. I lost my time trying to figure why some PHP files was not being detected by Apache running locally and I've found that Netbeans was not copying the PHP files to the direcory where it was supposedly for them to stay in order for Apache to load them. And Netbeans doesn't even have a option to create a XML schema from scratch. Eclipse posesses that. I used Eclipse for more time than Netbeans, I think that both IDEs have its Pros and Cons, Netbeans is best because of its ease of use, but its no so robust as I desire, so if I need to choose between one of them, obviously I stick to Eclipse.
Wow, I guess the best way to get blog traffic is to start a debate! I would imagine that Eclipse has a much more robust plugin library, but I haven't used it enough to tell. For that reason, I can see Eclipse being preferable for some specific situations. For example, one of my programming classes was teaching logic programming using Prolog, for which there is an Eclipse plugin.
@digfish: I'm almost certain it does have your desired XML feature. Are you running the latest version? I know the 6.x updates have put in a ton of work in those areas.
Plus if the feature isn't immediately obvious, it may be documented in their frankly excellent Learning Trails tutorials, check there:
http://netbeans.org/kb/index.html
I have used Eclipse + CDT to do development work on Linux for image processing. I found it very good. Since I also use Java I installed Netbeans which is far better. I kept it for C++ work and was very surprised that it worked. On windows I use mingw and there I use codelite. I tried once to work with Netbeans but it didn't work out. Do you know if it is better now? Finally I would like to see a real C99/Objective C plugin for Netbeans and GNUStep development. However I believe that they expect a stable usable CLANG release.
I completeley agree, NetBeans is better and more usable. The only disadvantage is the lack of plugins (but this also is growing!) I just don't understand why google developed plugins just for eclipse (Android, GWT etc)
Anyway i think in the future it will do.. Netbeans is awesome!
Eclipse is definitely better than NetBeans. It has tons of plugins and is much more mature and serious. For example NetBeans doesn't have serious python plugin. On the other hand in Eclipse you have PyDev which even has support for Django. Talking about php with NetBeans - when I try to open a .css file, it needs some time to show code highlight. I don't experience this in Eclipse.
The problem you say you have with C/C++ I think it's your mistake not IDE's. If you want to install a new plugin it's much better to use Install New Software from the Help tab and you should not have any problems.
Don't blame the IDE if you don't use it in the correct way.
Few years ago I started developing with Eclipse as is was the most promising IDE out there. It's plugin management was so horrible that you had to spend lot of time to get it working. And it was just one big mess when you tried to update it and its dependencies.
After i found out Eclipse is only good for giving you headaches i tried the more unobstrusively IDE Netbeans and never touched Eclipse again. The plugin management just works the way you expect it and you can focus on coding instead trying to get your IDE running the way you want.
It took a while for Netbeans to catch up with the code editor of Eclipse but it got better and better with each release and today there is nothing i miss anymore.
Looking forward for new Netbeans releases :)
I think it's funny when people say NetBeans isn't for serious work. I've been doing serious big money Java development in NetBeans for years. I had to stop using Eclipse because it was missing serious features that were only available in NetBeans and IntelliJ IDEA. Eclipse may have caught up since, but I have no need for or desire to go back. Go NetBeans!
@digfish: I mostly agree. Our idea of robustness vary because of our various needs, right?
@victor: Kind of difficult to learn to use any app without enough help or tutorials, isn't it?
I've been switching between Eclipse and Netbeans for the many years now. They both have come a LONG way. Eclipse has been my main stay until recently. Netbeans 6.8 is very good, and 6.9 (RC of which I'm using now) will be even better. Eclipse is making good progress in plugin management, and usability. Java dev in Eclipse is very smooth for me; C/C++ dev is pretty easy too, but PHP is not. I've tried both PDT and PHPEclipse. Honestly, NetBeans 6.8 tops them easily.
Netbeans tutorials are top notch and their devs are a bit more active via their blogs (IMHO) pointing out new/existing features or uses. Lately, the Netbeans devs have been on fire, and new/changed tutorials to support the latest features are suffering, but I'm sure they'll catch up quickly. I use Netbeans now as my IDE of choice now because it offers better CSS/HTML editing, PHP plugin is fast and includes PHPDOC, plus it supports OOP dev better than PDT; and it's small footprint - until you add those plugins.
Netbeans could use more editor features, but it has added enough for me to start using it as my main IDE. I'm sure you'll agree as well.
BTW- continued dev on both IDEs are good for all of us, and I will continue to use the best IDE available.
I also experienced almost the same thing with my PHP script. Very nice IDE !
I too agree that Netbeans is far better than Eclipse. I use to use Eclipse for a couple of years and once I got the chance to choose between them, I decided to give Netbeans a try and have only used Eclipse for the great PyDev plugin. Netbeans has a Python plugin, but, it is still in early access (read not finished). I really do wish that the Netbeans team shows it some love for the next release, the venerable 7.0 (about the same time as JDK 7.0)!
@Mikazo, I don't know if this will work for the C/C++ module, though it rocks for Java development: try ctrl-clicking on method names, variables, etc. If it does work you'll find it extremely powerful for thrashing around in source you're trying to get familiar with. Basically should navigated you directly to the declaration of whatever you ctr-click, opening files as nec.
Hope it works for you in C++!
@Mike Thanks for showing me Ctrl+click. I also noticed the Declarations and References options in the right-click context menu. However, I often get "cannot find symbol" when searching for different symbols and references. Somehow Eclipse must not have tagged everything properly or something. When I Googled for "Eclipse find declaration" or "Eclipse find references", the results were all from websites other than eclipse.org. Eclipse seems to have a robust documentation section on their website, but it's strange that none of it ever shows up in Google.
I have been using Eclipse since 2005 mainly for C/C++ and Java development on both windows and linux environment. I switched to Eclipse from CodeWright and at the beginning it was a bit difficult. I had never had problems and Eclipse is an extremely extensible IDE that fits anywhere. All it takes,is some time (in the order of 1 month) to understand the philoshophy. It is very powerfull and extensively documented and someone can be very productive by using it. On the other hand, Netbeans is quite a crappy IDE, not at all comparable to eclipse. The plugins available to eclipse make it second to productivity after Visual Studio. Netbeans cannot even make claims on the term productivity! However, it is a matter of preferences and expectations.
"On the other hand, Netbeans is quite a crappy IDE, not at all comparable to eclipse. The plugins available to eclipse make it second to productivity after Visual Studio."
Ummm, nothing you said makes sense. Perhaps you're confusing (debatable) functionality with productivity. You're also blatantly ignoring everything the author & commenters have said. Please don't make rude statements without backing them up.
I agree with Nathaniel. Functionality is a debatable topic, dependent on each IDE and what its developers have implemented. Productivity is subject to the individual developer and his or her style and preferences. Both IDEs facilitate developer productivity, but it depends on the developer.
I read somewhere that "Eclipse is like a Linux distro, NetBeans is like OS X." - i.e. Eclipse has everything you could possibly want but it might take a bit of work, NetBeans is more limited but it just works.
Nice article! I've experienced comparable pain with eclipse in java and c++ development: the ide, freezes, crashes, automatic plugin installations don't work. I've choosen NetBeans as my prime IDE and i'm very happy with it. It's a great piece of technology and, imho, the best open source IDE by far.
The latest releases of Netbeans 6.9 and Eclipse Helios leave me flat. Neither are spectacular in that they both really don't add that much over their previous releases of 6.8 and Galileo. I think both need to do a better job, especially in the dynamic language area where they both fail miserably.
As for Eclipse, I use it a lot because it has much better support for Google's appengine and Groovy, a JVM language. As I originally came from Netbeans I also found Eclipse to be rather obtuse and unintuitive. But one I learned how to do the things I needed to do I realized how powerful Eclipse really is. So I'd suggest to all those who struggle with it to take the time to learn how to do the things you need to do with it. There's lots of documentation to be found (Google it) and videos (check out Youtube).
The days are over for me where a single IDE will do everything I need it to do. Having the freedom and the capability to use the right IDE for the job is empowering.
Jeff
Jeff, well said. It's nice to have so many alternatives to choose from when it comes to software development, operating systems, and computers in general. I have a feeling that I haven't seen the last of Eclipse, as I just recently interviewed for a position that makes heavy use of Eclipse, as I'm sure many other companies do too.
I can think of two IDEs off the top of my head that companies have built on Eclipse, adding their own plugins and environment for a specific OS or platform.
For java related queries, please refer http://pragyarawal.blogspot.com/
And for spam, can we post to http://www.spam.example.com ?
;)
Thanks for the link, looks like a good resource!
Aaaddd blogger ate my formatting alive. Oh well. But in all seriousness, thanks for the link, looks interesting.
It seems that this blog post has become the number one Google search for "netbeans eclipse". I'm in favour of NetBeans but it seems I've thrown debate fuel on the NetBeans vs. Eclipse fire.
i have to say all the same things about ruby on rails! on eclipse, except the IDE itself, i had to install RDT, Aptana IDE (kinda IDE-in-IDE, installation package is over 160 mb) and finally RadRails plugin which is run only on Aptana. and despite all this installation struggle, the system was buggy, unstable and hadn't provide enough functionality.
so when i used netbeans, all the installation was about 50 mb, it took about 10 min to install and configure, and had all the features already on board.
I am currently forced to use Eclipse for a Maven-project from university and I cannot describe what a pain it is to use it in comparison to Netbeans.
I haven't used either a whole lot, but for what I need to do with the Java code, Netbeans can actually do it. Or rather in Eclipse I'd need more time for setup + exploration + fixing + handling than for the actual work with the code. In Netbeans the Maven support worked out of the box, the code highlight is actually useful out of the box (this would be a pretty big deal to me if I was developing an IDE, would it not?), and it's error parsing warns you ahead of time.
Furthermore what is funny is that Eclipse keeps ignoring code indexing. So if I need a definition, it says it's not in the open projects or it's paths. I click the same in Netbeans, it works perfectly fine.
And that is an extremely basic function of an IDE, just like the code highlight.
It is really these things which make me not like Eclipse. It's in-depth features are awesome but what good are they if the most basic of things are complicated, time-intensive or impossible to do?
Post a Comment