Yesterday I saw an ad here on Daily Kos for IntelliJ IDEA Ultimate. I could have gotten a 50% discount on IntelliJ Ultimate, I could have gotten it for $74.50 instead of $149.00…
Actually, I still could, the offer ends in roughly 13 hours. If you don’t see the ad on this page, Google “JetBrains International Friendship Day.”
I think there are people out there who have the potential for computer programming but think that to have a full-featured integrated development environment (IDE) on their own computers would cost them hundreds if not thousands of dollars.
At the university I had access to Microsoft’s Visual C++. I actually wrote a couple of console programs. But to write something with a graphical user interface would have required long hours in the computer lab.
Back then it did not occur to me that I could download a Java IDE to my own computer and maybe even install the GNU C++ compiler on it.
That was something I didn’t learn about until about a year ago from one of the very few black graduates of Grand Circus (for a time the only “coding” school in Detroit).
Black grads of Grand Circus are so very few that I think I have met all of them. There might be two or three Latino grads, if there are any at all. That’s a topic I’m not going to delve into today.
I think programming courses are necessary in order to learn skills employers want, like test-driven development and pair programming, you can’t learn those from a book.
Though those get short shrift even at good coding boot camps like the Iron Yard. But just to learn the basic book stuff, like encapsulation, polymorphism, etc., a free IDE on your computer and a good book might just be enough.
There are caveats, of course. Like not having Internet access. Or not having a computer at all. Here I’m going to get into the less prohibitive caveats.
IntelliJ IDEA
I’ve been using IntelliJ IDEA Community Edition on a laptop that was kindly provided to me for a course.
The Community Edition has so many great features that I wouldn’t know what it lacks if I didn’t look at the JetBrains “Choose Your Edition” page.
Like the auto-complete, which is very helpful for the longer variable and class names before you even type the dot.
But perhaps the most appreciated feature for anyone working in a team is the tight Git integration. Merge conflicts are still a pain, but they’re much easier to resolve with IntelliJ.
Scala is supported through a plugin, which I installed and should be available to the next student who gets that laptop. Kotlin is available right out the box.
With the Community Edition, I don’t get CSS, Sass, PHP… big deal. Much more concerning is that Java EE is available only in Ultimate. So far, however, the Community Edition seems to me to be more than enough for student projects.
NetBeans
On my home computer I have NetBeans. This is the IDE that I specifically learned about a year ago. Where I learned about it, it was a very simple operation to get installed on eight computers at once.
At home it took forever download and install. I seriously thought about the most basic bundle, the one with just the Java SDK, Java SE and Java FX. I think I went with the bundle that also includes Java EE and added the C/C++ bundle (all available from the NetBeans download page).
If IntelliJ steers you to test more, NetBeans steers you to document more. NetBeans makes it much easier to look at Javadoc, and in turn that can inspire you to follow the good examples set by Sun and later Oracle.
Of course both IntelliJ and NetBeans come with JUnit, and that works pretty much the same on both of them.
NetBeans also includes TestNG and Selenium, I haven’t tried either or those, and IntelliJ also comes with at least a couple other testing frameworks. There is one slight annoyance in testing on NetBeans, and maybe someone can tell me a fix in the comments.
Let’s say you have a test suite with forty tests. You run it, three tests fail. In IntelliJ, you can click the rerun failed tests button to run again just the tests that failed. Obviously that would also include BeforeClass and AfterClass once each (if applicable) and Before and After thrice each, but it can still be a time saving over rerunning the whole suite.
NetBeans also has the rerun failed button, but it always gives me the confusing “You may only execute Ant scripts residing on disk” error. I wasn’t even aware I was using an Ant script.
Scala is also available in NetBeans as a plugin. However, setting up the plugin is a somewhat more involved than in IntelliJ. For NetBeans, you have to mess with the configuration file. I haven’t done it yet.
Still, despite annoyances like that, and despite the better auto-complete in IntelliJ, I still like NetBeans better than IntelliJ.
A more personal annoyance to me is how much youngsters like the more Hollywoodish dark themes. When they get just a few years older they might not like the dark themes as much.
Maybe Instagram-friendly would be a more appropriate description than Hollywoodish. Hey, look at me! I got three computers and a mobile device going with coding! I must be such a great coder!
Anyway, if you like NetBeans but wish to use a dark theme, just download the IntelliJ dark theme plugin.
It’s all free. The main caveat with NetBeans is that the industry seems to be moving towards IntelliJ. It’s perhaps only because Oracle doesn’t want to be seen as endorsing a paid JetBrains product that NetBeans remains the de facto standard Java IDE.
Eclipse
I don’t know much about Eclipse besides that it is a classic Java IDE. So far I’ve only used it for the classic Hello World Java program (to ensure a proper installation) and for a Python crash course.
Depending on your search terms you might get a bunch of irrelevant results. Here’s a direct link for the Eclipse Java package: www.eclipse.org/...
Visual Studio
Now, wait a minute, Visual Studio is not a Java IDE! Visual J++ is a thing of the past, it was discontinued back in 2003.
There's now something called JNBridge. David Ramel wrote an article about it for Visual Studio Magazine last year. And hey, isn’t C# a lot like Java?
Like IntelliJ, Visual Studio has a Community Edition, and apparently you can use NPM with it, whereas NPM in IntelliJ requires IntelliJ Ultimate and a plugin.