4 ms·
There is so much negativity around Java that I wonder why anyone starting on their journey to becoming a programmer would want to learn it or work with it.
by satysin 10y ago
There is so much negativity around Java that I wonder why anyone starting on their journey to becoming a programmer would want to learn it or work with it.
- wolfgke 10y ago> There is so much negativity around Java that I wonder why anyone starting on their journey to becoming a programmer would want to learn it or work with it. Because it is used in many CS curricula.
- imglorp 10y agoThe negativity is well earned but companies like java because there are plenty of interchangeable worker bees available. Ditto libraries and ecosystem. If you always want a job of some kind, for the next 30 years, it's safe to put it on your resume.
- pjmlp 10y agoBecause it is the only alternative to .NET for those of us working with enterprise customers. Pick the list of Fortune 500 companies and many smaller ones that work with them, take out the few SV darlings, and they will either be using .NET or Java for the majority of their software. Specially those whose commercial domain isn't at all related to software development. C and C++ are usually around as library languages supporting those applications, or older applications, many of them still written in frameworks like MFC and such. Even if Oracle would kill Java, which might happen with this kind of behavior, it will take a few generations to change to something else, specially since many people are unaware of the amount of hardware running embedded JVMs.
- 67726e 10y agoThat was probably my first "mainstream" language I learned as a teen. What kind of negativity do you mean?
- patates 10y agoOutside of HN, it's not very different than any other mainstream language, and I'm saying this as someone who doesn't work with Java at all.
- niftich 10y ago"There are only two kinds of languages: the ones people complain about and the ones nobody uses" -- Bjarne Stroustrup [1], Creator of C++ [1] http://www.stroustrup.com/bs_faq.html#really-say-that http://www.stroustrup.com/bs_faq.html#really-say-that
- niftich 10y agoOn a more serious note, Java's "reputation" is because: - It was kind of the Golang of the 90s, where each class had a clear and limited purpose -- but it also meant you had to chain three or five classes together to get anything useful done [1]. For this and other reasons, like the longtime lack of type inference, earned it a reputation for verbosity. - Most people don't have a clue how to design software, so they turned to outside resources for ideas. The 1994 book 'Design Patterns: Elements of Reusable Object-Oriented Software' [2] introduced a lot of useful models on how to translate mental models into object-oriented code. Some systems sprawled too much to where their implementations started to look like this model gone horribly wrong, while some developers merely ingested these ideas as a dogma and went on to produce code that was needlessly complex and poorly thought-out. - At some point a bunch of licensed code originating from a venture of IBM was dumped into the JDK, hence the awful, miserable mess that was datetime and calendaring [3] before Joda-Time's Stephen Colebourne brought sanity to it with Java 8. - Applets were punching above their weight, but the tech was poorly implemented, and, as history proved with it and other plugins like Flash, woefully insecure. Vulnerabilities in Java Applets, and early public confusion about Javascript vs. Java perpetuated the stereotype that Java itself was broken, insecure, or both. - Consultancies are big business, and companies like IBM, Oracle, and SAP would happily sell shops on big application servers with monitoring and control panels and genuinely useful stuff, but also tons of cruft and bugs. These players emerged from the J2EE spec, which defined useful APIs but intentionally left the implementation unspecified, to cultivate a thriving community of alternative implementations. Predictably, this didn't go as hoped. - People are obsessed with customizing their software, so vendor-delivered products were built with externalized configurations. Some people took this way too far, resulting in the familiar nightmare [4] where you had to configure mounds upon mounds of XML or .properties files to get an application running. It didn't help that this was actually the better way of getting it done in Java, with the Spring Framework, which was way more palatable to work with than the alternatives coming out of the J2EE spec. - Rails shook the world at the end of 2005 and showed that the obsession with configuration was dumb [5]. Scrambling, both Spring and EJB received rewrites, so now Java devs @hardcoded things directly into the source code with @annotations (that are by the way "not code!", as if that distinction was at all relevant) and pretended they were enlightened. - Sun had a vision for Java that they were never truly able to execute. In the process, they delivered a pretty solid language, eventually backed by a fantastic VM [6], that became popular because it was simple and scaled down well to okay and decent programmers -- not requiring a fleet of expensive rockstars. Oracle smelled money and bought it up, and despite additional innovation still being delivered by its staff, created wariness and distrust in the Java community by its corporate attitude. [1] http://stackoverflow.com/questions/4716503/ http://stackoverflow.com/questions/4716503/ [2] https://en.wikipedia.org/wiki/Design_Patterns https://en.wikipedia.org/wiki/Design_Patterns [3] https://java.net/nonav/projects/jsr-310/lists/dev/archive/2007-07/message/171 https://java.net/nonav/projects/jsr-310/lists/dev/archive/20... [4] http://thedailywtf.com/articles/Soft_Coding http://thedailywtf.com/articles/Soft_Coding [5] https://news.ycombinator.com/item?id=12761705 https://news.ycombinator.com/item?id=12761705 [6] https://news.ycombinator.com/item?id=12160439 https://news.ycombinator.com/item?id=12160439
- uncletaco 10y agoIt's the language of choice in most college programs. Though I won't be surprised if Javascript supplants it. Node.js feels like the new JVM. And it even has Clojure running on it.
- fusiongyro 10y agoI wouldn't start with it. It has its charms, but they're mostly evident after you've been burned by the breakneck pace of change in other ecosystems. MJD's "Why I like Java" is probably the best article about it: http://blog.plover.com/prog/Java.html http://blog.plover.com/prog/Java.html I'm a little more affirmative of it than he is. But yeah, I definitely would not begin my journey with this. Start with Python. Javascript, maybe.