Eclipse IDE... Why?

I’m so happy to read this. I used eclipse last year to develop and android app and a desktop app. I had to reinstall it a couple of time because if the same issues, and thought it was my fault for being a clueless amateur.

Visual Studio FTW!

</runs and hides>

It still lives in the Java world so it isn’t perfect or even close, but it is worlds better than Eclipse.

Some of you guys seem to have a pretty messed up view of Java… like one that’s still stuck in the 90’s. You realize that it’s pretty much the most widely used language in the world now, right? That it easily matches native C++ in terms of performance these days? But all that is neither here nor there… Java’s been everyone’s favorite language to hate for decades now, and it’ll no doubt continue to be so for the foreseeable future.

Eclipse has issues, but mainly because it’s so configurable. It’s not guaranteed to be awesome, especially when you install various plugins… but most of the time the error is gonna be in the plugin. I use eclipse every day, and don’t run into the issues described here, after years of use. I never had to reinstall it because it got barfed up… I only reinstalled when we decided to upgrade to a new version of eclipse.

Android’s eclipse plugin has issues, but again, those issues are largely due to that plugin itself.

I certainly do not love eclipse, although I’ve kind of come to an “understanding” with it. Compared to JBuilder, which is what I first used when I came out of school, eclipse was inferior. But that IDE also won the Jolt award for best IDE like a billion times in a row.

But eclipse has come a long way since the early 00’s. But to make it into what I’d consider a solid tool, it needs to be customized. You need to get the right plugins for it.

I use Visual Studio as well, and I’ll take eclipse over Visual Studio any day of the week. I’ve also used NetBeans, and never really found it to be worth taking over eclipse, and since eclipse was more widely used by developers I encountered, I just stayed in that camp.

And McDonald’s is the most widely consumed burger in the world, so… not sure what point you’re trying to make.

And McDonald’s is the most widely consumed burger in the world, so… not sure what point you’re trying to make.

I guess that it’s kind of silly for any serious software engineer to look down on what is the most universally used language in the industry. And that, generally, those criticisms stem from either an outdated perception of the language, or a failure to understand exactly WHY it rose up to become the most widely used language in the world.

For instance, the idea that Java leads to instability or inefficiency is nonsensical, especially given the types of enterprise systems that are built on the language.

Ultimately, any engineer worth his salt should be able to pick up and use any language they need to, because they’re just tools in your belt. And Java is a tool that any software engineer should have in his belt.

Mixed feelings about Java. To start with, let’s pretend no one ever had the idiot idea of running Java in a browser.

Java is a fine application language if you don’t get into some of its more involved and abstruse recent iteration features, and if you don’t adopt one of the silly large system design methodologies. Pure Java UIs are also very iffy. If you look at bad Java code, you recognize a characteristic issue – way too many lines of code that have nothing to do with system functionality. Once you drink the abstraction kool-aid, you wind up with layer after layer of wrapper classes and interfaces that do nothing whatsoever except obfuscate both design and performance. Sure, modules are great, but somewhere there should probably be some code that actually does something. This code abstraction problem of course is endemic to all OO systems and indeed to all large systems of any kind, but for some reason it seems particularly problematic in Java.

When I started using Java, the “in a nutshell” book was maybe 200 pages, most of it actually useful. Now it’s one of those telephone book things that will do damage if you drop it on your foot. There have been plenty of fine new developments in the language over the years, but a lot of it is pretty grody, especially anything having to do with interfaces, user and otherwise.

And finally, of course: Oracle. Yuck. Stupid bastards just have to touch something to stink it up.

Anyhow, if I was writing production code today that had to run cleanly and efficiently in time and space with a minimum of garbage surrounding the implementation, I might go with Go, but I’d certainly still prefer Java to C++ or (ugh) Javascript. Can you imagine it? Enterprise systems built in javascript. Wild.

I agree with your assessment, Miramon.

There’s a TON of terrible code written in Java… because there’s a ton of code written in Java. Java doesn’t intrinsically have bad code, but rather enables it (whereas there are probably developers who can write bad java programs, who simply could never get those programs to work AT ALL in other languages). This, however, is not a fault of a language. You can certainly write perfectly good, efficient code in Java.

Regarding the notions of abstraction and verbosity in the language, as you allude to, this was all an intentional design decision by Sun when they made the language… and really, it’s one of Java’s greatest strengths. It’s WHY it has become the “industrial” programming language.

