Eclipse vs. Netbeans

In fact I turn off nearly all the smart editor stuff in Eclipse because my ancient brain has been conditioned to them not being there. Rather like how autocorrect in Word corrects “teh” to “the” but unfortunately after my fingers have already started backspacing over it…

Cas :slight_smile:

You can set the delay for the completion popup stuff. Not sure about the squigglies, but I’m just used to seeing them as I type, so no biggie.

emacs :point:

now that i think of it, eclipse should wait for a semicolon or, if you forget, when you press enter to look for errors.

For people who do lots of software, I would recommend being comfortable with all three major Java IDEs: Eclipse, IntelliJ, and NetBeans. Different IDEs are generally better for different tasks, and as they evolve, they often leapfrog each other.

For Java projects, I used to really like Maven because I could trivially switch IDEs in the middle of development without any effort. Sometimes, I’d want to use a feature on another IDE, or I hit some weird problem with version control integration or something, and I’d jump to a different IDE as a fast workaround. Today, I find Gradle a more elegant build system than Maven for Java and Scala development. But I haven’t been able to get Gradle to work with NetBeans like Maven did.

Also, I use different IDEs for different tasks. For example, I found a LaTeX plugin for Eclipse that I love, so I’ve been using that every day. I had to do a project in Python, and I tried a few approaches, but got IntelliJ working and ended up using that. For Scala development I found IntelliJ far better than Eclipse or NetBeans, although I hear the official Scala IDE support from TypeSafe is for Eclipse and that is progressing rapidly, so I’ll give that a shot on my next Scala project. When I did a JavaFX project, NetBeans seemed like the only practical option.

Gradle’s nicer than maven when you need to do something custom, but there’s no real tooling support. For scala, sbt is the bees knees. No tooling support at all there to speak of, but god it’s nice to have a shell window running “sbt ~test”. And the unfortunately named “ls” plugin (https://github.com/softprops/ls#readme) makes dependency discovery a real dream and lets you avoid the nonsense of the ls.implicit.ly site (Scala culture appears to have been invaded by ex-ruby hipsters)

LaTex plugin? Pointer please.

What tooling support do you need? IntelliJ has Gradle support but I honestly couldn’t get it to do what I wanted.

Gradle will auto-generate IntelliJ/Eclipse project files which has been all that I need.

Also, I tried SBT a lot for Scala development, but I found Gradle actually much simpler. And I like Gradle is excellent at both Java and Scala projects and potentially more project types, while SBT is really only good at Scala – they claim to be more, but realistically, it seems people would only want to use it for Scala.

For LaTeX on Eclipse: http://texlipse.sourceforge.net/

What I like over my old command line approach is:

  • It auto-generates the .pdf every time I save, without me having to switch to a command prompt. It’s also much faster than the command line.
  • Before, if I forgot to close the PDF file, I would get an error when running pdflatex. Now, I can leave the PDF open without causing a conflict and it automatically refreshes.

Eclipse ftw.

I’ve been using NetBeans for a few years and enjoying it. Recently I switched to Eclipse for a class project and I’m starting to prefer it.

I’m kinda bare-bones when it comes to using my IDE – no fancy plugins, macros, Maven/ANT scripts, etc. Since both IDEs handle basic code editing and code-completion well, I tend to nitpick the smaller details. These are the differences I can think of that personally bug me…

Eclipse advantages:

  • Changing the main class in Eclipse is quick and easy; just open a new class with a main method and hit Run. For my coding style, this is way more efficient than going to Project Properties every time I want to run a new main class.
  • Import fixing is “smart” in Eclipse (and import code is nicely folded automatically). I don’t need to select every time which conflicting class to import, since Eclipse generally remembers my last decision (whereas NetBeans doesn’t seem to).
  • Linking with native libraries is super easy.
  • Responsiveness; I find NetBeans to be sluggish at times; and it loads way slower.
  • I generally feel more productive in Eclipse; maybe it’s because compiler errors show up so quickly, Eclipse tells me when variables aren’t used, etc. I haven’t noticed some of these features in vanilla NetBeans.
  • Eclipse is smart at pasting code to the proper indentation level, i.e. pasting a block of code into a for loop

NetBeans advantages:

  • Exporting JARs on compile (and includes proper class-path in manifest)
  • Setting project-wide VM arguments
  • The file system is refreshed automatically; if I change my sprite sheet image I don’t need to hit “F5” to refresh the project before compiling
  • Renaming, say, a class or method is more intuitive and doesn’t fail like it often does in Eclipse

After a while (I’d say overnight? 18+ hours) of me programming in Eclipse, it starts to wack out, sucks up like 600,000k in my task manager, computer starts lagging, mouse sketches out.

I’d argue that that’s pretty acceptable after it allowed you to be productive for 18+ hours :slight_smile: Just restart Eclipse and continue coding!

Lol, I’m a programmer for sure, nothing but back pain and energy drinks :yawn:.
Eclipse++ though, gets the job done, can’t believe I use to HardCore program a rsps via NOTEPAD lol…

If you need to automatically import classes in Eclipse, Ctrl+Shift+O (O as in Orange) will automatically import all missing classes and format it all :slight_smile:

  1. You can set Eclipse to automatically refresh Eclipse and automatically detect when a file is removed/added. Window -> Preferences -> General -> Workspace -> check both “refresh …” checkboxes
  2. Renaming stuff in Eclipse has never failed for me and is just as intuitive as Netbeans, then again this is all a matter of opinion :stuck_out_tongue:

I’ve never used anything other than Netbeans (besides notepad++ and notepad ;D), so my opinion is biased. But I will say this: netbeans doesn’t require you to build and then compile, it’s all in one step, compared to eclipse(two steps)

Hahahahaha then you’ve obviously never used Eclipse ;D Eclipse also automatically builds your project.

Seriously though, the differences between Eclipse and Netbeans are minuscule. It all ends being user preferences and what they first started out with/are more comfortable with.

Amen, I hit run and in one press it’s compiled + debugged + running ^.^.

Believe in Eclipse you can also debug your program live, like as it’s running you can make changes to the code, save it, and the changes take effect (Assuming no errors).

That has little to do with Eclipse; that is built into the Java debugger services which can hot-swap code. The only thing you have to do is slap certain command line switches on there when running an application, which Eclipse does for you automatically when you start an application in debug mode. When you use Eclipse’s build automatically feature, this will see the changes you make to source files automatically pop up in the running instance. Heck, when you have a break point on a certain method and you make changes to it, you’ll see that the debugger automatically moves back to the start of the method.

Its pretty limited though, you can’t hot-swap changes to the class structure for example. But it works quite neatly when you only make changes to the body of a method - a good reason to lay down a proper code design IMO :slight_smile:

I’d argue that real production builds like this should be done completely outside the IDE by a build tool such as Maven or preferably Gradle. They should be configured by elegant hand-written (as opposed to generated) build and config files.

I do this all the time in NetBeans/Eclipse/IntelliJ/Gradle and it’s really simple everywhere.

Most of these items seem very subtle or trivial. The big differences between IDEs come when you try doing more specific than really general Java. For example, if you use an alt language, such as Scala, Python, Clojure, there is a much less even playing ground.

Funny you mention Jedit. I use it every day and it’s one of the smartest text editors I ever used (and I used a lot).

Using Netbeans I like, too. For example to program Swing GUI applications.
I can also edit, compile, run and debug the Java source code with Netbeans on HP UX machines for example, and out of the box – i.e. the very same Netbeans ZIP archive I use on Linux and Windows. That’s impressive not only for me, but also for the HP UX guys who’re usually not familiar with good looking GUI programs let alone an IDE.