Java often gets faulted for having so much “boiler plate” code… for requiring code that isn’t really focused on the core functionality of the application being made. But in many cases, I think this is an empty criticism. Most of the time, you aren’t writing that code anyway. It’s being generated by the IDE. Likewise, most of the time you don’t even need to see a lot of it. But the verbosity of Java was a conscious decision by Sun, because they wanted to make Java into a language that moved away from many of the programming practices that were used in languages like C++, where every programming house effectively used complex type defs and macros and crap to turn C++ into their own custom language.

Generally, if you know Java, you can pick up any piece of Java code in the world and quickly grasp what’s going on in it.

And nowadays, Java is fast as anything else in terms of execution performance for almost anything you are gonna do. While you could technically make more efficient processes by writing them in C, MOST of the time the average programmer is gonna make less efficient system. And if you are making a complex system, you’ll almost certainly be able to develop it in a much shorter time in Java than pretty much any other language.

Again though, it’s just a tool that any competent software engineer really should have in his belt… along with C and C++, probably a language like LISP or Scheme, and maybe something like Python or Ruby or Perl. And should be able to learn any language that gets thrown at them.

Re: javascript… ya, I’m not a fan of javascript. And I think a lot of folks confuse the terribleness of javascript with java.

Because most university computer science departments have fallen into a trade school mentality where undergrads attend to “learn Java” and get a job rather than understand computer science?

Because there’s a certain stratum of developer who can’t be bothered to learn what goes on when you declare “Integer a=5;” or even grok the difference between the heap and the stack?

All the bad parts of Java are really from Sun, with the exception of the offensive crapware packaging of Java on Windows. Sun defined the basic language with all its peculiar limitations, then added the horrible type-erasing generics. They also had the brilliant idea of a Java browser plugin. Oracle has really been doing a pretty solid job of adding long-missed features, like try-with-resources and for-each and the upcoming lambda expressions. They keep rapidly improving the JVM and NetBeans, too. I see very little factual basis for that meme that Sun was great for Java and Oracle is horrible.

I hate that the JRE always tries to install an Ask toolbar into my browser on Windows. Talk about being stuck in the 90’s.

For-each was in JDK 1.5 (Sun). Lambda expression was brewed in Sun (or in a JSR?) before it was bought by Oracle. So these weren’t exactly helped by Oracle. Same with the stupid browser plugins bundled with the installer…I had hoped that Oracle would get rid of them…still waiting.

What’s try-with-resources?

#disclaimer I don’t speak for Oracle, etc etc. Just in case someone finds this post.

Is possible to make Java sexier. The features in the language support some very smart, agile and fun way to write programs. But will not be “Java”, the culture. And theres nothing wrong with the Java culture.

Oh sorry, you’re right. For-each was indeed added by Sun in Java 5. Try with resources is new in Java 7, it’s the equivalent of C# “using” to express resource allocation & deterministic disposal more concisely. Description. Speaking of C#, Java 7 also finally added switches over strings. Also, a bunch of other stuff.

Certainly Oracle is right now mostly completing projects Sun had started but that’s not exactly an argument against Oracle in my world. Remember, the starting point was that Oracle is supposedly awful. I’m not seeing that.

Yeaahhh… no. It actually goes the other way. Javascript is the sweet nimble little dynamic language, while Java is the lumbering verbose monstrosity.

I don’t think I’ve ever, EVER seen anyone defend JavaScript before.
The mind boggles ;)

I’m perfectly willing to concede that javascript is a nice tool for fiddling around with webpage widgets and little scripting hacks, HTML interactions, all that kind of thing.

But despite not having seen a single line of node.js code (which may be a bit unfair, considering), I just find it hard to believe that it’s good for large systems and enterprise applications. I mean, come on: associative arrays everywhere, string values, untyped variables, dynamic type values, object prototypes… all this stuff is great for scripts and little tools, the kind of stuff you might use TCL for or Perl, but with better web and browser support in javascript, but it must make big systems nightmarish to maintain.

I suppose you are just kidding, but anyway…

I hear what you are saying. I learned my cs using c, c++, lisp, and scheme. I agree that it is a mistake to simply learn how to program in java, or any language, rather than learning computer science.

But none of that is the fault of java.

Java is an awesome language for building large, complex systems. That is what it was designed for, and that is what it is good at.

I have no idea who decided that crap was a good idea. It is a fucking embarrassment to Oracle and java.

Obligatory online petition. Signed by Joshua Bloch himself, unfortunately didn’t go anywhere.

When it came out, it was all applets all the time. I mean, Gosling and co. might have meant it as an application language, and of course it is indeed vastly superior for that purpose than for front end stuff, but that’s not how it was marketed.