Slashdot Mirror


How Java Changed Programming Forever

snydeq writes: With Java hitting its 20th anniversary this week, Elliotte Rusty Harold discusses how the language changed the art and business of programming, turning on a generation of coders. Infoworld reports: "Java's core strength was that it was built to be a practical tool for getting work done. It popularized good ideas from earlier languages by repackaging them in a format that was familiar to the average C coder, though (unlike C++ and Objective-C) Java was not a strict superset of C. Indeed it was precisely this willingness to not only add but also remove features that made Java so much simpler and easier to learn than other object-oriented C descendants."

382 comments

  1. Plant? by Anonymous Coward · · Score: 5, Interesting

    Why does it feel like Oracle is advertising Java with these stories...

    1. Re:Plant? by jellomizer · · Score: 4, Interesting

      Well Oracle killing off Java was one of the biggest fear after it acquired Sun Microsystems. MySql was open sourced so it could fork like it had. VirtualBox we more or less kinda allowed it to die. Star err Open err LibreOffice had forked so many times that people probably forgot the Sun Acquired it as StarWriter. The Sun Servers Sparc based were declining in popularity.

      But Java was the important thing we couldn't let die. And it isn't open source so the community couldn't steal it away from oracle.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    2. Re: Plant? by Anonymous Coward · · Score: 1

      Are you really *THAT* stupid?

    3. Re:Plant? by Pi1grim · · Score: 5, Insightful

      >> Because Chrome is turning Java off and they're trying to make sure other browsers don't follow suit.

      >> Seriously, I see no NEED for Java any more. I probably have more Silverlight things I like to use than I do Java, and neither are vital any more.

      It must so wonderfull to live in a world limited by your browser window. Wonder how it's like. Have you ever wondered what do the servers run? You know, the same servers that show you all sorts of pages? Banks, Twitter, Amazon, eBay, LinkedIn hundreds of other high load sites and countless numbers of proprietary in-house internal systems? Let me give you a hint: definitely not silverlight.

      >> Java is dead

      You need to grab a phone at tell all those sites above I mentioned, also, while you're at it, don't forget IBM and Oracle, they'll have a blast.

    4. Re:Plant? by Anonymous Coward · · Score: 2

      VirtualBox is far from dead.

    5. Re:Plant? by peppepz · · Score: 5, Informative

      The JDK had already been released under the GPL by Sun before the Oracle acquisition.

    6. Re:Plant? by peppepz · · Score: 5, Insightful

      Java != Java applets.

    7. Re:Plant? by Anonymous Coward · · Score: 1

      So you don't use Java in your browser, therefore Java is dead? Have you any idea of all the ways Java is used?
      Ever play Minecraft, one of the most popular games ever? It's written in Java.
      Java is one of the most popular languages that employers hire for.

    8. Re:Plant? by wonkey_monkey · · Score: 5, Funny

      Pah. Next you'll be telling me it's got nothing to do with Javascript.

      --
      systemd is Roko's Basilisk.
    9. Re:Plant? by bws111 · · Score: 4, Informative

      I take it you never heard of Android? Or enterprise software?

    10. Re:Plant? by Xest · · Score: 3, Insightful

      You seem to be declaring Java dead, because Java applets are uncommon, and that Java desktop applications are uncommon. Both these things are true, but it still only tells an incredibly small picture.

      Java is still massively strong on mobile, in embedded devices, and for server side applications.

      There are a lot of phones, routers, ATMs, websites, and so forth still using Java rather heavily. It's a very long way from dead, it's still used at least in part to run key elements of some of the largest sites on the web - eBay, Amazon, Google for example as well as being a big deal in nearly all the world's banks and financial institutes. It does well in the academic world, and in the medical world, from doctors surgeries to big pharma.

      I hate Oracle, but I'm afraid as much as I'd like to see it, they wont be going away any time soon - there's a lot of money in providing to those sorts of companies.

    11. Re:Plant? by Anonymous Coward · · Score: 0

      And don't forget GWT! You can even create games for desktop platforms, Android, iOS and HTML5 compatible platforms with a single Java code base using LibGDX.

    12. Re:Plant? by RabidReindeer · · Score: 2, Funny

      VirtualBox is far from dead.

      It is everytime I upgrade the kernel.

    13. Re:Plant? by Anonymous Coward · · Score: 0

      It must so wonderfull to live in a world limited by your browser window. Wonder how it's like. Have you ever wondered what do the servers run? You know, the same servers that show you all sorts of pages? Banks, Twitter, Amazon, eBay, LinkedIn hundreds of other high load sites and countless numbers of proprietary in-house internal systems? Let me give you a hint: definitely not silverlight.

      If the zealots have their way, the servers will all run javascript (a la node.js), just like your browser, though I'll never understand all the love and hype over a language which is so kludgy.

    14. Re:Plant? by DickBreath · · Score: 5, Informative

      VirtualBox keeps getting updated regularly. A new VirtualBox 5 is in beta even as version 4 upgrades come out regularly.

      --

      I'll see your senator, and I'll raise you two judges.
    15. Re:Plant? by DickBreath · · Score: 3, Insightful

      You seriously have no clue what Java is used for nor how huge its ecosystem is. For years and to this very day Java is always shifting between the number one and number two spots of most widely used programming languages. The amount of enterprise software written in Java is so large that Java may never go away. There are certain things that Java is very good at, which is why it is used. It's not perfect for everything. If there were one perfect language, everyone would already be using it.

      --

      I'll see your senator, and I'll raise you two judges.
    16. Re:Plant? by Mr+Foobar · · Score: 1

      Seriously, I see no NEED for Java any more. I probably have more Silverlight things I like to use than I do Java, and neither are vital any more.

      As much as I'd love for Java to be dead, that's as far from reality as you can possibly get and still be walking on terra firma. That's completely ignoring the corporate world, where Java is just as much a part of life as .net and IE compatibility. I don't like it, you don't like it, but it's still a fact of corporate life. I was just dealing with a large medical client yesterday whose big name time tracking app requires v6 (v6!) of Java, while our own medical app requires v8. And I've rarely gotten multiple versions of Java working on one workstation.

      Personally I detest Java, too, and find it frustrating to program in, which is why I gave up Android app development. And slow, Java is slow as molasses in the depths of a winter snow storm. But there it is, still being used, and a lot, in the corporate world.

      --
      -> I dislike sigs...
    17. Re:Plant? by tadas · · Score: 2

      Java is dead, MySQL is dead, OpenOffice is dead, etc

      But has Netcraft confirmed it?

      --
      This page accidentally left blank
    18. Re:Plant? by Anonymous Coward · · Score: 1

      This comment is "+2, Interesting" in the same way that Syphilis is "+2, Not so Bad".

      Do you understand that java plugins in browsers are pretty much not a thing anymore, but that Java is a MASSIVELY popular language for pretty much any web app running on any server you connect to on the web.

      Claiming that it's dead because "you can't run java plugins in your browser" is just about the most monumentally stupid thing I've ever heard.

    19. Re:Plant? by allcoolnameswheretak · · Score: 5, Insightful

      Java is certainly not dead. If you're a software engineer, my gut feeling is that 70% of job offers involve Java programming. Java is widespread in the enterprise as well as open source frameworks and platforms.

      But parent is right in the fact that Java in the browser is practically dead. Some office environments still require Java for entperise applications, but practically all ordinary users don't need Java in the browser.

      It's a little ironic, since Java on the web was one of Java's main, original use cases. Now Java applets are niche and fading out, whereas Java is pretty much rampant everywhere else.

    20. Re:Plant? by H0p313ss · · Score: 1

      Pah. Next you'll be telling me it's got nothing to do with Javascript.

      Well now that you bring it up...

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    21. Re:Plant? by H0p313ss · · Score: 1

      > Java desktop applications are uncommon. Both these things are true,

      Unless you actually are involved in software development.

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    22. Re:Plant? by shione · · Score: 2

      No, but Minecraft has. ;)

      http://www.howtogeek.com/21090...

    23. Re:Plant? by Wraithlyn · · Score: 1

      ...which is uncommon

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    24. Re:Plant? by Anonymous Coward · · Score: 0

      Seriously, is your post troll bait. Even I want to pummel you for your comment, and IMHO, I have a high tolerance for stupidity. Java's smallest use was always plugins. Java is used for massively parallel server farms that serve pages on the web. Java is also used for teaching because it has a C like syntax and modern features.

      So Java is very much alive and kicking. Sure it will fade away like all languages but it is still one of the most popular languages right now. http://langpop.com/ shows Java as one of the most popular languages by any measure.

    25. Re:Plant? by gstoddart · · Score: 5, Informative

      VirtualBox we more or less kinda allowed it to die

      Ummm ... what the hell are you talking about? I use it daily, I get updates for it regularly, and it's anything but dead.

      VirtualBox is alive and well.

      --
      Lost at C:>. Found at C.
    26. Re:Plant? by tlambert · · Score: 1

      VirtualBox keeps getting updated regularly. A new VirtualBox 5 is in beta even as version 4 upgrades come out regularly.

      Don't worry; eventually they'll get it right, and then, like Mozilla, after it was finally able to be compiled and (limingly) run out side of company walls, it will be not dead again.

    27. Re:Plant? by ComputerGeek01 · · Score: 1

      Java is dead

      Um, wut? https://developer.android.com/... Java as a language isn't dead. I'm positive that if Google thought their move of disabling Java plug-ins would have killed off interest in the language, they would be moving their SDK away from it. And before you say it, no, NaCl is NOT an adequate replacement.

    28. Re:Plant? by fahrbot-bot · · Score: 1

      What do you NEED Java for nowadays? What do you NEED enough of it to justify a control panel icon, background services, etc.? Basically nothing.

      How about things *outside* the browser, like desktop and server applications. How about embedded applications like many (most? all?) Bluray players.

      There are many, many more things in this world than your browser.

      --
      It must have been something you assimilated. . . .
    29. Re:Plant? by fostware · · Score: 1

      Java is so dead...
      Except every Cisco phone handset and most of their management software.
      Fujitsu Server Management software
      LSI RAID management.
      Three different library catalogue systems.
      Two enterprise print and copy management systems.
      The West Australian Police Department's query auditing (for permissions and query logging)

      And that's what I've dealt with this year...

      It's cross platform, supports code-signing, and is immune to the usual cross-site scripting exploits.

      Next time, please think before you write.

      That said, I've seen a lot of projects move to Flash which I deem going backwards...

      --
      "We know what happens to people who stay in the middle of the road. They get run over." - Aneurin Bevan
    30. Re:Plant? by FranTaylor · · Score: 1

      I was just dealing with a large medical client yesterday whose big name time tracking app requires v6 (v6!) of Java, while our own medical app requires v8.

      yeah blame java because your boss is too cheap to upgrade

    31. Re:Plant? by pappaxray · · Score: 1

      I think by dead they mean dead like a zombie. Difficult to kill and even when one use case gets shot through the brain, there are ten more to take it's place.

    32. Re:Plant? by Anonymous Coward · · Score: 0

      Your gut is wrong. There are far more .Net positions being offered than Java.

    33. Re:Plant? by luis_a_espinal · · Score: 1

      Because Chrome is turning Java off and they're trying to make sure other browsers don't follow suit.

      Seriously, I see no NEED for Java any more. I probably have more Silverlight things I like to use than I do Java, and neither are vital any more.

      And the sooner we get out of the mindset of ancient-java-plugin being accepted as "more secure" for banking etc. the better. Hell, I remember the early days of the secure web where if you couldn't afford SSL, you pushed the transactions through a "secure" Java app.

      And apparently you are still stuck in the early days (like 15-16 years ago) because I have not seen anything like that since the late 90's.

      What do you NEED Java for nowadays? What do you NEED enough of it to justify a control panel icon, background services, etc.? Basically nothing.

      OMFG, this tells me you are complete unfamiliar with the concept of "back-end" software, which is where Java/JEE runs supreme. Amazon, Google, a ton of shit that runs on those platforms, that's all Java. And we are not mentioning all the banking stuff that is out there also written in Java.

      Seriously, you are stuck in the 90s', and thus, your opinions can (and should) be ignored without any doubt or feeling of guilt.

      As such, Java is dead in the water, and a major browser ditching it could be the end.

      What does Java has to do with a browser? Oh, let me guess, you are still in late-90's-applet-land?

      However, as some of the comments on here show, it won't be missed.

      It does make me wonder, however, quite what Oracle have left - Java is dead, MySQL is dead,

      MySQL is dead? Really? Tell me where you get this information, fanboi?

      Maybe that was the impetus for the whole Java/Dalvik thing?

      Uh?

      All that did was kill off Java and its derivatives even more.

      So they have to find some news to keep the name of the language alive.

      More uh?

    34. Re:Plant? by luis_a_espinal · · Score: 1

      Java is certainly not dead. If you're a software engineer, my gut feeling is that 70% of job offers involve Java programming. Java is widespread in the enterprise as well as open source frameworks and platforms.

      But parent is right in the fact that Java in the browser is practically dead. Some office environments still require Java for entperise applications, but practically all ordinary users don't need Java in the browser.

      It's a little ironic, since Java on the web was one of Java's main, original use cases. Now Java applets are niche and fading out, whereas Java is pretty much rampant everywhere else.

      Java in the browser died 15-16 years ago. How is that relevant to any conversation nowadays? This is like saying "dinosaurs are dead" (no shit) while discussing bee colony collapse syndrome (a contemporary phenomenon.)

    35. Re:Plant? by sribe · · Score: 2

      You need to grab a phone at tell all those sites above I mentioned, also, while you're at it, don't forget IBM and Oracle, they'll have a blast.

      Would you suggest he grab an Android phone while he's at it?

    36. Re:Plant? by jblues · · Score: 3, Informative

      And slow, Java is slow as molasses in the depths of a winter snow storm. But there it is, still being used, and a lot, in the corporate world.

      Slow compared to what? Java can be as fast or even faster than C++. The JIT compiler can make optimizations that a C++ compiled program cannot because it can query the machine, and make optimizations based on platform, CPU cache size, etc. Also heap allocation is very efficient, and it does things like removing methods with empty bodies.

      Carefully optimized C++ will blow away Java, but its one of the faster languages around.

      --
      If it acquires resources on instantiation like a duck, then its a shared_ptr<Duck>
    37. Re:Plant? by sribe · · Score: 1

      If the zealots have their way, the servers will all run javascript (a la node.js), just like your browser, though I'll never understand all the love and hype over a language which is so kludgy.

      JavaScript itself is not kludgy at all; well, at least not compared to what node.js has done with it ;-)

    38. Re:Plant? by Billly+Gates · · Score: 1

      I left vbox for vmware workstation 11 back in 2012 . The version number still hasn't changed?? Whether number 5 is in beta or not is irrelevant. This is not a rant on vbox but Oracle.

      Oracle doesn't give a rats ass as they want vbox to suck in comparison to their $$$$ solutions. Meanwhile vmware and hyperV are moving forward with support for later version of Windows and Linux.

    39. Re:Plant? by allcoolnameswheretak · · Score: 2

      Not in my neighbourhood. But many applications specify .NET or Java. The platforms and the languages (C#) are so similar, if you know one you know almost everything about the other.

    40. Re:Plant? by Xest · · Score: 1

      Pretty much everyone using the Microsoft stack, which is a fairly sizeable proportion of the world's developers, even those not doing .NET and using C++ such as an awful lot game developers for example quite happily avoid Java applications on the desktop because they just use Visual Studio.

      What you most likely mean is that if you're doing Java development then Java development tools written in Java for the desktop are fairly common. Some other languages spin off that to some degree (i.e. Zend Studio for PHP which is based on Eclipse), but even in the development world it's not like Java development tools are anything close to ubiquitous, and developers are a tiny portion of the world's computer users.

    41. Re:Plant? by Anonymous Coward · · Score: 0

      Or use menus on a cable box, Blu Ray Player, Blu Ray discs, TVs, etc.

    42. Re:Plant? by angel'o'sphere · · Score: 2

      And I've rarely gotten multiple versions of Java working on one workstation.
      Wow, did you ever consider a different career path?

      Ever heard about Shell scripts? The PATH variable and the JAVA_HOME variable?

      And slow, Java is slow as molasses in the depths of a winter snow storm.
      That myth was not even true 15 years ago,

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    43. Re:Plant? by Anonymous Coward · · Score: 0

      >

      But parent is right in the fact that Java in the browser is practically dead. Some office environments still require Java for entperise applications, but practically all ordinary users don't need Java in the browser.

      It's a little ironic, since Java on the web was one of Java's main, original use cases. Now Java applets are niche and fading out, whereas Java is pretty much rampant everywhere else.

      You can say the same thing for .NET or any compiled language on the desktop. Most applications written today are written as web applications that only require a browser. Sure, anything substantial is going to be an application running on it's own on the desktop, be it Java or .NET. For most work, the web app is just fine.

    44. Re:Plant? by Anonymous Coward · · Score: 0

      But Java was the important thing we couldn't let die. And it isn't open source so the community couldn't steal it away from oracle.

      Well, at least you admit that Java isn't open source.

      And as an obsolete, copy-cat, proprietary system, it's a great match to Oracle's other commercial products: Oracle's market differentiator is its extremely high skill at grabbing customers by the balls and squeezing really hard.

    45. Re:Plant? by Anonymous Coward · · Score: 0

      whereas Java is pretty much rampant everywhere else.

      Sort of like Kudzu in the South or brown tree snakes in Guam.

    46. Re:Plant? by Anonymous Coward · · Score: 0

      Yea, great updates. Like the one that causes ethernet to slowly toggle on and off forever. It took me a while to figure out how to undo the install of the newer version and go back to the one where my connection wasn't being reset every 15 minutes.

    47. Re:Plant? by NostalgiaForInfinity · · Score: 1

      There are certain things that Java is very good at

      I can't think of anything that Java is "very good at". Most of its popularity derived from the anything-but-Microsoft attitude of the 1990s and Sun's lies about making it an open standard, not from any technical or performance features.

      As a language, Java is at best mediocre. And Java failed biggest at what was one of its primary selling points: security. One of the reasons Java is now limited to the server is because they simply couldn't get the sandboxing working for applets, something Flash and JavaScript managed just fine.

    48. Re:Plant? by deKernel · · Score: 1

      From my personal experience, it is the applications with GUI's that are painful at times to use, and this includes when the application has been running for quite some time so the JVM should have had plenty of time to make any/all optimizations.

    49. Re:Plant? by NostalgiaForInfinity · · Score: 4, Interesting

      Java can be as fast or even faster than C++.

      Java is great on microbenchmarks, and it's a great demonstration that languages could provide high performance and still be safe at the same time. Unfortunately, writing larger systems that perform well in Java is quite hard: you can write fast inner loops, but if you try to use abstractions anywhere, usually things get really slow. Java's garbage collector is also quite good, but unfortunately, the standard libraries force interfaces on you that result in the generation of vast amounts of garbage, so that effect is negated as well.

      Although superficially pretty similar, .NET actually fixes many of those problems. And with LLVM, more languages like that are appearing.

    50. Re:Plant? by Anonymous Coward · · Score: 0

      Java is one of the most popular languages that employers hire for

      Well, here's a report that disagrees with your statement. Looks like .NET is winning by nearly 2 points.

    51. Re:Plant? by slimshady76 · · Score: 1

      Let's not forget Java is the one to point a finger at when talking about performance and lazy programming. Most of the Java garbage out there simply needs way too many resources to do stuff at least in a mediocre way. When an app owner releases a new version of their shit, we know they will be requesting more memory and CPU just a week after, because their users are complaining about "poor performance". On a related issue, I still hold my position: In a near future, (and perhaps because of this stupid IOT thing) all the Java based appliances will start to work together and bring Skynet to life. Prepare yourselves to run away from hordes of Java-powered T1000s!!! I for one welcome our CPU and memory hungry robotic overlords.

    52. Re:Plant? by Anonymous Coward · · Score: 0

      VirtualBox is fantastic. Pair it with phpVirtualBox on a headless Linux server and you've got one hell of a personal use replacement for the gimped free version of ESXi server.

    53. Re:Plant? by OrangeTide · · Score: 1

      I was just dealing with a large medical client yesterday whose big name time tracking app requires v6 (v6!) of Java, while our own medical app requires v8

      Pro business tip: Survey your potential customers before starting a project to gauge what the requirements are.

      For example:

      When was your infrastructure installed or last received a major system-wide upgrade?

      A. earlier than 2006
      B. 2006-2011
      C. 2011-2014
      D. later than 2014

      (A=Java 5, B=Java 6, C=Java 7, D=Java 8) These are all rough guesses, not absolutes, but if you ask enough other questions and survey enough potential customers it makes a real difference when planning. It's good to know in advance if supporting some obscure requirement is worthwhile, sometimes the extra business you would get is not enough to justify the development costs. (it would have to be a very tiny amount of business or a very high costs for that to really happen, but a programmer can dream can't he?)

      A few well pointed questions can help you get a sense of what software requirements are customer is going to have.

      If you aren't coding against requirements, what do you code against?

      --
      “Common sense is not so common.” — Voltaire
    54. Re:Plant? by bzipitidoo · · Score: 1

      Java was a terrible resource pig when I last used it extensively, over a decade ago. Has that changed? Took lots of memory, and yes, it was slow.

      Carefully optimized C++ will blow away Java,

      Ok, seems that has not changed much.

      As for that optimization benefit you extol, what's stopping the C++ compiler from querying the machine and making optimizations based on platform? Isn't that the whole point of a source code Linux distro like Gentoo?

      Yeah, this story smells like Slashvertising. If, as claimed in another recent Slashvertisement for Java, it is such a simple language to understand, an easy language to program, one that lets programmers "get things done", why do employers strongly prefer programmers who have 5 or 10 or more years of experience in Java? It's a curly brace OOP language with tons and tons of its own libraries. It doesn't play nice with libraries written in other languages, it mostly ignores them. A lot of resources have been poured into enabling Java to inhabit a world of its own, and it seems now with hindsight that was not the best direction to go. One of the biggest improvements over C++ was the propaganda that unlike C++, Java doesn't use pointers. That's a misrepresentation. What they really mean is that Java ditched the ugly C pointer syntax. That, and this object code that is supposed to run on any platform, making Java super portable, especially designed for browsers, were the main selling points of Java. But that was 15 plus years ago. What has Java done lately? Stagnated while other languages press ahead with advances?

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    55. Re:Plant? by nmb3000 · · Score: 3, Interesting

      JavaScript itself is not kludgy at all

      That's going a bit far. Javascript definitely has some kludge in the corners and along the basebords. The wallpaper also needs to go.

      Not many lanaguage need a book called "the good parts" (great book, by the way). Or, a little more tongue-in-cheek....

      --
      "What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
      /)
    56. Re:Plant? by Anonymous Coward · · Score: 0

      Whoa! It's really amazing what 20 years old marketing for an obsolete pascal ripoff can achieve.
      You javvers really crack me up.
      Goddamn Bourne shell scripts are faster and more object oriented than Java.
      But don't let facts get in the way of fanboyism.
      Your Indian teachers can't be wrong.

    57. Re:Plant? by Anonymous Coward · · Score: 0

      >> Java is dead

      Minecraft

    58. Re:Plant? by jmccue · · Score: 1

      "dinosaurs are dead"

      Hey, dinosaurs are not dead http://jobs.monster.com/v-it-q...

    59. Re:Plant? by fistfullast33l · · Score: 1

      why do employers strongly prefer programmers who have 5 or 10 or more years of experience in Java

      In my experience, employers needs != employers preference.

    60. Re:Plant? by Anonymous Coward · · Score: 0

      Go to a job site and search for 'java'. On dice.com there are currently over 17,000 matches, .net 9,751.
      On careers.stackoverflow.com there are 749 java matches, 281 .net.

      My point is that Java is far from a dead language.

    61. Re:Plant? by PitaBred · · Score: 1

      Lots of bad Java programmers put application logic into the GUI thread. It'll optimize fine, but if it's actually doing work there's nothing that will stop freezing of a GUI that's badly programmed. That's as true of C as it is of Java.

    62. Re:Plant? by Anonymous Coward · · Score: 1

      You need to grab a phone...

      Ironic. "Dead" Java is the first tier language for Android.

    63. Re:Plant? by Bengie · · Score: 1

      Java seems to like to create objects more often than .Net. Even though it does this quite quickly, it causes the GC to kick in more often, and the GC does a stop world, and stop world is bad for thread scaling.

      A 1% difference of total CPU time spent in GC time can quickly turn into a 100% different in performance. Amdahl's law has caused me great pain when trying to reduce GC time.

    64. Re:Plant? by tomhath · · Score: 1

      I don't think it's Oracle. But someone has noticed that Java's popularity is in free fall. Some would argue that it can be used for anything; on the other hand - for whatever you are trying to do, there's a better language to do it in than Java. Web app? Node. Statistics? R. Scripting? Python. Etc.

      If the only tool you have is a hammer you try to use it on everything, with predictable results

    65. Re:Plant? by Wdomburg · · Score: 1

      "The short version is that Minecraft is now bundling a standalone version of Java into their installation."

      So dead we're distributing it as part of the product!

    66. Re:Plant? by Anonymous Coward · · Score: 0

      You can use java in android - many do. And some use "native code" and get a 10x speedup . . .

    67. Re:Plant? by HornWumpus · · Score: 1, Offtopic

      Oracles key competence is convincing customers to place their balls into an Oracle certified vice.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    68. Re:Plant? by Espectr0 · · Score: 2

      While true, features have become a little stagnant compared to VMware. Also, speed is also inferior as well.

      Let's hope version 5 makes Virtualbox a contender again

    69. Re:Plant? by Anonymous Coward · · Score: 0

      Unless you're talking Java EE; which is a very different animal.

      I've seen very skilled Java programmers who wrote shit EE code. Just because they didn't understand the nature of the beast.

    70. Re:Plant? by Anonymous Coward · · Score: 0

      Did someone else get access to your account? Almost nothing you stated is based on reality.
      > Because Chrome is turning Java off and they're trying to make sure other browsers don't follow suit
      Laughable.
      > I probably have more Silverlight things I like to use than I do Java, and neither are vital any more.
      I've seen one usable Silverlight app in YEARS.
      > Java is dead, MySQL is dead, OpenOffice is dead, etc.
      Laughable.
      > I can only imagine they thought there was a lawsuit or patent in there that was worth billions. Maybe that was the impetus for the whole Java/Dalvik thing? All that did was kill off Java and its derivatives even more
      That's so batshit offtopic paranoid, I'm not sure what basement meetings you attend.

      I can't imagine a developer who thinks these strange things.

    71. Re:Plant? by Anonymous Coward · · Score: 0

      As a primarily C# developer, it's about as annoying to work in Java as it is to work in VB. You know how to make it happen, but there's all these stupid little details that keep breaking your intentions. It probably only adds about 10% to the time estimate for any given task, and the effect fades over the course of a few months (usually about 2) as you re-familiarize yourself with the language's idioms.

      But the ones that you never really get used to are the parts of Java where the language designers were either late to the party (lambdas) or worse, refused to add a feature for a while until the development community raised holy hell (generics). These items tend to be hacked-in and poorly designed. The syntax is generally clunky. To be fair, the language designers for Java have done a hell of a lot better than the ones for C++, probably due to applying some of the lessons from watching the incomprehensible trainwreck that C++ became.

      But, yeah, I'm a spoiled C# developer, so take all of that with no more than a tiny grain of salt.

    72. Re:Plant? by RR · · Score: 1

      "The short version is that Minecraft is now bundling a standalone version of Java into their installation."

      So dead we're distributing it as part of the product!

      That is death for Java as a platform. In the past several years, the only reason I’ve seen for most people to have a Java plugin installed (and the always-neglected Java Update process, and the Ask toolbar) was because they needed the whole JRE to run Minecraft. Now Microsoft is eliminating that requirement.

      --
      Have a nice time.
    73. Re:Plant? by Anonymous Coward · · Score: 0

      Your ignorance is astonishing. You think that 'Java' is a browser plugin? I agree that this particular facet of the Java platform does need to die, but hohooo boy do you not have any idea how large the rest of the iceberg is and how much you use it every day. I don't go around saying C is dead because I haven't been hands on with a device driver in a while cuz, y'know, that would be truly, truly idiotic.

    74. Re:Plant? by Anonymous Coward · · Score: 0

      So the number of open position req.s now means a better programming language? Can I assume you also believe reality TV to be the superior form of programming based on its number of viewers? And Dan Brown is the greatest literary genius of our time?

    75. Re:Plant? by Anonymous Coward · · Score: 0

      Bazinga!

    76. Re:Plant? by Anonymous Coward · · Score: 0

      We're working on getting rid of it. Java isn't used because it's good, it's used because of the army of vendor programmers who can barely write a class but who could rapidly produce shite for enterprises who thought they weren't technology companies.

    77. Re:Plant? by Gr8Apes · · Score: 1

      You must live just outside Seattle.

      --
      The cesspool just got a check and balance.
    78. Re:Plant? by Anonymous Coward · · Score: 0

      Yeah, just like when game companies bundle directx, you know, because directx is dead...

    79. Re:Plant? by david_thornley · · Score: 1

      There isn't much that Java is "very good at", but overall it is a good language for some purposes. It is a decent procedural language slanted towards O-O programming (nominally it is an O-O language, but it's easy to use as a procedural language). It's something of a B&D language, so mediocre programmers are unlikely to mess things up too much. It has too much C syntax (including the stupid switch statement), so it looked familiar. It had a lot of advantages in the 90s, being early to implement garbage collection and to provide a very large standard library. It got a leg up with Java applets on the web (although that use is pretty well dead, it helped Java get popular).

      It's not a great tool for expert programmers, but it's adequate and fairly safe for mediocre programmers. In general, it's a good business-oriented language.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    80. Re:Plant? by sribe · · Score: 1

      That's going a bit far. Javascript definitely has some kludge...

      Oh, I agree. Some last-second editing rephrased "at all compared to" and made it read a bit differently than I intended. JavaScript is kludgy; but it's nothing compared to the ass-backware inside-out semantic model that Node.js advocates promote ;-)

      All you kiddies who discovered event-driven programming and the C10K problem last month, shut up. The real adults have solved the C2M problem, and the solution involves threads AND event-driven queues, a technique which has been well understood for about 20 freaking years now.

    81. Re:Plant? by Anonymous Coward · · Score: 0

      Heh!! Crazy talk!

      Saying "Java is dead" is like saying "air travel is dead", because, like, how many people have their own plane?

      Or "electricity is dead" - few people have their own generators?

    82. Re:Plant? by Anonymous Coward · · Score: 0

      Yep, hell sounds just about right to me!

    83. Re:Plant? by Anonymous Coward · · Score: 0

      No, forget GWT, please!

    84. Re:Plant? by Mr+Foobar · · Score: 1

      Note: I'm the IT support/installation vendor of one medical app, the one that requires Java v8, the time clock app that requires Java v6 is a completely separate vendor of human resources software which I have nothing to do with, other than to try to share non-compatible Java versions. The mutual client is a large public health clinic spread over a 60 mile radius.

      Just so you know the whole story, and so can quit thinking yourself such a damn smarty-pants...

      --
      -> I dislike sigs...
    85. Re:Plant? by ahabswhale · · Score: 1

      It can be used for just about anything but it's painful to write. Fortunately, there's a plethora of other JVM languages that are a lot more interesting and can still leverage Java libraries when needed. That's huge. Most of the work I do now is in Groovy, which is significantly more fun and far more productive to work with.

      --
      Are agnostics skeptical of unicorns too?
    86. Re:Plant? by ahabswhale · · Score: 1

      Wrong. Java is used heavily for server-side programming. Desktop Java apps are rare.

      --
      Are agnostics skeptical of unicorns too?
    87. Re:Plant? by Mr+Foobar · · Score: 1

      Pro business tip: try to get your clients to be completely truthful and upfront on the requirements, and find that half don't even know or have the slightest clue, and the other half will lie through their teeth, why I just don't know.

      In fact, I was well into the installation when it was brought to my attention that the time clock app quit working. *That's* when I find out about the Java v6 issue, after the Java versioning was discussed at several meetings leading to the installation, and I've been mindlessly installing the Java v8 RT with medical office's complete knowledge and permission.

      But thank you for your sage advice...

      --
      -> I dislike sigs...
    88. Re:Plant? by Anonymous Coward · · Score: 0

      It's something of a B&D language, so mediocre programmers are unlikely to mess things up too much

      There are many safe languages around that do not have the performance problems that Java has.

      It had a lot of advantages in the 90s, being early to implement garbage collection

      Java wasn't "early to implement garbage collection"; it was decades late. The only reason Java has this reputation is because C programmers were largely ignorant of anything else. And Java's garbage collector sucked, and its memory management still sucks.

      and to provide a very large standard library.

      Again, C programmers might have thought that, but that's due to their ignorance. Smalltalk, Objective-C, Python, Perl, PL-I, and lots of other languages had much bigger and better "standard libraries".

      Of course, calling Java's libraries "standard libraries" is kind of disingenuous to begin with since Java never became either an official standard or a de-facto standard; quite to the contrary, Sun threatened to sue anybody who tried to create an independent implementation. So, what Java really was was a proprietary language with a proprietary implementation that shipped with a bunch of bloated and crappy libraries.

      it's a good business-oriented language.

      A good business-oriented language would do a lot better at string handling than Java. The choice of UTF-16 and the way memory management works for strings itself makes Java a joke for such applications.

    89. Re:Plant? by ahabswhale · · Score: 1

      No, it's changed a lot. Java is extremely fast. I work on server-side apps, and we never have performance issues relating to Java. And I mean never. Performance problems almost always database related and sometimes they are from poor performing webservices.

      --
      Are agnostics skeptical of unicorns too?
    90. Re:Plant? by holostarr · · Score: 1

      This is absolutely false. Some of the syntax is similar, however, if you are building anything more than a simple console app, you will discover there are huge differences in platforms. For example, when building web apps, there are major differences between IIS architecture and a container such as Apache Tomcat. Similarly, there are large difference between how the two VMs optimize code and threading so a Java developer cant just jump into .NET development and vice versa.

    91. Re:Plant? by OrangeTide · · Score: 1

      Glad you were able to upgrade the systems to Java8. It seems like the client didn't know that it matters and didn't have any strong opinions on the subject.

      Clients often are unaware that they have relevant information, and don't seem to volunteer it easily.

      If you haven't begun the work yet, and wish to see if your potential market can meet your software requirements, you need to do a bit of research. Engineering doesn't get to define what customers you can go after, that's the real job of a Marketing department and ideally begins long before Engineering has even thought about the problem. Engineering can certainly respond to Marketing with budgets and schedules.

      I'm often forced into lame technical decisions so we can cast a wider net for compatibility with customer environments or to support a few obscure customer requirements because their business has been given a weight above what their initial orders might imply.

      (note: I work in the silicon industry, it's tough to be agile there. Because some of our requirements get baked into hardware design about a year in advance of the SW work)

      --
      “Common sense is not so common.” — Voltaire
    92. Re: Plant? by Anonymous Coward · · Score: 0

      Moat certainly. Java was great when it was launched, for the purpose it was designed: embedded programming. Mainly due to its GC memory model that freed programmers from thinking about memory management, prevent leaks etc.

      However. It was never nor is it today a good choice for any server programming(it may have been in early days of JEE, but then came PHP which today is also a no go). Java and all of its related frameworks like JEE, Spring etc. are overly bloated, complicated to learn and use and resource hungry to the max. Java's programming style kills productivity (think Message msg = new Message(new MessageText("warning, this will ruin your day"));), it's proclaimed popularity gives managers a false feeling of doing the right thing, and the wide spread use of XML configuration files kills off people's remaining sense for simplicity. All in all, Java has created an eco system that is about an order of magnitude more expensive for server programming than the alternatives like Python/Django/Tornado/Flask or Ruby/Rails etc.

    93. Re:Plant? by antdude · · Score: 1

      Ditto. I like it being free since VMware Workstation and Fusion are expensive. :(

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    94. Re:Plant? by Xest · · Score: 1

      Have you considered learning to comprehend posts that you read?

      Of course Java is used heavily for server-side programming. I know this, because I have leader server side Java software projects.

      None of which changes the fact that that's still not even close to a majority of developers, and not even close to a majority of the world's computer using population.

      I can only assume therefore that you're either incapable of reading posts on the internet and comprehending them. Or you're just plain batshit insane and like to say things that make no sense in the context of the discussion.

      Which is it?

    95. Re:Plant? by ahabswhale · · Score: 1

      My apologies, I misread your post. Thanks for not being a dick about it.

      --
      Are agnostics skeptical of unicorns too?
    96. Re:Plant? by Anonymous Coward · · Score: 0

      > Also, speed is also inferior as well.

      But also as well is it as well as also inferior also?

  2. 20 Years by Big+Hairy+Ian · · Score: 1, Troll

    20 Years of write once and test everywhere! And now thanks to Android there are over 18000 distict Andoid platforms to test on too!! http://thenextweb.com/mobile/2...

    I for one salute out software testing overlords :|

    --

    Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

    1. Re:20 Years by Anonymous Coward · · Score: 0

      Variety and competition is good. Would you rather work in a monoculture like IOS? As long as you stick to standard Java, if your app doesn't work on a particular platform, that's their problem, not yours.

    2. Re:20 Years by Anonymous Coward · · Score: 3, Insightful

      If you're trying to sell an app, it's your problem, not theirs.

    3. Re:20 Years by jareth-0205 · · Score: 4, Insightful

      20 Years of write once and test everywhere! And now thanks to Android there are over 18000 distict Andoid platforms to test on too!! http://thenextweb.com/mobile/2...

      What you call 'fragmentation' I call 'variety'. And since Android app crash rates are actually lower than iOS ones (ie a platform with much lower 'fragmentation') then it clearly isn't the problem that you think it is...

    4. Re:20 Years by Anonymous Coward · · Score: 0

      This vaccine against sarcasm is really efficient.

    5. Re:20 Years by Pseudonym · · Score: 1, Insightful

      On iOS, you can pay $99 for the privilege of writing apps for your own device. What's not to love?

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    6. Re:20 Years by rsclient · · Score: 1

      The alternative (and I've done it..) is "write once, port everywhere."

      What used to be an long, frustrating process (what do you mean, 'unlink' doesn't work?) is now almost trivial.

      --
      Want a sig like mine? Join ACM's SigSig today!
    7. Re:20 Years by IgnitusBoyone · · Score: 3, Funny

      That is disingenuous. You pay 99 dollars to test apps on your friends device.

      --
      Momento Mori
    8. Re:20 Years by OrangeTide · · Score: 1

      You can ignore the 18K Android platforms, almost all of them are disposal and every year about half of them become too small of a fraction to be relevant to most businesses.

      Google's problem is they gave Android OEMs enough rope to hang everyone.

      --
      “Common sense is not so common.” — Voltaire
    9. Re:20 Years by John+Bokma · · Score: 1

      And since Android app crash rates are actually lower than iOS ones

      Source?

    10. Re:20 Years by WheezyJoe · · Score: 1

      And since Android app crash rates are actually lower than iOS ones (ie a platform with much lower 'fragmentation') then it clearly isn't the problem that you think it is...

      Cite? Seriously, that's a hell of a thing to measure. Is there some kinda metric to back that up? Not being snarky, I truly wanna know.

      --
      Take it easy, Charlie, I've got an Angle...
    11. Re:20 Years by Just+Some+Guy · · Score: 1

      And since Android app crash rates are actually lower than iOS

      You're wrong, unless you can provide equally large-scale, cross-platform metrics. Compare the iOS 8 (most popular iOS version with about 85% usage share) crash rates (most recently 2.05%) with KitKat 4.4 (60% share) at 2.53% crash rate.

      --
      Dewey, what part of this looks like authorities should be involved?
    12. Re:20 Years by leenks · · Score: 0

      On a $2000 laptop for a $800+ device - both of which need to be regularly refreshed too (and you probably need to own multiple devices for testing the different form factors). The $99 subscription pails into insignificance on just those things, let alone everything else associated with development (server hosting, SSL certificates, business taxes, coffee, expensive german cars, etc)

    13. Re:20 Years by jareth-0205 · · Score: 1

      Well, it depends on how you slice the data, but even from your interpretation of that data they are not wildly different, and if fragmentation was such a massive issue you'd expect Android development to be massively more timeconsuming / expensive, or a significantly higher defect rate. Neither seem to actually be true.

    14. Re:20 Years by jareth-0205 · · Score: 1

      I'm not convinced these are particularly reliable, but if fragmentation was the bogeyman issue it's claimed to be then you'd expect these rates to significantly favour iOS, and they don't, or even tend the opposite.

      http://www.techradar.com/news/...
      http://bgr.com/2015/02/13/ios-...

    15. Re:20 Years by jareth-0205 · · Score: 1

      http://www.techradar.com/news/...
      http://bgr.com/2015/02/13/ios-...

      Not absolutely convinced they are that accurate, but none of the rates I've seen show much difference between the two platforms and you'd expect them to be very different if fragmentation was a problem.

    16. Re:20 Years by John+Bokma · · Score: 1

      Apparently, iOS 8+ crashes slightly more often than Lollipop, having a 2.2% crash rate compared to Android 5’s 2.0% rate. iOS 8 also loses when compared to the previous release (iOS 7 had a 1.9% crash rate), while Lollipop beats bot KitKat and Ice Cream Sandwich, each having 2.6% crash rates.

      and ...

      iOS 8+ is installed on 72% of existing iOS devices, with Lollipop only accounting for 1.6%

      Or: the majority of devices running Android crash more often then the majority of devices running iOS.

    17. Re:20 Years by Pseudonym · · Score: 0

      On a $2000 laptop for a $800+ device [...]

      Good point. I didn't factor in the overpriced nature of both OS X and iOS devices, as well as the need for conspicuous consumption if you're an iOS developer.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  3. C++ is not a strict superset of C by aglider · · Score: 3, Informative

    While Objective C is. You insensitive programming clod.

    --
    Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    1. Re:C++ is not a strict superset of C by Anonymous Coward · · Score: 0

      Wrong. There is valid C code that is not valid Objective-C code, too.

      You can even try it yourself if you have C and Objective-C compilers installed.

      $ echo 'void id(){}' > test.c
      $ cp test.c test.m
      $ clang -c test.c
      $ clang -c test.m
      test.m:1:6: error: redefinition of 'id' as different kind of symbol
      void id(){}
                ^
      note: previous definition is here
      1 error generated.
      $

    2. Re:C++ is not a strict superset of C by Anonymous Coward · · Score: 0

      I'm pretty sure that C99 VLAs are not in either ObjC or C++.

      float read_and_process(int n)
      {
              float vals[n];
              for (int i = 0; i n; i++)
                      vals[i] = read_val();
              return process(vals, n);
      }

    3. Re:C++ is not a strict superset of C by OrangeTide · · Score: 1

      Is that really much different than defining a function in C called index() on a BSD compatible platform that assigned that common name to it's standard library?

      echo > t1.c
      void index(void) { }
      EOF
      gcc -c t1.c
      t1.c:2:6: error: conflicting types for ‘index’

      --
      “Common sense is not so common.” — Voltaire
    4. Re:C++ is not a strict superset of C by OrangeTide · · Score: 1

      s/it's/its/

      I should probably proof read the English in my posts instead of only the C. Although I do care more about being a programmer than being literate.

      --
      “Common sense is not so common.” — Voltaire
    5. Re:C++ is not a strict superset of C by Anonymous Coward · · Score: 0

      Not anymore.
      At least Apple stopped desecrating it and replaced it with an abomination that combines Java performance with PHP semantics and C++ syntax consistency.

    6. Re:C++ is not a strict superset of C by gatkinso · · Score: 1

      Well, "id" is an Objective C keyword, IIRC.

      --
      I am very small, utmostly microscopic.
    7. Re:C++ is not a strict superset of C by Blaskowicz · · Score: 1

      It must be fun to call read_and_process(somereallybignumber)

    8. Re:C++ is not a strict superset of C by Anonymous Coward · · Score: 0

      Read the references.

  4. I don't know why people still say Java is slow... by etinin · · Score: 5, Funny

    Maybe it's the applications. As you note, we have proved, time and time again, that in contrived scenarios Java code can meet or even beat the performance of so-called "performant" languages like C, C++, Lisp, VB6, or JavaScript. And when presented with such evidence, most sane, open-minded opponents will hang their heads in shame and promise never again to spread such slander.

    ...but then, they fire up Eclipse, or NetBeans, or Guiffy, or enable the Java support in their browser, or try to run an app on their favorite feature phone. And they wait for it to become responsive...

    ...and wait...

    ...and wait...



    ...and wait...







    ...and wait...













    ...and...






    ...what did I promise never to do again? Sorry, must have dozed off...

    --
    "I decided I could write something better than everything out there in two weeks. And I was right." - Linus Torvalds
  5. Don't make me puke... by Anonymous Coward · · Score: 0, Interesting

    Java exists in a special type of programming environment. If it works for you, great. One thing I'll never understand is how it practically requires an IDE to do anything non-trivial, in contrast to any other language. It reminds me of APL's requirement for a special keyboard.

    And to be clear, it will never catch on in vast swaths of the programming world.

    1. Re:Don't make me puke... by jellomizer · · Score: 3, Funny

      In contrast with other languages...

      I find a better IDE for different and I was like, how about that, this makes it easier for me to write code for the language.

      If back in the day where you had GWBasic

      Ok
      LIST
      10 PRINT "HELLO"
      20 GOTO 10
      Ok
      15 PRINT "WORLD"
      Ok
      LIST
      10 PRINT "HELLO"
      15 PRINT "WORLD"
      20 GOTO 10
      Ok
      15 PRINT "WORLD!"
      LIST
      10 PRINT "HELLO"
      15 PRINT "WORLD!"
      20 GOTO 10
      Ok
      RUN
      HELLO
      WORLD!
      HELLO
      WORLD!
      HELLO
      WORLD!
      HELLO
      WORLD!

      If we had that type of IDE today the program will fail miserably. However you take the same language and give it a new IDE then you could in theory make an Enterprise class application in GWBASIC.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    2. Re:Don't make me puke... by Pi1grim · · Score: 2

      >> One thing I'll never understand is how it practically requires an IDE to do anything non-trivial, in contrast to any other language.

      Hate to break it to you, but if you don't need IDE for specific language. You need IDE for large project. Regardless of the language used.

    3. Re:Don't make me puke... by warm_warmer · · Score: 3, Informative

      You need IDE for large project. Regardless of the language used.

      The OP is still correct about Java. "Non-trivial" is not the same as "large project." Small applications can be written in Python, Ruby, Perl, and C without an IDE, but writing a small application without an IDE is really difficult task in Java (and C# or basically any other .NET language, fwiw - Java's not alone) due to the strong dependence on boilerplate code.

      Further, you do *not* need an IDE for large projects regardless of language. I've seen a number of large projects (tens of thousands of lines of code) written in C and Ruby where more than half of the developers did NOT use an IDE. In fact, for the C projects on which I've worked recently (last 10 years, including those with tens of thousands of lines of source), the primary code editing tools used by the developers were exclusively text editors like nano and vim - there is no IDE during development.

    4. Re:Don't make me puke... by RabidReindeer · · Score: 1, Insightful

      The IDE is so that management can hire ignorant monkeys and expect that the IDE's wizards will produce quality code rapidly and cheaply. Which, of course doesn't really happen since wizards are like the dock that carries you far out over the lake. And then ends before you get to where you really need to be. The IDE then allows ignorant monkeys to produce abominable-quality software. But hey, it was fast and cheap!

      You can edit Java code all day long in Windows Notepad. An IDE in capable hands merely makes the clerical services more convenient. It's just a pity that capable hands aren't valued much these days.

    5. Re:Don't make me puke... by DickBreath · · Score: 1

      > you could in theory make an Enterprise class application in GWBASIC.

      In theory you could make Enterprise applications in assembly language. Or write the direct machine instructions in Hex. An IDE might help. But the language you use also plays a large part. Perhaps larger than the IDE. The IDE is a lever that helps leverage the power of the language that you start with. If the language you start with (GWBASIC or machine code) isn't that high level, abstract or powerful, then the IDE can only help you leverage what you have, which isn't much.

      --

      I'll see your senator, and I'll raise you two judges.
    6. Re:Don't make me puke... by Anonymous Coward · · Score: 0

      I happen to know of a ~300,000 lines of code project which is developed in vim or Emacs which I do some minor work with. I tried to write something in Java from Emacs once. "Hello, world" was about as complicated as I could manage without losing my mind.

      In the same sense, you can write APL out in ASCII, just no one ever did.

    7. Re:Don't make me puke... by Anonymous Coward · · Score: 0

      Really? I've written large projects in... shell scripts, Lisp, Fortran, C, C++, Ada, ZPL, Chapel, Matlab, OCaml, CUDA, ...

      IDE used? Emacs.

      Here, lemme try Java... um, damn, anything more complicated than "Hello, world" is a clusterfuck.

    8. Re:Don't make me puke... by Anonymous Coward · · Score: 0

      (and C# or basically any other .NET language, fwiw - Java's not alone)

      Java's alone in the sense that it has infected the non-Windows world. Otherwise a Linux or OS X user could ignore the existance of those other ones.

    9. Re:Don't make me puke... by FranTaylor · · Score: 1

      writing a small application without an IDE is really difficult task in Java ... due to the strong dependence on boilerplate code.

      that's a stinking load of bollocks

      I wrote a java front end for tar, that makes it multi-threaded. I use it to make backups. It's maybe 4 or 5 pages of java. It's just one file, no IDE, no makefile, no build.xml, no nothing, just a .java file that compiles into 4 or 5 .class files. It's easier to work with and easier to port than ANY C or C++ program of equivalent size.

    10. Re:Don't make me puke... by Anonymous Coward · · Score: 0

      And I use nedit. For C, C++, Python, Perl, FORTRAN, Bash, etc.

      Oh, and Java.

      All roughly the same size.

      And nedit mostly so I can use middle click cutnpaste.

      What *can* fuck it up is over-OOing. Which happens in C++/Python and somewhat Perl too. Over-OOing is where you make an object, stuff it somewhere else (Java does make this worse by putting the design that each object *ought* to be in its own file, but that's as much poor programmers as poor design), and that object does fuck all but call another object. Which is in another file and does fuck all but call another object, which...

      A common problem for people new to OOP or who don't really have to dip in and out of the software library, hence can "internalise" where they should be looking and why.

    11. Re:Don't make me puke... by Anonymous Coward · · Score: 0

      That depends on where you delineate "trivial", "small", and "large" projects. I would say that a tar front-end is still in the "trivial" range.

    12. Re:Don't make me puke... by Anonymous Coward · · Score: 0

      A language helps you synergize all your Indian slaves out of their mud huts so they can be managed by more Indians in order to release some crap business logic which could be easily replaced by a toy bird.
      If it makes you good rupees who are we to judge.

    13. Re:Don't make me puke... by Wdomburg · · Score: 1

      I work in a code base of about 475k lines of java (not counting comments, annotations of black lines) with vim as my typical environment.

    14. Re:Don't make me puke... by angel'o'sphere · · Score: 2

      I've seen a number of large projects (tens of thousands of lines of code)
      This is a contradiction in itself.
      10,000 lines even multiple of them, like 90,000 lines, is by no means "a large project".

      The systems I work on usually have like 10,000 classes! no one bothers to count the lines though.

      the primary code editing tools used by the developers were exclusively text editors like nano and vim - there is no IDE during development.
      That is their problem ... we had this: vi(m) is better than an IDE talk a few days ago ... already.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    15. Re:Don't make me puke... by Tablizer · · Score: 1

      Don't make me puke... (Score:0, Interesting)

      Gotta love slashdot

    16. Re:Don't make me puke... by Anonymous Coward · · Score: 0

      Hey, my puke is very interesting!

    17. Re: Don't make me puke... by Anonymous Coward · · Score: 0

      Are you in a time warp from 1997? It caught on over 15 years ago.

    18. Re:Don't make me puke... by Tablizer · · Score: 1

      0% interesting.

  6. forever and ever? by fey000 · · Score: 1

    Forever is a bold claim. What about after the apocalypse? What about Planet of the Apes?

    Are we making the Java manuals out of IBM keyboards or something?

    1. Re:forever and ever? by fermion · · Score: 1
      Also think about Pascal. It too changed programming as it let a new generation of not very good coders generate applications. Who does Pascal now?

      Not sure if Java is better or worse than Pascal. A similarity is that part of it's popularity is that it is a teaching language, perhaps more than a production language.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    2. Re:forever and ever? by RabidReindeer · · Score: 1

      Pascal, unlike Java, was not self-contained. The primary examples being functions like println. More importantly, it wasn't object-oriented (although some OO variants were experimented with). And like it or loathe it, when you have a really large project, having stuff compartmentalized into predictable objects has some major selling points.

    3. Re:forever and ever? by DickBreath · · Score: 1

      In ways that affect most programmers, for most everyday purposes, Java is an advance over Pascal just as Pascal was an advance over earlier languages. Just as Pascal gave you new powerful tools (structured programming without GOTO, data structures, strong typing, recursion, etc), Java gives you more new tools (objects, inheritance, polymorphism, garbage collection, a very large standard library, object code portability across platforms), later on the JVM brought portable source level debugging, dynamic profiling and hotspot compilation, better and more sophisticated garbage collection, and more.

      Ultimately it depends on what your goals are. If you are writing high performance video codecs, or signal processing, for example, then you would probably not use Java.

      But for many everyday things, Java is great. That is probably why it is so widely used to build huge enterprise software projects that should run for decades;.

      --

      I'll see your senator, and I'll raise you two judges.
  7. The Betrayal by tylikcat · · Score: 2, Insightful

    "...turning on a generation of coders."

    I'm glad to hear someone finally having the courage to admit this. Especially considering how widely it has been adopted as an instructional language and how many young people were betrayed by their institutions and communities at the very start of their programming careers.

    But I'd also like to hear more from the many people who've risen above these challenges and gone on to become developers even so. It may be hard. It may be traumatic. But it's good to remember that it's possible to rise above it.

    1. Re:The Betrayal by Anonymous Coward · · Score: 1

      Hahaha I read it in the 60's/70's sense of the phrase "turn-on" and thought, I'm pretty sure that's the opposite of Java. But I never thought of it the way you've interpreted, I like that better.

    2. Re:The Betrayal by Dunbal · · Score: 1

      and how many young people were betrayed by their institutions and communities at the very start of their programming careers.

      That knowledge of Pascal will last you a lifetime son.

      --
      Seven puppies were harmed during the making of this post.
    3. Re:The Betrayal by tylikcat · · Score: 3, Interesting

      *grin* I weirdly managed to completely miss Pascal. Cut my teeth on Fortran* because it was what my father's grad students were using - though I then picked up Modula2, out of a book written in German, which I didn't speak because my father was convinced it was the Next Big Thing and figured if I learned it I could teach him (thanks, Dad). My undergrad institution was all about Ada ridiculously late, though... Picked up C++ at the beginning of my professional life, back in the mid-nineties, though these days I use more Python than anything else. I've written my share of Java. It wasn't horrible, I was more amazed that it kept being kind of subliminally annoying without being downright awful.

      * Which keeps still being relevant - okay, I'm in the sciences now - though I often deny knowing it. I think I took it off my resume in '96.

    4. Re:The Betrayal by Anonymous Coward · · Score: 1

      I realize this is meant to be a Java bashing session, but I was well served by Java as the instructional language of choice in undergrad (now 15 years ago). I got first hand experience with the pitfalls of Java's build systems, experience appreciating the very practical differences between code living inside an interpreter and static code, and still managed to learn the how to write decent code and structure things efficienctly.

      Some courses were in C, "whatever language you prefer", assembly, ML, but most were in Java. The variety was painful at the time, but adapting to new environments and constraints was quite valuable (especially giving up the comforts of a well-intentioned language for something less considered, as seems to be common with fad-ish domain specific languages these days).

      Java is not perfect, but I doubt the choice of instructional language matters much if the courses are decent.

    5. Re:The Betrayal by tompaulco · · Score: 1

      I have to think Java works well as an instructional language. I learned on Basic on a TRS-80 COCO by myself in 5th grade. I learned C myself reading K&R before college. In College, I picked up Fortran and Pascal. I never had college training in OO. It was around in the form of C++, but hadn't made much inroads in academia yet. I got a student discount on C++ and tried to use it. But basically I ended up using it like C and couldn't understand how to use the OO pieces.
      20 years later, I picked up Java for a project at work. I read through Herbert Schildts Java book and did all the exercises. With the simple examples and descriptions of objects and relationships, it then became very easy to understand Java, but not only that, but after reading this Java book I found myself suddenly understanding how to do Object Oriented Programming in C++ as well. Basically, Java made it easy to understand OOP and made it possible to apply that same understanding to other OO languages.

      --
      If you are not allowed to question your government then the government has answered your question.
    6. Re:The Betrayal by Dunbal · · Score: 1

      While I only code as a hobby, I started with TRS-80's running BASIC (yeah I was the guy hogging the computers on demo at the Radio Shack near you!), did an official BASIC course at my high school before PC's went mainstream. Then I got into ASM, COBOL, Pascal and C, all self taught. After that I got a life.

      But if you think about it languages are just different ways of doing exactly the same thing. If you know how what your code is doing to the machine, then you can program in any language - it's just a case of learning the new syntax. Unfortunately too many people think a language is like some arcane spell where the words have to be said just right or the Computer God gets angry.

      --
      Seven puppies were harmed during the making of this post.
    7. Re:The Betrayal by __aaclcg7560 · · Score: 1

      My school ten years ago couldn't afford to renew the Microsoft site license, so everything was taught in every flavor of Java. I ended up in help desk support. I'm now doing computer security and writing PowerShell scripts to automate routine tasks. I use Python at home. Haven't touched Java since graduating from school.

    8. Re:The Betrayal by Anonymous Coward · · Score: 0

      Univ. of Washington? You took CS211 with Richard Pattis, too?

    9. Re:The Betrayal by tylikcat · · Score: 1

      Mm, yes and no.

      The U of WA was my home institution - but it was also where my father taught, and I didn't take my degree in CS. Partially because so many people had known me since I was cutting my teeth on the department machines when I was five, partly because I wasn't super keen on the curriculum... and I had other interests as well. But then it was the the mid-nineties, and my fiance wasn't big on following me around the world, and so I acquiesced to my destiny and became backend server girl at Microsoft. (Until I was the right combination of vested and bored that I returned to research. I'm now doing Neurobiology, via Computational Biochemistry, which is less profitable but awfully entertaining.) ...but there were courses I would have taken were not Ada a prerequisite.

    10. Re:The Betrayal by tylikcat · · Score: 1

      A research student was just by talking to members of our lab, and this is pretty much the argument I made. (And I wasn't making a Java bashing session, I was making a joke, though the two are not mutually exclusive.)

      I'm not fond of Java, but it's a perfectly serviceable language and I'm not against writing code in it. I think I'm a little suspicious of the instructional language model, just because my observation has been that for most people it's around language three that they start realizing that learning new programming languages isn't hard and that it's not the language per se that's important. (I really realized this when I heard that Python was being widely adopted. I actively like Python - and I'm really dubious about it being a useful instructional language in a classroom setting. Even though I have run a Python club at times.)

  8. The COBOL of the 2000s by Anonymous Coward · · Score: 3, Insightful

    Yeah. When I saw in which direction Java was going, I thought to me: "thanks, I've had COBOL once, Don't need a second serving"

    1. Re:The COBOL of the 2000s by Anonymous Coward · · Score: 0

      A better analogy is PL/I, which was IBM's kitchen sink language that was supposed to replace both FORTRAN and COBOL.

      And it did have some syntax, the problem was that there was so much of it. Design by committee, that couldn't say no to anyone who wanted a pet feature.

      The SAS programming language is derivative of PL/I.

    2. Re:The COBOL of the 2000s by FranTaylor · · Score: 1

      Yeah. When I saw in which direction Java was going, I thought to me: "thanks, I've had COBOL once, Don't need a second serving"

      java has been my meal ticket for over a decade, it puts food in my pantry and a spring in my step.

    3. Re:The COBOL of the 2000s by Anonymous Coward · · Score: 3, Funny

      it puts food in my pantry and a spring in my step.

      Check out the J EE 6, it has a new DI model that's supposed to be better than spring's.

    4. Re:The COBOL of the 2000s by jdschulteis · · Score: 1

      Posting to undo incorrect mod.

    5. Re:The COBOL of the 2000s by Anonymous Coward · · Score: 0

      SAS? Similarly shit is a derivative of food.

  9. Re:I don't know why people still say Java is slow. by etinin · · Score: 4, Insightful

    On a slightly more serious sidenote, it's easy to see Java's popularity dropping, since Google seems to be dumping java for high performance javascript/dart development, as they have already been announcing for Android.
    http://arstechnica.com/civis/v...

    Linus has actually stated it in a way that is frequently seen as toxic. But, while C++ is one of my favourite programming languages, certain language features tend indeed to "rotten" people's brains, just like pre-GIT CVS+derivatives did to source control habits. And I find that Java is actually the perfect representative of that nowadays, not C++ (and even Linus is now commiting patches in C++) I don't know what you guys people but when I have to traverse a tree of 10 folders, and files have 10 lines and exist only for a single abstraction's sake, I kinda feel OOP, though a powerful tool, has been overused. When everything has to be an object just for a paradigm's sake, things can get kinda distorted. One of the greatest programming innovations is, in my opinion, MVC (or even MVVC stuff like Angular) is one of the greatest things that have been getting popular lately. By separating logic from models and views people are encouraged not to create stupid abstractions and use procedural programming where it is adequate and avoid performance losses.

    (proof that torvalds actually uses C++ if anyone hasn't seen that: https://github.com/torvalds/su...)

    --
    "I decided I could write something better than everything out there in two weeks. And I was right." - Linus Torvalds
  10. utter crap language by cpaalman · · Score: 1, Troll

    I have endured java written apps all these years. Insane requirements to keep multiple versions and a most horrible cludge design required when using version specific java based tools from cisco , hp, brocade. Hands down above anything else, java is the number one thing I take out with my time machine.

    1. Re:utter crap language by gatkinso · · Score: 2

      Sounds like your gripe is with Java the platform, not Java the language.

      --
      I am very small, utmostly microscopic.
    2. Re:utter crap language by Anonymous Coward · · Score: 0

      I have a Mac that is a couple of versions behind on the JRE because the updater is complete shit. It always fails. So, it means a complete uninstall and download/reinstall of the JRE and a bunch of other Java shit - according to the 'help' docs on Oracle's site. If it wasn't for my wife's employer using some scheduling software written in Java, I'd rip Java out for good.

      I thought all those Silicon Valley people were supposed to be the best of the best? Or has Java development and maintenance been offshored by Oracle?

    3. Re:utter crap language by gstoddart · · Score: 2, Insightful

      Well, if you only have a nice academic abstraction in a book which is the language ... sure, that's awesome and all.

      And then in the real world the platform, and its many variations, becomes an issue.

      It's been years since I wrote in Java, but we'd get the regular updates of the platform, which may or may not have broken something. You'd get every vendor having their own JVM, or their extensions.

      So you'd write a webapp for one platform and test it, and then someone would cram it into yet another proprietary variant which wasn't compatible. Which usually left the customer screeching that when you listed the platforms you supported, that it didn't work on the one they had which you'd never tested against.

      And don't even get me stared on the shitware which Java wants to install now. Sorry, Oracle, but we don't give a fuck about your stupid Ashole.com toolbar.

      So, yes, maybe in some perfect little bubble which doesn't depend on the platform Java is an awesome language. But in the real world, it seems like many things were a moving target, and that the platform gave you more sources of grief than the language.

      I've lost count of the number of applications I've seen which the vendor basically says "we are compatible with this version of Java, and nothing else".

      In that regards, as much as I like the actual language ... the platform can be a pain in the ass.

      I don't know what it's like now (as I said, haven't directly used it in years). But there was a time when there was so much fragmentation as to make the "write once/run anywhere" a really bad joke.

      --
      Lost at C:>. Found at C.
    4. Re:utter crap language by RabidReindeer · · Score: 2

      The worst offender in the "custom JVM" variant was Microsoft and Visual J++. Which varied so much that Sun sued and won to stop them from peddling it.

      Oracle was another big offender. IIRC they were hung up on Java 1.3 long after its corpse should have rotted away.

      The big-name vendors are like that. They'll warrant their products for one specific platform because they don't want to deal with the cost of being more flexible, and often they'll even bundle their JVM of choice right in with their application.

      Sun didn't jerk around minor releases, though. If a minor release change broke something it either had a bug in it or it had repaired a bug that someone else was exploiting in their applications. And, unfortunately, bug fixes are a major part of almost all language systems, so you cannot single out Java for that.

      Java does port well. I spent years developing Java apps on 32-bit Windows machines to be deployed to 64-bit Sparc machines without any problems. But that's because I didn't get cute and attempt to exploit hardware or OS dependencies. It wasn't like it was that hard to do.

    5. Re:utter crap language by RabidReindeer · · Score: 1

      The operative keyword is "Mac".

      Apple has never been all that supportive of Java. They have their own agenda, and unlike Wintel, it wasn't a big enough market to make Sun/Oracle want to spend time doing the work that Apple didn't want to do.

      Probably doesn't help that Apple has a reputation for being somewhat hostile to developers who want to do things Apple didn't do first.

    6. Re:utter crap language by DickBreath · · Score: 2

      It sounds like your gripe is with a badly run project, organization and practices rather than a programming language.

      --

      I'll see your senator, and I'll raise you two judges.
    7. Re:utter crap language by FranTaylor · · Score: 1

      Apple has never been all that supportive of Java.

      another stinking load of bollocks

      java gets the EXACT SAME SUPPORT and the EXACT SAME LOVE on OSX that it does on linux. I've never run into an instance where a java program would run on linux but not on OSX.

    8. Re:utter crap language by Anonymous Coward · · Score: 0

      "Java does port well. I spent years developing Java apps on 32-bit Windows machines to be deployed to 64-bit Sparc machines without any problems. But that's because I didn't get cute and attempt to exploit hardware or OS dependencies. It wasn't like it was that hard to do."

      Well you have to make sure that they never talk to each other in native, too.

      Because there's no fucking way to make them talk the same binary, because you're not allowed to specify the data size of base units like integer.

      Ignoring platform hardware works as long as you don't have different hardware platforms that the language won't distinguish between.

    9. Re:utter crap language by tompaulco · · Score: 2

      I have a Mac that is a couple of versions behind on the JRE because the updater is complete shit. It always fails. So, it means a complete uninstall and download/reinstall of the JRE and a bunch of other Java shit - according to the 'help' docs on Oracle's site. If it wasn't for my wife's employer using some scheduling software written in Java, I'd rip Java out for good.

      I thought all those Silicon Valley people were supposed to be the best of the best? Or has Java development and maintenance been offshored by Oracle?

      Most of the time the problems I see with Java are not that the JRE update failed, but that the JRE update was successful and now the underlying Java application doesn't work anymore. After all, when we develop an application, we test it on a certain version. If Automatic Updates automatically update your JVMs major version, which has happened in the past, then how can we guarantee it will work? I remember back when Java 7 was just coming out and was chock full of bugs, I kept getting calls from people whose application suddenly stopped working. Well, it was certified on Java 6, and they had allowed Automatic Updates to install Java 7, which the application was not tested on and which we weren't planning on testing on until certain bugs and vulnerabilities were patched. Automatic Updates should never be allowed in production. That includes Firefox and IE automatic updates as well.

      --
      If you are not allowed to question your government then the government has answered your question.
    10. Re:utter crap language by RabidReindeer · · Score: 1

      Maybe it's better now, but not that long ago I recall many an update announcement for Java where the update specifically stated as not being available on Apple.

    11. Re:utter crap language by FranTaylor · · Score: 1

      Maybe it's better now, but not that long ago I recall many an update announcement for Java where the update specifically stated as not being available on Apple.

      java integrates with linux components such as d-bus that are not present on OSX. If they fix a bug in the d-bus interface, you're not going to see an equivalent update for OSX.

    12. Re:utter crap language by Anonymous Coward · · Score: 0

      Java the language sucks dicks for a living.
      It's only when compared to the platform that it seems to be not the worst programming related crap ever released.

    13. Re:utter crap language by gatkinso · · Score: 1

      The title of the post that *I* responded to was "utter crap language."

      Not "utter crap platform", not "utter crap run time".... "utter crap language"... then followed up with a rant about the platform.

      --
      I am very small, utmostly microscopic.
    14. Re:utter crap language by Bob+the+Super+Hamste · · Score: 1

      Java does port well. I spent years developing Java apps on 32-bit Windows machines to be deployed to 64-bit Sparc machines without any problems. But that's because I didn't get cute and attempt to exploit hardware or OS dependencies. It wasn't like it was that hard to do.

      Sadly I have had the opposite experience but then the software that I work with expects to interact with other software and resources used by other software. Java is fine if it exist in it's own contained little world and seems to port fairly easily but once you step outside of that world it becomes a pain in the ass.

      --
      Time to offend someone
    15. Re:utter crap language by angel'o'sphere · · Score: 1

      Originally Java was supported by Apple, Steve Jobs once said he wants that Macs are "the best Java platform".

      However around Java 1.5 he changed his opinion and support was always a bit behind.

      Since Oracle bought Sun, Java is on Macs on par with anything else.

      No idea what you are complaining about.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    16. Re:utter crap language by Anonymous Coward · · Score: 0

      The Java folks, including Gosling where and are POSERS.

      The whole idea of "huge standard library" is the idiot idea of marketers, not of technologists. The POSIX API enables rock-solid, portable programs, BECAUSE it is minimalist. The Java posers never got their crapola bug-free, because they already did some new kind of posing in reflection or some other sexy but non-child-bearing effort.

      By now Java is a 45-year old wife who dresses like a 17 year old. If you do not come to close, the bad breath does not reach your nose. Also, she needs 7 expensive drugs to treat for the two variants of AIDS which come in through "Java Web Start".

      Touch her with a double rubber only.

    17. Re:utter crap language by RabidReindeer · · Score: 1

      I'm skeptical about that assertion. Windows doesn't have d-bus either. A d-bus interface doesn't jibe with "write once/run anywhere", so I'm doubtful that the standard JVM would have such a thing in it. We had enough trouble convincing Sun that if there were OS's that didn't support environment variables that the degenerate case of an apparently empty environment was compatible.

  11. No programs by Anonymous Coward · · Score: 0, Interesting

    Java sucks. Few significant programs on any Linux or BSD system are written in it. The whole byte code thing is bazaar. C++ is the only comparable language. It is a shame the world doesn't pay more attention to Scheme.

    1. Re:No programs by FranTaylor · · Score: 1

      It is a shame the world doesn't pay more attention to Scheme.

      scheme is indeed a fun language, but there are vanishingly few programmers out there who can wrap their heads around the "call-with-current-continuation" mechanism.

    2. Re:No programs by gangien · · Score: 1

      Java the language/platform may suck. Just, it sucks less when compared to other solutions.

  12. language is OK, programmers are terrible by Anonymous Coward · · Score: 5, Insightful

    I don't have any philosophical issues with Java, but the "simplicity" of it has led to software vendors thinking they can hire simple people to write mission-critical software, with terrible results.

    At work, we have several pieces of server software written in Java, and they are just awful. The RSA server, an auth server from Cisco, and others. They crash when the wind blows the wrong way. They bloat and need to be restarted every few months. One executable starts multiple network services on multiple ports. They rely on using dozens of threads with dozens of queues, and there is no way to inspect them. Logs show high volumes of Java call traces and error messages, even when the software is running fine. Sometimes components just stop working, we call the vendor, and the vendor instructs us to restart and/or reboot.

    With the RSA server, we had a massive outage one time because an admin kicked off a few reports. It turns out the reports hung a few threads, and took down the service for the whole enterprise.

    The Cisco server has the same problems: dozens (hundreds?) of threads with dozens of queues, and the synchronization among the threads just doesn't work 10-20% of the time.

    It's not just these servers. In a previous role, we had some Java middleware that translated DIAMETER RADIUS in a service provider setting, and that was it. That software blew up every month or two, and we had to fail the service open for all our customers.

    Terrible, flaky, unreliable software. Again, I think it's probably not the language, it's the shitty, shitty programmers.

    But, hey, it's job security for me!

    1. Re:language is OK, programmers are terrible by DickBreath · · Score: 4, Informative

      Don't blame Java for that. It is the fault of many managers. They want cheap, interchangeable droids to build their applications. Run them hard, burn them out, throw them away like a used spark plug. They're cheap to replace. So those managers want a language all these droids understand. So not only do you get experts, but hoards of below average drones who's main skill is interviewing and taking certification exams. (aka 'certified idiots')

      Any programming language could have stumbled into that phenomena. It just happened to be Java. That doesn't make Java itself bad. If anything, the huge community of wealthy enterprise Java users has benefited the Java ecosystem tremendously.

      The platform itself has its major strengths. For just one example, in 2012, Twitter switched from Ruby to Java because Java could scale. You need major scalability when you handle a billion tweets per day and must route each of them to many destinations and platforms. It doesn't matter how much cpu / memory the platform uses, it matters that you can scale it linearly by just adding more boxes. Java already has a lot of ecosystem and infrastructure that enables that kind of scalability. You can google for twitter's 2012 switch from Ruby to Java, and they also have (last time I looked a year or so ago) a lengthy YouTube video presentation discussing the benefits of the change after the fact.

      --

      I'll see your senator, and I'll raise you two judges.
    2. Re:language is OK, programmers are terrible by RabidReindeer · · Score: 2

      Crap programmers are cheap and plentiful and until customers demand the same levels of reliability from software that we routinely expect from hardware, crap software is what we're going to get and the software vendors are going to laugh at us all the way to the bank.

      You can program crap in any language, of course, but better Java than a late-binding scripting language. At least in Java a certain percentage of the bugs get winnowed out at compile time. Which is why scripting languages are the "in" thing. If you don't have to fix errors at compile time, you get "done" quicker and you're "more productive".

    3. Re: language is OK, programmers are terrible by Anonymous Coward · · Score: 0

      My impression too. 'Simple' it is not but it looks like it is what makes people make serious mistakes. They have no clue about inner working of the system including gc and get surprised when frequent gc scans affect response times etc. You can go on with examples for a llng time. Funny thing c++ has exactly the opposite. Hordes of geniuses making a royal mess by being smart and not talking to lowlives in the team. Worked in both worlds and they are differently horrible.

    4. Re:language is OK, programmers are terrible by Anonymous Coward · · Score: 0

      Dude, I've seen Java mission critical applications that have hundreds of threads. I've seen an almighty monster of a Java app that takes over an hour to start and consumes 1.5TB of virtual memory before it does anything. It's owners and developers just sit there in their "bouncy Java castle" with a look that says "it's normal"

      Life goes on.

    5. Re:language is OK, programmers are terrible by tompaulco · · Score: 1

      That's not Java. It's the corporate mentality of replacing older experienced programmers with newer cheaper programmers or offshoring. You get service applications that have to fire up a remote desktop session so it can write messages to the screen (What!). You get "uncaught exception". You get programs that will fail one time and work the next on the same input. What the heck, do they have a random number generator in there? I have seen this with Ruby, Python, C++, on and on.

      --
      If you are not allowed to question your government then the government has answered your question.
    6. Re:language is OK, programmers are terrible by steelfood · · Score: 3, Insightful

      Any programming language could have stumbled into that phenomena. It just happened to be Java.

      If you threw a bunch of shitty programmers at something simple but low-level like C or complicated but high level like Haskell, these same programmers would turn out software that would completely fail to work. Java, by protecting the programmer from the internals of a system (memory management, pointer vs. value etc.), yet still being simple to write in, lowered the bar significantly for entry into programming as a profession. Anybody can write in Java because it's procedural and easy to think in, and most of the heavy lifting is done for them and it's a matter of stringing together the right libraries.

      You're right that it could've been another language besides Java, but said language would've had to have had the same intrinsic qualities as Java. I guess it could be worse and the defacto industry standard language could've gone to C#.

      It's both good and bad. As programmers, it makes our day-to-day job of writing and maintaining software easier. It also makes being a programmer easier, which is bad because shitty programmers will turn out shitty software, and will do it for cheap. It devalues our profession precisely because managers know they can hire shitty programmers that will churn out a working product. And by the time any maintenance is needed on it, neither they nor the original programmers would be around to deal with the mess, so it doesn't matter.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    7. Re:language is OK, programmers are terrible by Anonymous Coward · · Score: 0

      Well, there are companies who know the difference between cheap and cost-effective. There are also lots of shitty cars around and some people buy Mercedes because they value quality over cheapness. Same with Apple products - people are willing to pay top dollar for excellence.

      So, the glass is half full.

  13. Java programmers? - don't make me laugh by Anonymous Coward · · Score: 0, Insightful

    I've found Java developers to be the most annoying people to work with, ever. Talk about ADD!! Must be because they're mostly millennials and don't have the patience to sit back and think about a problem opting instead to download dozens of third party components, in a heartbeat, then slapping the bloody mess together which gives then endless opportunities for refactoring. Nothing like coming in the next morning with to a huge list of changes to a system that was working but now all the other dependent components have to be reworked because someone discovered the refactor button and couldn't resist staying up all night.

    They thrive like bacteria in places that have weak or non existent development practices like code reviews - they especially love Agile (cough, vomit) development for obvious reason.

    Idiots all.

    1. Re:Java programmers? - don't make me laugh by Anonymous Coward · · Score: 1

      I remember having a Java developer rip out a three line loop I wrote and replacing it with some 2MB Apache Commons library so that we weren't "reinventing the wheel."

      My favorite thing about Java developers is Maven, otherwise known as the "let's download random code from all over the Internet and just run it without bothering to verify it in any form!" tool.

    2. Re:Java programmers? - don't make me laugh by Anonymous Coward · · Score: 0

      I work for a large bank. When Maven was shutdown because the bank required that any library built into the banks applications needs to be verified and audited, you should have heard the screams of horror from the Java camp.

      Yes folks, your money and investments are mostly passed through code that some idiot downloaded from the internet without a moments thought.

      Java is pervasive in finance/banking. Considering how applications are developed with zero to no thought, It's no wonder Java apps here are gigantic bloated monstrosities that consume all the resources of even the biggest multicore servers. There are vendors laughing all the way to the bank because they sell custom jvm's "that resolve performance issues" to the idiots that chose Java in the first place.

    3. Re:Java programmers? - don't make me laugh by allcoolnameswheretak · · Score: 0

      You are the programming language discriminating and generalizing equivalent of a racist.

    4. Re:Java programmers? - don't make me laugh by Anonymous Coward · · Score: 0

      You are the programming language discriminating and generalizing equivalent of a racist.

      Boo Hoo - did someone close your copy of Eclipse?

    5. Re:Java programmers? - don't make me laugh by DickBreath · · Score: 1

      You forgot: . . . and not check the licensing conditions of all those 3rd party packages.

      I have not switched to Maven . . . so far.

      But your 'three line loop' example is NOT a Java problem. That same kind of stupidity transcends languages, platforms and tools, and often opens up career paths into management.

      --

      I'll see your senator, and I'll raise you two judges.
    6. Re:Java programmers? - don't make me laugh by RabidReindeer · · Score: 2

      Actually, Maven is the exact opposite of "let's download random code".

      One of Maven's primary virtues is that it allows you to pull specific versions of the various products to produce a consistent result.

      Unless, of course, some idiot substitutes "grab anything" for version numbers in the POM.

    7. Re:Java programmers? - don't make me laugh by DickBreath · · Score: 1

      Please don't assume that bad developers and practices are intrinsically tied to a language or platform. As I said in this same thread, that kind of stupidity transcends languages. :-)

      --

      I'll see your senator, and I'll raise you two judges.
    8. Re:Java programmers? - don't make me laugh by Anonymous Coward · · Score: 0

      Please don't assume that bad developers and practices are intrinsically tied to a language or platform. As I said in this same thread, that kind of stupidity transcends languages. :-)

      Agree. I was just solely talking about the Java dev's I've had the misfortune of working with. I don't do Java - I've just had to hook up my systems to different Java application stacks and the experience has always been telling.

    9. Re:Java programmers? - don't make me laugh by FranTaylor · · Score: 1

      I can remember lots of times when people have done stupid things in SQL, XML, C, C++, football, cooking, mystery novels. etc.

      That does not mean that any of those things are bad.

    10. Re:Java programmers? - don't make me laugh by tompaulco · · Score: 3, Interesting

      I have seen what you are talking about, but there is no reason why java programming should have to go hand in hand with utter dependence on third party libraries. Where I used to work, there were two programming departments. We both did Java, but the other department was dead set on spending days and weeks researching third party solutions for simple problems. Then they would spend trying to learn the interface. Then inevitably, if there was a problem, it always seemed to be in the third part code. Well, of course, if you need to add two plus two, and you download a Cray simulator library to accomplish this, then you have to instantiate the library, and seed it with the two numbers, and start the thread that does the calculation, then receive the even that it is done, then retrieve the data, well you see where this is going.
      I am not in favor of reinventing the wheel, but if it is going to take less time for me to write something than to research third party solutions and figure out how to integrate to them, and I can control the code, then I will be reinventing that wheel rather than download the global transportation library so I can use their wheel.

      --
      If you are not allowed to question your government then the government has answered your question.
    11. Re:Java programmers? - don't make me laugh by FranTaylor · · Score: 1

      You forgot: . . . and not check the licensing conditions of all those 3rd party packages.

      so java is the only language which has this problem?

    12. Re:Java programmers? - don't make me laugh by Anonymous Coward · · Score: 0

      I remember having a Java developer rip out a three line loop I wrote and replacing it with some 2MB Apache Commons library so that we weren't "reinventing the wheel."

      My favorite thing about Java developers is Maven, otherwise known as the "let's download random code from all over the Internet and just run it without bothering to verify it in any form!" tool.

      Don't forget to autowire it with Spring!

    13. Re:Java programmers? - don't make me laugh by Anonymous Coward · · Score: 0

      Your problem is not Java itself, is the millenial "programmers". As example I an a Java programmer and it is very unusual for me to download third-party libraries, when all I need is a specific function that I can do myself (and usually better than that provided by the library). The Hibernate library mess for example? Bah, I created a better one for myself (similar idea but faster and way simpler).

    14. Re:Java programmers? - don't make me laugh by Anonymous Coward · · Score: 0

      No, Maven is the ultimate "download random code" tool.

      When you install Maven, you might be tricked into thinking you're installing a build tool. You aren't. You're installing a build tool installer.

      When you go to compile a project, the first thing you'll see is:

      Downloading: h ttp://repo.maven.apache.org/maven2/...

      WTF? Yeah, it's downloading the actual JARs to do $thing, and it's doing it via HTTP. It's downloading AND THEN EXECUTING some random JAR off the Internet without doing any sort of signature checking or anything. Via HTTP. Just blindly downloading.

      It's the equivalent of those tools that tell you to install them using "curl h ttp://i.promise.http.is.safe.com/pwnmycomputer.sh | bash".

      It's the dumbest, stupidest thing possible.

      But you're right, in addition to that, the POM tightly couples each random download to a specific version, to guarantee that if version 1.2.3 has a horrible security bug that 1.2.4 fixes, you won't be upgrading to 1.2.4 until you EXPLICITLY upgrade to 1.2.4. It's the dumbest system possible.

      (Spaces in URLs because apparently there's no way to disable Slashdot's autolinker in the case you ever want to post a URL that SHOULDN'T BE A GODDAMNED LINK, YOU ASSHOLES.)

    15. Re:Java programmers? - don't make me laugh by Anonymous Coward · · Score: 0

      Well you sound like one, "refactoring" doesn't mean all your other components have to be reworked, that would be "rewriting"

    16. Re:Java programmers? - don't make me laugh by jblues · · Score: 1

      My favorite thing about Java developers is Maven, otherwise known as the "let's download random code from all over the Internet and just run it without bothering to verify it in any form!" tool.

      I'm not super fond of Maven either. Gradle is more popular or simply Ant+Ivy has always been an alternative. But whichever dependency manager is used, the following features are available:

      • * Libraries check-summed against a hash to ensure the distribution is valid
      • * Its a common case that two high level pieces of code use the same underlying library. Ensure that the correct version, compatible with both is pulled down.
      • * Make it a trivial task to upgrade a library and its dependencies to a new version, test this and optionally roll-back to a known working version.
      • * Just because a library is 2MB, if you only use 3 lines from it, that is the only part that will be loaded.

      This provides an eco-system of libraries rather than having to go to a single vendor who will take the responsibility of integrating and providing a certified system of libraries to use. The benefit is increased pace of innovation, while the drawback is choice overload, and the same pros and cons exist for other platforms: Gnu Autotools dependency is super powerful, but takes a while to learn. There's virtualenv for Python, or RVM for Ruby. For Nugget, .NET came late, since Microsoft was able to watch innovation, including in other languages, and cherry pick the best so it was all there from a single vendor.

      --
      If it acquires resources on instantiation like a duck, then its a shared_ptr<Duck>
  14. Boilerplate by Anonymous Coward · · Score: 0

    public class Java {
    public static void main(String[] args) {
    System.out.println("Hello World");
    }
    }

  15. Clearly by Anonymous Coward · · Score: 0

    Clearly it called method programming.change(system.time.duration.forever)

  16. Easier to learn != easier to use by Simply+Curious · · Score: 2, Insightful

    I've tried to get into Java on multiple occasions. Each time, I get thrown back by the amount of boilerplate necessary, and by missing features.

    - No operator overloading. As a result, every container type is accessed differently. Arrays use []. Lists use At(). Hashmaps use Get(). Matrices, vectors, and complex numbers are absurdly verbose, because I cannot overload addition and multiplication.
    - Type erasure for generics. As a result, I cannot define different function overloads for func(List) and func(List).
    - Lack of first class functions. As a result, callbacks required the absurdity of implementing the Callable interface. This has been improved recently with the addition of lambda statements.
    - Lack of properties. As a result, I cannot expose anything as public, because I might want to add additional code at some point in the future. Therefore, I must have an explosion of getters/setters.

    I like the idea of having a sandboxed virtual machine. I like the idea of having a single version of the bytecode that can run anywhere. I just can't stand the language.

    1. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 1

      - Operator overloading is Evil (Integer + Matrix vs Matris + Integer should have different results writing matrix.multiply(integer) is not big deal)
      - You can decide inside function
      - Lambda
      - Properties get too complicated after some time in real projects -> generated code (all IDEs, generators, ...)

    2. Re:Easier to learn != easier to use by peppepz · · Score: 5, Informative
      The basic idea is that in Java programs, you can understand what's going on by looking at a fragment of code. Therefore the code is easy to read and to maintain. With syntactic sugar such as properties, operator overload and closures, you can't know which statements will cause side effects without inspecting upstream definitions.

      Type erasure, on the other hand, is pure evil - to me, it's the representation of what happens when a pragmatic language ends up into the hands of computer scientists.

      By the way, in Java all lists have the get() method with no exceptions (this includes Lists, HashMaps, Vectors) and all collections have the iterator() method with no exceptions. The At() method doesn't exist.

    3. Re:Easier to learn != easier to use by should_be_linear · · Score: 2

      For each one of you wanting operator overloading, there are 1000 other programmers dealing with large legacy codebases, happy Java DO NOT support operator overloading, functions outside classes, classes placed in different directory then they supposed to be, generics to the point of Obfuscated Code Contest everywhere, all the time.

      --
      839*929
    4. Re:Easier to learn != easier to use by Wraithlyn · · Score: 2

      Yeah my Java days are long behind me now, but the Collections framework is a thing of beauty. It's one of the first things that always comes to mind when thinking of a really well designed API.

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    5. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 1

      1. This is, in every case except math, a good thing.
      2. This is an unfortunate side effect of pre java 5 not having generics at all. They wanted to maintain backwards compatibility. However, you're desire to override based on the declared type of the list's contents is stupid and evil, so the fact they prevent you from doing that is a good thing. Different algorithms should not be named the same. The only real issue with this is, you can't introspect on T and need to pass in a Class if you want to get T's type at runtime. This is an issue, but not a huge one, just a mildly annoying one.
      3. Like every single person, you conflate having to type a lot with not having a thing. Anonymous implementation of an interface literally solves all the issues of "lack of first class functions" except verbosity. If you hate verbosity, java is not the language for you. It was designed to be verbose instead of clever to facilitate code readability.
      4. Your IDE generates these for you. All the java tools in use understand the beans conventions. Why do idiots keep seizing on this as the one thing from C# they think Java needs? Hint: it doesn't because it already has this convention. I'd rather see people bitch about no delegates or lack of LINQ-like system.

    6. Re:Easier to learn != easier to use by DickBreath · · Score: 2

      While operator overloading can be used for good, it is far more often used to create huge messes. It makes the simplest expressions impossible to understand locally because now, everywhere there is an operator, you cannot be sure what is actually going on. IMO, operator overloading is evil, despite the good intentions.

      I hear you about type erasure for generics.

      Lambda statements in Java are a recent addition. But I hear you about first class functions. There are a lot of other languages that run on the JVM platform and are interoperable with Java. And many of these have first class functions. JavaScript (Nashorn), Clojure (a modern lisp with concurrency and immutable structures), Groovy, Scala and many others. And the interoperability is very real -- because they all pass around the very same underlying types and objects from the underlying runtime system.

      I hear you about lack of properties and the annoyance of getters/setters. IDEs help, but its not the same thing. (like kissing your boyfriend through a veil)

      --

      I'll see your senator, and I'll raise you two judges.
    7. Re:Easier to learn != easier to use by Simply+Curious · · Score: 3, Insightful

      - I would say that operator overloading in some cases is evil. In others, it is the natural thing to do. For example, linear interpolation between two vectors is much easier to read as "s*v1 + (1-s)*v2" than as "v1.multiply(s).add(v2.multiply(1-s))".
      - Yes, but by no means should I need to. In C++, I could pass all objects as void* and then include a tag to show which type it represents. I don't do so, because that is something that the compiler can handle.
      - Yes, which is why I mentioned it. The situation is better, but only in recent versions of java.
      - Generated code gets too complicated, because you need to look at each function and determine whether it is still identical to the generated version, or if it has been modified. If code is present, it should be present as the result of a reasonable decision.

    8. Re:Easier to learn != easier to use by Simply+Curious · · Score: 1

      I feel that that is true about any well-written code, not a property of the language. If I see a named function, I assume that it does something similar to its name. If I see addition, I assume that it does something similar to addition. If I am replacing a possibly-having-side-effects method call with a possibly-having-side-effects operator, I don't see why it would increase confusion. Heck, C++ has the "const" keyword, which makes it even easier to specify that a function has no side effects.

      Ah, I didn't know that about get() being universal. Thank you. I was misremembering this stackoverflow post, which shows how you need to use either the subscript operator, the get() method, or the charAt() method, depending on whether your object is an array, a list, or a string.

    9. Re:Easier to learn != easier to use by Simply+Curious · · Score: 2

      1. Which is why it shouldn't be used outside of mathematical contexts. I tend to write mathematical code. It is therefore a hassle.
      2. Suppose I wanted to write code that passes a Java list into a Lua function. Then it would be perfectly reasonable to have "Pass(List int_list)" and "Pass(List str_list)", and the type of the list's contents is quite relevant.
      3. Yeah, Java not being the language for me is the vibe that I get. I would disagree on your statement regarding verbosity and readability. A little verbosity is a good thing for readability. A great deal of verbosity is not. There is a reason why people dislike reading legalese.
      4. Any code that the IDE generates is code that could instead by generated by the compiler. This reduces the amount of visual noise, and means that I don't need to read each function definition to figure out if one of them has changed from the default.

    10. Re:Easier to learn != easier to use by Kunta+Kinte · · Score: 2

      I'd rather see people bitch about no delegates or lack of LINQ-like system.

      I agree with your other points. But Java doesn't have a single LINQ-like system. But has many to chose from...

      QueryDSL and jOOQ has most of the Linq-to-Object features.

      Together with Java Persistence API and it's type-safe Criteria Query

      --
      Based on upvotes, Ageism is the only "-ism" Slashdotters care about and think isn't SJW
    11. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0

      The difference between wrongly named methods and strange operator overloads is the wrongly named methods are much easier for realize you have a programmer problem.

      And you are partially right about the different ways needed to access arrays, lists, etc. Your understanding is just a few major versions or so behind the times.

    12. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0

      What I love about Ruby in contrast to Java is it's consistent and simple interface for dealing collections, objects, getters and setters, and iteration. It's a beautiful language for the most part. Java always felt verbose and inconsistent. I never understood why people like verbose languages.

    13. Re:Easier to learn != easier to use by steelfood · · Score: 1

      For the mass of getters and setters, it's a matter of having a good IDE that'll auto-generate those for you. Remember that discussion on IDE's? Good ones do more than autocomplete. They also generate boilerplate.

      Now, it's certainly true that needing all this boilerplate completely suck, and a good IDE only makes it suck just a bit less.

      Then again, you can just make everything public. And, you can even make everything static. It's not like you're forced into the OO paradigm.

      I'll see your type erasure and raise you operator overloading. Operator overloading is bad. Really bad. Javascript bad. Java's one instance of an overloaded operator, the '+' operator, is the one instance of really bad language design. So are the arrays, which are a hybrid of primitive and object.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    14. Re:Easier to learn != easier to use by Pentagram · · Score: 2

      - No operator overloading. As a result, every container type is accessed differently. Arrays use []. Lists use At(). Hashmaps use Get(). Matrices, vectors, and complex numbers are absurdly verbose, because I cannot overload addition and multiplication.

      Arrays are rarely used in Java these days. All the collections API (Bloch's work on this has made it one of the few elegant parts of Java) use .get(), which is perfectly reasonable. If you're doing extensive work with matrices, vectors, etc. then Java is not an ideal choice of language, but 95% of programming tasks don't need it. Java isn't aimed at developing low-level game engines or scientific modelling.

      - Type erasure for generics. As a result, I cannot define different function overloads for func(List) and func(List).

      At least Java has generics. Unlike some other popular languages I could name... type erasure is a genuine annoyance but it's usually not too painful to work around.

      - Lack of first class functions. As a result, callbacks required the absurdity of implementing the Callable interface. This has been improved recently with the addition of lambda statements.

      Java is horribly verbose when you need to pass functions around but the new syntactic sugar makes functional programming a lot more viable. Even without it though you can stick to a strictly OO approach. This can make for clunky programming but does have the advantage of being boringly predictable in huge codebases being worked on by lots of coders of varying ability.

      - Lack of properties. As a result, I cannot expose anything as public, because I might want to add additional code at some point in the future. Therefore, I must have an explosion of getters/setters.

      It's not pretty, but this is a good excuse to make everything as immutable as possible and cut down on data access objects.

      I like the idea of having a sandboxed virtual machine. I like the idea of having a single version of the bytecode that can run anywhere. I just can't stand the language.

      Java isn't a lot of fun to code in most of the time but it's pretty effective at what it does.

    15. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0

      You would like C#. All of those are fixed in C#.

    16. Re:Easier to learn != easier to use by Greyfox · · Score: 1
      I keep having to support jackasses who want to use it for system programming because it's "Write once and run anywhere!" To be fair it was never designed to be a system level programming language, but that really doesn't help you any when someone drops some horrible abomination in your lap and asks you to support it for the next 5 years.

      The deeper I get into OO, the more I start to understand that getters and setters are just as bad as exposing members of your object to the public. If you have to expose the working data of your objects that regularly, you're not working at the correct level of abstraction. A lot of the coding style I see in java is geared toward "I'll need this in the future" or "I have no idea what I'm going to need in the future, so I'll make this bit so generic that it can do anything." Both of these habits are incredibly bad practices that have been superseded by refactoring. A lot of inexperienced programmers think that once they've designed and coded some shit, it's carved in stone forever after that. I've seen countless cases of companies wringing their hands and working around problems in code that can be fixed with trivial changes to program design and adjustments to half a dozen or so objects.

      I have much the same problem with introspection as I do with getters and setters. People say "Oh we have to use introspection because someone might want to write something new and drop it in there and we don't know how it'll behave!" Again, that's limiting your current design because you don't know what will happen in the future. Design a solid and maintainable interface NOW and if you need to change it in the future, change it in the future. Don't build some twisty maze of introspection that delegates any real work 10 objects away from the functions that initiate it just because someone in the future might want to write something else! And quite frankly, no one EVER WILL, because that would require knowing implementation-level details of the ball of shit you rolled up to support that.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    17. Re:Easier to learn != easier to use by leonbloy · · Score: 1

      Lists use At(). Hashmaps use Get().

      Uh... what? https://docs.oracle.com/javase...

    18. Re:Easier to learn != easier to use by roman_mir · · Score: 0

      - No operator overloading.

      - good.

      - Type erasure for generics

      - good.

      - Lack of first class functions.

      - good

      - Lack of properties.

      - irrelevant.

      In fact the syntactic sugar added starting with Java 5 is mostly bad. Generics - bad, horrible code. 'for (blah: type)' - bad, no Iterator access. Autoboxing - horrible, gigantic mistake, etc.

      But what do I know, I just end up releasing one working project after another by hiring novices and training them in a month to a level they become to projects.

    19. Re:Easier to learn != easier to use by rhodium_mir · · Score: 1

      I hope you pay them in intrinsically valUable RHODIUM rather than inflationary theft paper child butt rape fiat money, or worse yet, something as worthless as gold.

      --
      You can't spell "oneiromancy" without "roman".
    20. Re:Easier to learn != easier to use by DaChesserCat · · Score: 1

      - No operator overloading. As a result, every container type is accessed differently. Arrays use []. Lists use At(). Hashmaps use Get(). Matrices, vectors, and complex numbers are absurdly verbose, because I cannot overload addition and multiplication.

      I honestly don't miss that. Probably because I've seen it misused/abused too many times. And, quite frankly, the "lasagna code" aspect of OOP (this class is built from that class which is built from that class; which one actually implements that method?) is bad enough without operator overloading.

      - Lack of first class functions. As a result, callbacks required the absurdity of implementing the Callable interface. This has been improved recently with the addition of lambda statements.

      That used to be my favorite gripe. Then I discovered abstract classes, where some of the methods are actual code and some of them are, to borrow C++ parlance, virtual. I quickly discovered that I could implement an instance of an abstract class, plug in a method definition inline (not quite the same, but similar enough) and get on with life.

      - Lack of properties. As a result, I cannot expose anything as public, because I might want to add additional code at some point in the future. Therefore, I must have an explosion of getters/setters.

      You can make properties public. It's considered bad practice, but you can do it. And, instead of creating 101 boilerplate getters/setters, add Lombok. Makes it a little closer to CLOS, where the system can auto-create getters/setters, so long as they're the typical, boring ones you expect.

      I find it horribly limiting. But I'm finding tips and tricks along the way which make it slightly more bearable. In the meantime, it's been putting a roof over my head, clothes on my back and food on my table for most of a decade. Java is a "paycheck language" (something people learn SOLELY because it can provide a paycheck, not because they like it or find it exciting; see COBOL and RPG decades ago). So long as you recognize that, it can be tolerable, if never exciting.

      --
      ... by the Dew of Mountains the thoughts acquire speed, the hands acquire shakes, the shakes become a warning
    21. Re:Easier to learn != easier to use by angel'o'sphere · · Score: 1

      Try Groovy/Scala, both have operator overloading.

      I also would prefer if Java would have been more C++ like ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    22. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0

      OMG this screwdriver is soooo bad at hammering nails!

      That's you. That's what you sound like.

    23. Re:Easier to learn != easier to use by david_thornley · · Score: 1

      Operator overloading is very useful, when done properly. It can make things much easier to read and write. It's really easy to abuse, and then it can make things unreadable. In general, it takes a lot more knowledge and experience to use C++ safely than to use Java safely, but it's possible to express things better. (C++ has become much easier to use properly with C++11 and C++14 features, also.) One of Stroustrup's design principles was to keep features on the basis of how they could be used, not how they could be abused.

      I really, really can't get excited about automatic getters and setters. Getters and setters are bad for encapsulation and promote unhealthy dependence on internals. I have no problems about writing them when I need them. (I do like the C# feature that allows me to have a virtual variable that has programming logic behind it.)

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    24. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0

      No operator overloading. As a result, every container type is accessed differently. Arrays use []. Lists use At(). Hashmaps use Get(). Matrices, vectors, and complex numbers are absurdly verbose, because I cannot overload addition and multiplication.

      I've been using java for a long time but I almost forgot lists had an "at" method (elementAt). I think what is important here is the use of abstractions like Iterable which allow you to treat all this different data types in a similar manner, and it is what I use most of the time. Yes, you can even iterate on a map's entry set, processing a pair every time.

      Type erasure for generics. As a result, I cannot define different function overloads for func(List) and func(List).

      This one is a little annoyance, although I almost never feel the need for such a method overload.

      Lack of properties. As a result, I cannot expose anything as public, because I might want to add additional code at some point in the future. Therefore, I must have an explosion of getters/setters.

      Why is this a problem? The language is simple and easy here: you have variables and methods (and with different syntax). No need for special constructs. And you've got the IDE of your choice to create your accessor methods with a simple shortcut. I can't remember the last time I coded a getter method myself.

      But all this is very subjective. In general it happens every time you try to learn a new thing: there's something you miss from your favourite language. But when you're into a language you usually get also some habits and common idioms related to it. Following them makes you feel quite comfortable and productive. Of course a programmer coming from lisp or objective-c would have a hard time trying to use java in the same way he used that language.

    25. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0

      I hear you about lack of properties and the annoyance of getters/setters. IDEs help, but its not the same thing. (like kissing your boyfriend through a veil)

      Why is it not the same thing? I just prefer this boyfriend.setVeil(true) rather than this confusing syntax of boyfriend.Veil = false which resembles a public property but it's calling a method and may also carry some extra logic with it.

      Of course all this would be crap if you had to write this methods yourself, but that's why we use IDEs for!

    26. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0

      You are way too rational for Java. Don't you want to get yourself a Delphi job ?

    27. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0


      res = mat1.add(mat2);
      res = mat1 + mat2;

      >you can understand what's going on by looking at a fragment of code [ ..] you can't know which statements will cause side effects without inspecting upstream definitions.
      > overload

      I need inspecting upstream definitions for both but the second is by far more readable and maintainable in the long run.

    28. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0

      - Yes, but by no means should I need to. In C++, I could pass all objects as void* and then include a tag to show which type it represents. I don't do so, because that is something that the compiler can handle.

      I find this inconveniences me for about 10 minutes a year. I honestly spend more time worrying about how to fold toilet paper. Is this really a major problem for you?

    29. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0

      FYI: According to here:

      // Imprecise method which does not guarantee v = v1 when t = 1,
      // due to floating-point arithmetic error.
      float lerp(float v0, float v1, float t) {
        return v0 + t*(v1-v0);
      }
       
      // Precise method which guarantees v = v1 when t = 1.
      float lerp(float v0, float v1, float t) {
        return (1-t)*v0 + t*v1;
      }

      Now, suppose you hard-coded s*v1 + (1-s)*v2 everywhere and then found out about the error two days before release. Now you're basically screwed, because you have to hope you can find/replace all of the lerps. Better hope you used the same idiom every time, and better hope that your version of grep supports multi-line matching with backtracking.

      On the other hand, if you've been around the block a few times, you know it's better to just write v3 = lerp(v1, v2, s). Now when the problem blows up in your face, you can go change it in exactly one place. Bonus: Your code is much more readable, and there's less chance that you'll commit a typo.

      IMHO, this is a very strong argument against operator overloading.

    30. Re:Easier to learn != easier to use by peppepz · · Score: 1
      You don't need to inspect upstream definitions for the second line when there's no operator overloading involved, it can only be an addition between two numbers or a string concatenation.

      Also consider the following example. What does this do?
      c = a * b;
      Is it a vector product? Is it a scalar product? Is it a scalar multiplication? I need to look at the types of a, b and c to figure out. A method name in place of a single character could tell me more.

    31. Re:Easier to learn != easier to use by Raenex · · Score: 1

      Type erasure, on the other hand, is pure evil - to me, it's the representation of what happens when a pragmatic language ends up into the hands of computer scientists.

      Type erasure was the pragmatic way to add generics to Java by ensuring backwards compatibility in the byte code. You'll find that computer language academics almost universally despise type erasure.

    32. Re:Easier to learn != easier to use by Anonymous Coward · · Score: 0

      I don't think the VM is sandboxed. Only if you are writing an Applet (Don't do that!)

    33. Re:Easier to learn != easier to use by peppepz · · Score: 1
      To me, the pragmatic way to add generics to Java while ensuring backwards compatibility would have been to write a new collections library using reified generics, leaving the old collections library ungenerified for source and binary compatibility with old code. That's what MS did with .NET. It's certainly much less elegant because you can't retrofit the whole API with generics as Sun was able to do, but I don't hear many complaints from .NET programmers about this problem nowadays.

      Instead, they chose the more sophisticated approach of type erasure - which added a lot of complexity, limitations, and even introduced the concept of compile-time warnings in the Java language - not because of backwards compatibility (adding new kinds of bytecode to the JVM is OK and it happens occasionally), but because they wanted indefinite interoperability between old code (which would see the collection objects “raw”) and new code (which would see the very same objects “generified”).

      Now academics universally despise type erasure, but back then at least half of them thought that it was a good idea and you can still see it today if you search the web for their blog posts of the time, where they explained the tricks that they used to overcome the limitations of type erasure and why type erasure wasn't so bad after all.

    34. Re:Easier to learn != easier to use by Raenex · · Score: 1

      There's a lot to be said for not having to completely replace the API and backwards compatibility. That's a pragmatic choice, not a "computer scientists screw up a pragmatic language" choice. Your initial assertion is unfair.

    35. Re:Easier to learn != easier to use by DickBreath · · Score: 1

      I like getters/setters in Java because in practice, the JVM compiles everything down to native code and aggressively inlines. So typical getters/setters cost nothing and are direct accesses to member variables. But it gives you the flexibility to later make the getter/setter do something else without affecting other code.

      Suppose you were to change the getter/setter and then dynamically re-load the class at runtime in a running system. The JVM will immediately de-optimize (go back to interpreted bytecode) for all methods that now have stale inlined code (from the old version of the class). Dynamic profiling may then quickly reveal that the de-optimized code is (still, as it was before) an actual CPU hot spot, causing it to get re-compiled again, and if appropriate, to have those getters/setters inlined, or not.

      The JVM compiler is like having a global -O 5 optimizer that can optimize globally across the actual code running on the machine, and the code generator of the compiler is tailored to your actual hardware and whatever instruction set extensions it might have.

      The JVM as a runtime platform will probably outlast the Java language.

      --

      I'll see your senator, and I'll raise you two judges.
  17. Re:I don't know why people still say Java is slow. by peppepz · · Score: 0

    And then, they try to fire up Microsoft Visual Studio, and they wait even more, and they realize that their perception bubble isn't reality.

  18. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    JVMs have ridiculous lists of dependencies of all kinds. This shortens / cheapens development time, and is mostly a good thing in order to get deliverables following established patterns out the door quicker. However each of these do add their own types of overhead: for development, deployment, maintenance and runtime.

    In the end, it's simply a bunch of trade-offs of where you want to have the complexity. If it were simple, you wouldn't need projects and developers with thousands of hours of experience spending so much time on it. Ie. by using an external library, you're relying on someone else's work-schedule and future plans. This might sound smart until that external library go unsupported, especially if it's proprietary with no way to fork it.

    The trade-off with Java and JVMs were less control over response times, giving up on promises of real-time systems and user responsiveness in order to buy cheaper and more flexible development and deployment. In other words: The users lost.

  19. Shouldn't it be... by Anonymous Coward · · Score: 1

    Sounds to me like it should be...

    "Java: the language that changed the art into the business of programming." Not so many fancy or clever solutions in Java. Takes a lot of the fun out of it.

  20. Dunning Krugers and Old Fogies by Anonymous Coward · · Score: 1

    I can see it now, another thousand posts on how Java is terrible posted by Dunning-Kruger kiddies and get-off-my-lawn fogies. This is exactly the behavior that holds the profession back from maturing, a disdain for understanding history in context alongside those that cannot understand evolution and what drives it (or are simply acting out of fear); that and flat out shitty engineers.

    Too many stupid comments that can't separate the Java language from an application (applets), from usage (development trends and or enterprise patterns that lead to verbosity), vendor implementations (I had to maintain multiple versions because a vendor wouldn't upgrade), tooling (eclipse is slow), the platform (the JVM).

    1. Re:Dunning Krugers and Old Fogies by DickBreath · · Score: 1

      Hey, it's always easier to blame the programming language for things done by stupid developers, stupid practices, stupid managers, stupid organizations, stupid vendors, stupid requirements, and stupid teachers.

      But your list of the bashing comment types is right on the money as evidence in these comments.

      --

      I'll see your senator, and I'll raise you two judges.
    2. Re:Dunning Krugers and Old Fogies by Anonymous Coward · · Score: 0

      That's great.

      Except that the Java applications we can see and touch in the real enterprise world are utter irredeemable shit, and the development teams have the worst practices and the worst delivery record. There is no professional pride.

      But of course you know better because you have heard of a social science meme.

  21. Re:I don't know why people still say Java is slow. by bws111 · · Score: 1

    C is slower than shit too, if you launch a new VM every time you want to run a program. Of course in the real world nobody does that, just like, outside of desktop apps, nobody starts a new JVM every time they run some Java code.

  22. Re:I don't know why people still say Java is slow. by Luthair · · Score: 1

    I take it you haven't worked on a large scale software project? Abstraction exists for code re-use and to make parts pluggable, both of which are critical in reliable enterprise software.

  23. "Turning on a generation of coders"? by jeffb+(2.718) · · Score: 3, Funny

    But maybe I don't want a language that turns on me.

    1. Re:"Turning on a generation of coders"? by Anonymous Coward · · Score: 0

      Spat coffee on my screen thank you very much.

    2. Re:"Turning on a generation of coders"? by Anonymous Coward · · Score: 0

      I'm not even sure I want a language that turns me on.

  24. It allows for more mediocre programmers by pauljlucas · · Score: 4, Interesting

    According to Joel, Java isn't hard enough to weed out mediocre programmers in college. (Great programmers can use any language well.)

    --
    If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
    1. Re:It allows for more mediocre programmers by Anonymous Coward · · Score: 0

      Off-shoring, H1B1, lack of a "licensed engineer" path and code camps have done more to generate shitty programmers than languages ever will.

    2. Re:It allows for more mediocre programmers by H0p313ss · · Score: 3, Insightful

      Despite Java being my bread and butter for a decade this is hard to disagree with, I've met lots of professional java "programmers" who don't understand the JVM at all. (And don't even get me started on system administrators for enterprise systems... Seriously you're admin of a linux box and you don't know what top is and you're uncomfortable at the command line? Really?)

      Even worse is the student world, just dip into the Java question stream on StackOverflow. 50% of the questions any first-year student C.S. would laugh at.

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    3. Re:It allows for more mediocre programmers by Anonymous Coward · · Score: 1

      I agree with everything you've said, but should point out how difficult Java software is to manage.

      My usual tools (top, lsof, netstat, etc.) are almost worthless because the Java app runs everything under one PID. Same with strace.

      Free is worthless because the JVM just grabs as much memory as it can.

      Some server software I manage exposes a wealth of data via JMX, but if the vendor doesn't document the various beans and attributes (none of my vendors have), you basically have to reverse engineer the app to make any sense of what you're seeing.

    4. Re:It allows for more mediocre programmers by prefec2 · · Score: 1

      You can get through university without learning any programming language. Java should allow students to learn OOP and functional programming, and all those nice pattern relevant for good coding. However, they don't because they do not practice. When other languages where taught things where not much different with one exception, in the past most people entering the university to study computer science already knew some languages, like basic, pascal, assembler etc. Nowadays many student can (if anything) HTML and CSS, but most only like to play games with their computers. Gamers are, however, not perfect CS people.

    5. Re:It allows for more mediocre programmers by Anonymous Coward · · Score: 0

      On SO...

      The java tag has the absolute worst questioners. Not that they ask stupid questions, we all were ignorant once, but they don't even try to put their questions into the format SO requires. With many of them, there's no SSCCE, no run down of what they've tried, and very little in the way of asking questions about programming. Instead, you'll get a program dump and "this doesn't work, help." I know other tags have this too, but the java tag seems to have it far far more.

    6. Re:It allows for more mediocre programmers by FranTaylor · · Score: 2

      My usual tools (top, lsof, netstat, etc.) are almost worthless because the Java app runs everything under one PID. Same with strace.

      as if you don't have the EXACT SAME PROBLEM with a multithreaded C++ app

    7. Re:It allows for more mediocre programmers by Billly+Gates · · Score: 2

      Has it occured to you employers look at this as an advantage?

      Phb bosses want deliverables, etas, lower costs, etc. Not bugs.

    8. Re:It allows for more mediocre programmers by Anonymous Coward · · Score: 0

      Yeah, but with compiled programs most people wouldn't even think to put 2 web servers, a RADIUS interface, a logging consolidator, a log rotator, and 2 or 3 custom protocol handlers all under one PID. That seems to be the way Java programmers think. Look out, I see a systemd comment coming. :-D

    9. Re:It allows for more mediocre programmers by Anonymous Coward · · Score: 0

      My usual tools (top, lsof, netstat, etc.) are almost worthless because the Java app runs everything under one PID. Same with strace.

      Yes and no. Top dash H over a timed interval is needed with a series of thread dumps to debug various issues. I work with IBM Java on a daily basis - IBM has a set of scripts which automatically collects a lot of this data for you: http://www-01.ibm.com/support/.... Cross-reference the native threads in the top dash H output to the javacores produced by the script to find your problem. lsof / netstat are still useful if your application isn't a complete piece of garbage (Java, C, or otherwise). Etc.

      Free is worthless because the JVM just grabs as much memory as it can

      No - the JVM runs in a fairly specific manner when it comes to memory and does not "grab as much memory as it can". It also depends WHICH JVM you use as each JVM decides how to allocate native, stack and heap memory differently. Read the documentation, each JVM vendor does a fairly lengthy job explaining how it works and various JVM parameters you can set to adjust behavior.

      Some server software I manage exposes a wealth of data via JMX, but if the vendor doesn't document the various beans and attributes (none of my vendors have),

      That's a vendor issue, not a Java issue. Suggest bringing it up with the sales or support representatives for said vendor.

      You basically have to reverse engineer the app to make any sense of what you're seeing.

      Decompiling is helpful at times, but can also get you sued. I'd not want to tangle with Oracle, IBM or Google's legal teams.

  25. Lives up to a lot of the hype by MikeRT · · Score: 3, Interesting

    In the years I've done Java development, the only times I've never had a problem building on Windows or OS X and deploying to Solaris or Linux was when someone used hard-coded paths or didn't make the program's deployment properly configurable for deployment to the target OS. Write once, run anywhere is more or less true with Java.

    1. Re:Lives up to a lot of the hype by Anonymous Coward · · Score: 0

      That all came too late for me. I was so excited when Java came out. GUIs that could run on anything. Truth was the licensing costs (back then) were prohibitive to port the jvm. Add to that the pain of getting people to install java on even a bog standard windows pc (it was a big download - esp with internet speeds back then and sometimes it just would not install..). It was a very depressing realisation that the tech just wasn't up to the job.

      People say .net is what java should have been. I disagree - I think browsers with html5 and javascript is what java should have been. Web browsers are now at the point they are the cross platform client environment. I could never see the point of java for server side stuff - the only true thing in it's favour was that new graduates were (still are?) taught it at uni. Pretty poor reasoning to choose a language (unless you're prime motivator is getting a lot of ready to go coders quick).

      For me it was a tech I jumped fully on board with but was sorely disappointed, turned away and didn't go back. I do like the direction browsers have moved to though!

    2. Re:Lives up to a lot of the hype by RR · · Score: 1

      That all came too late for me. I was so excited when Java came out. GUIs that could run on anything.

      Also, the Java GUIs back then were, without exception, ugly and laggy. Most of them are still ugly and/or laggy. And while the Javascript VM and CSS interpreter start running with the browser, going to a web page with animated Java buttons would cause an excessive pause while the Java VM launched and checked for permissions. Java startup speed doesn’t seem to be a major problem anymore, though: Everything now takes forever to start up.

      The Write Once Run Anywhere of HTML5 is certainly compelling, though I’m immensely disappointed with the taste of Javascript, CSS, and Flat Design.

      --
      Have a nice time.
  26. Re:I don't know why people still say Java is slow. by H0p313ss · · Score: 4, Informative

    And then, they try to fire up Microsoft Visual Studio, and they wait even more, and they realize that their perception bubble isn't reality.

    Indeed, I've been using Eclipse as a daily driver for a decade. Current startup time for a new workspace is on the order of 10 seconds, VisualStudio is almost identical.

    --
    XML is a known as a key material required to create SMD: Software of Mass Destruction
  27. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 1

    Funny you should mention MVC since it's one of the lead causes for many number of files and directories in typical java-applications.
    If you're truly separating your logic, it makes sense to really separate them and not just pretend?
    The reason people abstract everything is intellectual laziness and lack of design. If you need some abstraction, why not do it for everything, you know? Just to be "safe"... As a society, we value the "safe" and "correct" choices by copying other's success, while those who make fortunes and make their own success do not.. We're simply herd-animals still.

    However, I fully agree that requiring all that separation without really utilizing it, is simply wasted effort. A more agile way, ie. using Feature Driven Development (FDD) you would only redesign/refactor the code this way when truly required, focussing on core functionality first and foremost.

    OOP-paradigm is over-used, over-extended and has always been over-hyped. It's just that in the late 80's, early 90's I was too young and inexperienced to understand the healthy criticism that were put forth by professionals at that time. OOP's simply become yet another excuse for not thinking clearly and not taking the time to really think.. OOP never became the Silver Bullet many pretend it is.

    For those who wants to go forward, the new paradigms that will come is the marriage of graph-databases and functional programming. However, it's not been properly invented yet, so might have to settle for in-house designs and solutions still (only IF required / best-fit solution!). What you can be sure of is that the breakthrough will be something generic that everybody can blindly follow.. If done properly, it should unify applications, storage and caching, while supporting concurrent, high-availability systems.

    Or maybe future systems will be more specialization? One never knows 100%..

  28. If Java had never been invented by Marginal+Coward · · Score: 2

    I was struck by the statement that Java "changed the art and business of programming." While that's certainly true as a general statement, it hasn't been true for me personally. I've lived my recent adult programming life with a combination of C, C++, Python, and Matlab. I haven't so far had a need for Java because one of those languages does anything I need to do better than Java.

    I've studied Java (and C#) a little, and have generally been interested and see some value there. But I have never actually had an explicit need for Java, so I never stuck with it long enough to become proficient in it. In particular, mastering Java's libraries is a daunting task. So, if I can live my life without it, I wonder how much worse off the rest of the world would be if it had never been invented?

    1. Re:If Java had never been invented by RR · · Score: 1

      I've studied Java (and C#) a little, and have generally been interested and see some value there. But I have never actually had an explicit need for Java, so I never stuck with it long enough to become proficient in it. In particular, mastering Java's libraries is a daunting task. So, if I can live my life without it, I wonder how much worse off the rest of the world would be if it had never been invented?

      Like any hypothetical history, we can’t ever know. As TFA says, Java didn’t introduce any new technology. It just bundled them together and marketed them. If not Java, then another language could have done that. However, I think the world would have been a lot better off if this hypothetical language didn’t bring with it Tony Hoare’s Billion Dollar Mistake.

      For your life, I think Java validated the idea of building significant systems on a VM. Python was around before Java, but it was considered a slow language for scripts. Java showed that a slow language could be fast enough, and it also made Jython possible and was part of the environment when PyPy was created.

      --
      Have a nice time.
  29. That again? by ThePhilips · · Score: 2

    Java's core strength was that it was built to be a practical tool for getting work done.

    If only.

    I have abandoned Java shortly after Java 2 SDK release precisely because it was NOT anywhere near being a "practical tool for getting work done." Later encounters over the years only reinforced my opinion.

    As one Java developer described it, comparing Java to Python at task of using the proverbial "wheel" in your program. In Python, if you need the "wheel", you just "import wheel" and use it. Java too provides you with everything necessary: "import map.ore.iron", "import tools.pickaxe", "import fire.matches", plus a 3rd party class "recipe.smelt" and a measly 1-2K LOC - and voila! you have the "class Wheel" in Java too!

    --
    All hope abandon ye who enter here.
    1. Re:That again? by FranTaylor · · Score: 1

      Later encounters over the years only reinforced my opinion.

      yes indeed, I've been to six Red Sox games in the past decade, and they lost all six of them, so therefore I will extrapolate that they never ever win any games.

    2. Re:That again? by ThePhilips · · Score: 1

      I have no idea what "Red Sox" are, but Java's verbosity (and its long/shot term consequences) are universally known among software developers. It's not like Java is the first language of the kind.

      Verbosity wouldn't have been so much of a problem, if the standard library was at least OK. But it is not.

      Sun (and now Oracle) pretty much openly stated that they do not want to expand standard library. Main reason I heard was the security updates. (As if shifting the responsibility to the 3rd party libraries anyhow alleviates the security concerns.) The end result that Java's standard library manages to be at the same time very bloated and very poor.

      For example, there is still no usable String.split(). There is standard one with the regexps, but it is very slow. I work with Java rarely (at most a month per year) and I have already seen at least a dozen of hand-coded String.split() alternatives.

      --
      All hope abandon ye who enter here.
    3. Re:That again? by swilver · · Score: 1

      That's because "import wheel" in Python means something different than the similarly written statement in Java.

      In Java an import written like that imports only one specific class. In Python it means import everything defined in the wheel "package". You can do the same in Java: import wheel.*

      That syntax however is frowned upon, as it makes it less explicit about what you are actually using, and more assumptions must be made to understand the code. Did that class come from "wheel" or did it come from "stoneage", "car", "steam" or "yarn" ?

      Anyway, contact me again when a Python snippet can actually survive being send by email.

    4. Re:That again? by ThePhilips · · Score: 1

      You have completely missed the point.

      When you program in Python (the language I btw actively hate; Perl guy here) it actually feels like you programming in a high level language. It gives you the tools you need to accomplish the task. Not every tool, not for every task - but the tools cover a lot of ground.

      When you program in Java, it sometimes feels like you are programming in assembler: the same level of attention to details, the same microscopic impact of every line you write. And you too need to write a lot of lines to accomplish the same, other languages allow you to do in one or two lines.

      --
      All hope abandon ye who enter here.
    5. Re:That again? by twisp42 · · Score: 1

      Do you use an IDE? Easy to set auto imports correctly and then just hit Alt-Enter to import it's suggestion (or flip through the list of a correct one). If Java feels like you're writing assembler than you're doing it wrong.

    6. Re:That again? by ThePhilips · · Score: 1

      You mean auto-complete in Eclipse can write programs for me? It would read my mind and output proper working Java code, with all the boilerplate, configuration and 3rd party libraries includes?? Would it also by chance deploy to customers too? and provide support and updates? What is the keyboard short-cut to all this magic?

      The Eclipse seems have made an enormous leaps in functionality - and all that in the 6 hours since I left the office. ;)

      --
      All hope abandon ye who enter here.
    7. Re:That again? by twisp42 · · Score: 1
      To start: Intellij. Not Eclipse. Second, you complained about imports. It's a non-issue. They can both be added and hidden by the IDE and usually take only a cursory verification. Furthermore, you can customize the way in which imports are added and how they are suggested. It's such a trivial thing it makes me feel like you've never done modern development.

      It would read my mind and output proper working Java code, with all the boilerplate, configuration and 3rd party libraries includes?? Would it also by chance deploy to customers too? and provide support and updates? What is the keyboard short-cut to all this magic?

      What language WOULD do this for you? You are still need to enumerate your dependencies in some fashion. You still need to curate the libraries you use and deliver them to your client. How do you deliver the 3rd party libraries in python to your customer?

    8. Re:That again? by ThePhilips · · Score: 1

      [...] you complained about imports.

      I haven't complained about imports.

      I have complained that Java's standard library is dumb as fuck.

      The point which you have missed completely. Probably because, I get the feeling, you have never used any other programming language and you simply can't imagine how it can be any different, least better.

      --
      All hope abandon ye who enter here.
    9. Re:That again? by twisp42 · · Score: 1

      Lol, I have used many programming languages. I started on C/C++ and used those professionally. I have used Java and Scala professionally. I have used Python, Perl, and PHP professionally. God knows how many languages I have tinkered with. I use C# to program in Unity for fun. I wrote OCaml in school, do I need to go on. My work is literally on research into programming languages. Yes, Java's standard library has plenty of rough edges (compare Scala's collections to Java's, its mind blowing how much easier to use they are). Every time I use Python's it feels worse.

    10. Re:That again? by twisp42 · · Score: 1

      And sorry, I misread the username. I realize you did not complain about imports. You did however compare Java to assembler. Which seems to imply that you haven't written either (incidentally I have also written assembler but only in school for an old Motorola 8080 so it doesn't really count).

  30. Java was supposed to be what javascript is... by Anonymous Coward · · Score: 0

    According to a lecture I heard at SAP Palo-Alto by Gilad Bracha who as much as I know worked closely with Mr Gosling on Java.
    The plan failed due to CPU's at the time not being strong enough and it got converted to something else...

  31. Dunning-Kruger by Anonymous Coward · · Score: 1

    Must be because they're mostly millennials

    Wrong generation. The millennials are running javascript everywhere and/or rediscovering functional programming (joking).

    Nothing like coming in the next morning with to a huge list of changes to a system that was working but now all the other dependent components have to be reworked because someone discovered the refactor button and couldn't resist staying up all night.

    Your failure to recognize the flaws in your development process is astounding.

    they especially love Agile (cough, vomit) development for obvious reason

    I...don't...even....oh dear...where is the (Score: -1, Incompetent)?

    1. Re: Dunning-Kruger by Anonymous Coward · · Score: 0

      You mean his has not applied agile properly?

  32. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 1

    You do realize that MVC is an _object oriented design pattern_ right?

  33. Re:I don't know why people still say Java is slow. by peppepz · · Score: 1

    On my laptop, a Sandy Bridge i7, on a cold start, Netbeans 8 takes 57 seconds to launch before it's clickable, Visual Studio 2013 takes 68 seconds. Netbeans is also more responsive while it's busy, with Visual Studio displaying the full hourglass cursor and triggering the "application not responding" behaviour if its window is clicked before it's ready.

  34. Oh good greif by Anonymous Coward · · Score: 1, Insightful

    Form the parent's link:

    When I was a kid, I learned to program on punched cards.

    And it goes on there as you expect.

    Back then - and I was there too - you didn't have to knock out 50,000 lines of code, you didn't have GUIs, you didn't have to connect to a bunch of distributed machines, etc... and get it all done in two months.

    Those punched card programs were procedural batch programs that you ran while you slept. You usually didn't have to deal with real time user input or network crazyness or even multiple threads. And it wasn't that hard to keep it all in your head or if you had to, draw it all on a page or two of a legal pad.

    So, no we old farts were not smarter.

    1. Re:Oh good greif by Anonymous Coward · · Score: 0

      Our problems were, however, far better defined. Modern programmers tend to sloppily assemble a bunch of frameworks to get something that works, assembled from numerous poorly-understood sources. They blow up much more spectacularly and are harder to debug.

      As always, the main problem is the environment (generally, businesses with deadlines and poor understanding of what they want/need) combined with poor process employed by the developers.

  35. Java is just a tool like any other language by msobkow · · Score: 4, Interesting

    No language is inherently good or evil in and of itself (save for PHP, which is evil incarnate.)

    It is simply a tool for expressing logic. A means of structuring data.

    Some are elegant for certain classes of problems, some are abused to fit problem sets they aren't suited for.

    The sole benefit of Java to me is it's portability for core logic, even though I know that once you're dealing with user interfaces and heavy duty multi-threading, there are "write once, test everywhere" problems with the language.

    Java isn't even predictable on my Linux box. It randomly crashes for no apparent reason while running code that has run cleanly thousands upon thousands of times in the past. Yet after years and years of successful runs of my pet project (http://msscodefactory.sourceforge.net/), I had Java 7 on Ubuntu crash a couple weeks ago during a run. The compiler itself crashes on a regular basis; several times per week.

    As to why all the Java articles lately? Oracle's "Java World" conference is coming up, so it's time to beat the drums, sacrifice the sheep, and burn the entrails on the altar of the language. The high priests are out in droves preaching the gospel.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:Java is just a tool like any other language by Anonymous Coward · · Score: 0

      I've seen well-written PHP. Yes, it's rare. And no, most of the 'fractal of bad design' isn't an issue in practice. TBH PHP reminds me a lot of Java, just with less boilerplate. However, the popular PHP projects, Wordpress, Drupal, etc, are terrible terrible pieces of crap. Wordpress is bar none the worst piece of code in widespread use. It actively encourages bad practices, it's insecure and buggy, and it's stuck firmly in the PHP4 mindset if not actual code compatibility, and it will never change. The UI/UX is pretty good though. It's an extremely well-polished turd.

  36. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    java is really fast when running. but starts slowly. it is impossible to revert first bad experience.

  37. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    I take it you haven't actually tried to re-use over-abstracted code.

  38. Re:I don't know why people still say Java is slow. by danbob999 · · Score: 1

    Java code can meet or even beat the performance of so-called "performant" languages like C, C++, Lisp, VB6, or JavaScript.

    Since when are VB6 and JavaScript "performant" languages? I can't think of anything slower than JavaScript.

  39. give some love to Java applets! by antiperimetaparalogo · · Score: 1

    Since many other Slashdoters have made it clear enough that "Java" is not just "Java applets" (and surely not "Javascript"!), i would like to give some love (trying to balance all the hate...) to "Java applets" - excluding the security problems (for which Java is not the only responsible - browsers, to a lesser degree, must be blamed also), i don't think that exist any other real (i like HTML5, but...) Rich Internet Application (R.I.A.) that is better than (or, nowadays, even alternative to...) "Java applets"!

    --
    Antisthenes: "Wisdom begins by examining the words/names." - excuse my English, i am (slightly...) better with my Greek!
  40. Packages = Win by should_be_linear · · Score: 2

    Also, one of the main double-plus-good stuff in Java is concept of packages and jars. Anyone dealing with header files and libs (not to mention issues when libs are created by different compilers on different platforms) will know what I am talking about. If C++ in next iteration copy this concept and ditch header files, it will be greatest improvement in C++ ever.

    --
    839*929
    1. Re:Packages = Win by Anonymous Coward · · Score: 0

      I agree and disagree.
      Agreed in the sense that packages >> header files.
      But.... the implementation packages as having no structure in Java is one of the worst things in the entire language. If they had access qualifiers that made it possible to give org.foo and org.foo.bar a stronger relation than one of them has to com.example.crap, then it would make sense.

      Now, taking a monster-package and splitting it into multiple sub-packages suddenly forces things to be "public" instead of saying "package-internal and sub-package access". WTF is all that about?
      And don't get me started on the fact that protected="package" + "inherited" instead of only "inherited" making it completely useless

      That said, I think Java has a undeserved bad reputation. Sure there's boilerplate that slows you down somewhat, but use a good IDE and you gain back basically all of that. And being verbose actually makes even your most annoying colleagues able to read the code. If you use a more terse language, you'll spend half your workday explaining the code to the guys in the office that should stay away form coding. (and before you say it, I believe in the existance of a company without the code-illiterates the day they find Atlantis)

  41. C++ by Anonymous Coward · · Score: 0

    c++ will never die

  42. They were also huge dicks. by Anonymous Coward · · Score: 0

    Take, for example, their stance on unsigned integers. "We won't do them. You can always assign to a higher precision number if you want to print out a number bigger than the signed integer allows!".

    BOLLOCKS.

    Binary data (e.g. a IP datagram or header) will define its contents as being a specific size. Reading that in and writing it out require some extra special hoop jumping to keep it going, and those hoops require that anything dealing with that data format has to know what's "inside the black box", which is BS from a good programming POV. And then again, if you want the unsigned (long) long, you're double fucked, because it isn't possible if that's the largest number available.

    And worse, this carries over to the print formatting. There's NO FUCKING WAY to manage that without clunk.

    Or take their stance on on multiple inheritance. "It's bad, therefore we won't let it happen". Casting, same thing. "We think it bad, therefore it won't be in there".

    Then there's the entire bollocks about Java being paranoid about including ANYTHING that deals with the OS or hardware. Sun created Java to fuck over Microsoft, hence their design choice to preclude anything to do with the OS. Given the limited use and the better inclusion that brought in the early days, fair enough. A bit of a dick move, but understandable and defensible.

    Nowadays, not so much. Just the dick is left.

    Partly because there's no way to tell what format you're supposed to use when you want to print an "integer" when you don't know what integer size was used on the machine that wrote it or compare it with the machine you're running this on.

    Therefore I've written many a program with a conditional statement based on what an "integer" is on this machine, dealt with the format of the writing machine by forcing this one to use "non native" integer types by aggressive casting, then changing the print format. It's a fucking mess because I can't use "uint32" or "int32" or similar. Because it's "too machine specific!". When the code I write has to fuck about to ensure that on a machine with only 32 bit integers, it uses long to store, adding to make it unsigned if it's negative, and using "ld" to print it out. Then on a machine with 64 bit integers, make sure that it doesn't use "lld" for 64-bit numbers.

    To be slightly fair about that, C is pretty fucked up on what "lld" "ld" and "d" assume is being printed. But on C I can use "uint32/int32" or whatever then deal with it knowing what the value is I chose is going to do WITHOUT WORRYING what the fucking machine things is long or not.

    They COULD have fixed it a different way, but they're refusing to allow "unsigned". And won't change "d/ld/lld" to cover it. It doesn't expose machine specifics, it completely nukes the need to keep machine specific code (more especially, java interpreter specific, since 32 bit java runs on 64 bit machines just fine). You need that machine specific steeplechase without "uint32/int32" but with "d/ld/lld".

    1. Re:They were also huge dicks. by david_thornley · · Score: 1

      I'm not understanding this. It was my impression that Java rigidly defined elementary data formats. In Java, an "int" is a 32-bit twos-complement number. In C or C++, an "int" is some sort of signed number at least 16 bits long.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  43. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    i think your computer has a problem, son.
    by no means, I think VS is a swiss army knife, but my lenovo x220, 5-year sandy bridge old i5, launches Visual Studio in 10 seconds.
    Visual Studio can be pretty memory intensive but if you have enough RAM and an SSD, it is wonderful having instant auto-complete. I have not seen anything that matches it. Even Xcode, which is way better than any java crap out there can't match Visual Studio responsiveness. of course, it's not a text editor. if you want to do lightweight textediting, there's vim, emacs, sublime, or even Visual Studio Code if that's your kind of thing.

  44. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 1

    Yep, it's almost like the limiting performance factor for large complex programs like IDEs is I/O or something....

  45. So long as you are doing batch processing by iamacat · · Score: 4, Informative

    Latency and unpredictability of garbage collection is a severe problem for any UI, and even web/database backends. Your Cassandra node can run fine for a week and then fragment its heap and go into 20 second stop the world GC, causing user requests to time out. Silly things like allocating large byte arrays and dolling out offsets and length for individual uses are done to avoid big GC pauses. It still doesn't always work, because there are a lot of VM versions and user access patterns shift over time.

    For all that, memory leaks are no less common than in C++ and non-memory resource leaks are horrendous. In C++, your object's destructor is cleanly called when the object is deleted or goes out of scope. That will take care of also calling destructors on anything encapsulated, which can then close files and unregister listeners. In Java, the while 100MB object hierarchy will be still consuming heap because some leaf node's close method was not called and it's a button click listener with an indirect link back to root.

    A grown up language can support stack based and encapsulated object instances that don't have to be GCed and have predictable destruction time. Large and provably acyclical objects like bitmaps can also be reference counting. In practice, GC pauses are no better than crashes, so in real life even unsafe explicit delete makes sense in many cases.

    1. Re:So long as you are doing batch processing by Anonymous Coward · · Score: 0

      Latency and unpredictability of garbage collection is a severe problem for any UI, and even web/database backends. Your Cassandra node can run fine for a week and then fragment its heap and go into 20 second stop the world GC, causing user requests to time out.

      http://www.azulsystems.com/partners/apache-cassandra

    2. Re:So long as you are doing batch processing by FranTaylor · · Score: 1

      In C++, your object's destructor is cleanly called when the object is deleted or goes out of scope.

      Yes we all know that C++ objects know how to automatically call their destructor when they figure out that they are no longer needed /snark

    3. Re:So long as you are doing batch processing by Greyfox · · Score: 1

      You mean by using a std::shared_ptr? "Oh but that's inefficient!" I hear you cry! But if you're the kind of programmer who can't learn how to delete objects before they go out of scope, that's a trade off you're going to want to make. Of course, allocating objects on the heap is so 1990s-era C++ programming. You can allocate the object on the stack and if it needs to do any big heap management it can do it within the confines of the object. AND you can properly deallocate it when it goes out of scope and implement a move allocator for it if you want to potentially return it by copy (Returning std::move(object) will promise the compiler you won't use that object any more in the returning function.) If you do it correctly, your stack will only ever grow by the few bytes needed to store a couple of pointers, which it would have done anyway. And you're much more likely to clean up resources with RAII than anything java can manage. Having seen big companies have to reboot java servers every couple of days because their JMS service bleeds file handles, I'm not at all impressed with Java or its automatic GC. I've had C++ servers run on production system for months at a time without the process size ever growing.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    4. Re:So long as you are doing batch processing by rl117 · · Score: 1

      Not just learning to delete objects out of scope though. shared_ptr and unique_ptr also provides exception safety--using a bare new/malloc'd pointer is going to cause problems unless you're absolutely sure an exception will never throw in a given scope. In practice, that leaves the only place to use bare pointers in class members, and even there unique_ptr would be better. In my code, the rule is absolutely zero bare pointers, ever. If you're going to return allocated memory, use a unique_ptr which you can then assign to a shared_ptr. It avoids the overhead of shared_ptr while still having the convienience of automatically cleaning up, and also being moveable.

    5. Re:So long as you are doing batch processing by david_thornley · · Score: 1

      Raw pointers work nicely as non-owning pointers. If the raw pointer goes out of scope, normally or through an exception, nothing happens to the data pointed to. In many situations, this is what you want.

      In my code, there are raw pointers, but no explicit use of "delete" outside of destructors.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    6. Re:So long as you are doing batch processing by Anonymous Coward · · Score: 0

      But GC pauses are not required by the java language specification itself. It's just something related to the virtual machines than run the java bytecode. And there's not a single JVM implementation, there're many. Some of them even provide bounded response times and use pauseless GC techniques, which makes them appropriate for those real time scenarios.

  46. Re:I don't know why people still say Java is slow. by etinin · · Score: 1

    Well, I used to think that too. In old times I'd agree 100% with you. I'm not gonna defend VB6, that was just a joke. But nowadays, javascript can run a lot faster than many compiled languages. You see things like Node.js which show that javascript engines have been insanely optimized, largely due to the languages (over)use on the internet. On my other post, I mentioned that Google made a demo using Dart (which is just a language which transcompiles to javascript, like CoffeeScript or TypeScript), rendering entire frames in 1.2ms. I am as much as baffled as you, but Google has found it easier to have low latency APIs for well-written JavaScript than with some Dalvik optimization.
    My good advice is: it's hard for people with a compiled language background, including me, to accept that, but JS is very good for many things which we couldn't dream of 5 years ago, encroaching even C territory.

    https://play.google.com/store/...

    --
    "I decided I could write something better than everything out there in two weeks. And I was right." - Linus Torvalds
  47. The absolute #1 contribution of Java by tlambert · · Score: 3, Insightful

    The absolute #1 contribution of Java: it has allowed colleges and universities to turn out a generation of coders who are incapable of dealing with pointers, explicit memory management, stack layout, static memory maps, etc., etc..

    In other words: a crapload of people with "Computer Science" degrees who could not write an OS or even a trivial part, like the C library signal trampoline, to save their ass, because they are in this walled garden/protected environment where they are "safe" from having to actually deal with real hardware.

    Ironically, all of their JVMs on which they are normally running this code are not written in Java, because it's not really practical to do that.

    1. Re:The absolute #1 contribution of Java by Anonymous Coward · · Score: 0

      That's because these generation of coders are too busy actually writing applications that people can use on a daily basis, rather than device drivers. Different use case, dipshit.

    2. Re:The absolute #1 contribution of Java by FranTaylor · · Score: 2

      who could not write an OS or even a trivial part, like the C library signal trampoline, to save their ass, because they are in this walled garden/protected environment where they are "safe" from having to actually deal with real hardware.

      so you say that java creates an environment where you can hire developers that don't have MIT master's degrees and you can expect them to be able to do useful work?

    3. Re:The absolute #1 contribution of Java by Anonymous Coward · · Score: 0

      That's because these generation of coders are too busy actually writing applications that people can use on a daily basis, rather than device drivers. Different use case, dipshit.

      "Internet of Things", dipshit. Everyone's about to become a firmware developer and talk to bare metal, or they can go pound sand while we hire H1-B's to do the work instead. Have fun eating your old Java printouts when you can't afford food.

    4. Re:The absolute #1 contribution of Java by tlambert · · Score: 1

      so you say that java creates an environment where you can hire developers that don't have MIT master's degrees and you can expect them to be able to do useful work?

      This is true, to an extent, for some definition of useful. The JVM is an environment where you can do some types of useful work, without having to be a great coder, and not do too much damage.

      I suppose a good analogy would be Commodore 64 BASIC.

    5. Re:The absolute #1 contribution of Java by tomhath · · Score: 0

      That's because these generation of coders are too busy actually writing applications

      Exactly. They're busy writing Java code. Meanwhile the rest of us used productive languages, completed the project, and enjoyed the weekend.

    6. Re:The absolute #1 contribution of Java by hlee · · Score: 1

      Seems to me that's the fault of the college/university for not teaching these concepts.

      A good syllabus will teach students enough important concepts, and how to think with these concepts. It will also recognize different languages being better for teaching different aspects of CS. High level languages like Haskell are excellent for teaching algorithms. Prolog/Lisp for AI. C and assembly for low level concepts. Java IMO would be good for teaching concurrency/threading. At the end of the day, the student will be able to express the core portion of quicksort in a single line of code with Haskell, yet be able to convert it to Java, C or even assembly - and understand why you might need to do so, and the additional factors needed in lower level languages.

    7. Re:The absolute #1 contribution of Java by Anonymous Coward · · Score: 0

      I thought the proliferation of easy-to-use languages like BASIC, COBOL, and Pascal created this environment. Java created an entire generation of developers of exceedingly-poor quality.

    8. Re:The absolute #1 contribution of Java by Anonymous Coward · · Score: 1

      No, they're too busy trying to identify the bugs their customers are shouting about, configure maven correctly and working out how to use source control.

    9. Re:The absolute #1 contribution of Java by twisp42 · · Score: 1

      pointers, explicit memory management, stack layout, static memory maps, etc., etc..

      Yes somehow without firm understanding of these concepts people can code a huge amount of useful code. Many programs require no knowledge of any of this. I cut my teeth on C/C++ but now do mostly Java. Is it easy to write poorly performing code in Java? Sure but the same is true for every language. If you need to squeeze top performance out of something, you hire a person who knows how to write performant code. This is true in ANY language. Day to day, we would waste an enormous amount of time if this is what our programmers were thinking about.

      In other words: a crapload of people with "Computer Science" degrees who could not write an OS or even a trivial part,

      Because that is something I will ever have to do. I mean, if only there were stable, well-made OS's out there. We could all stop worrying about this. But I get it, having an understanding of what the OS does is important and your right. CS grads and serious programmers should have real-world and academic experience writing low level code. That said, you're blowing it way out of proportion.

      like the C library signal trampoline, to save their ass, because they are in this walled garden/protected environment where they are "safe" from having to actually deal with real hardware.

      Hmm, I seem to recall a concept called abstraction. It let's you get work done without having to worry about inconsequential details. However, being close to hardware is not nearly as important as it use to be. We're not all writing graphics drivers here or writing a realtime mobile apps.

      Ironically, all of their JVMs on which they are normally running this code are not written in Java, because it's not really practical to do that.

      "Whoosh," is the sound you hear over your head. What's the point of Java? Why do people use it vs why do people use C/C++ vs. Java? Sometimes you need to be closer to hardware. This is one of those times. Therefore, you wouldn't use Java.

    10. Re:The absolute #1 contribution of Java by twisp42 · · Score: 1

      Oh and I forgot, isn't the OpenJDK implementation mostly Java with Native calls where necessary?

    11. Re:The absolute #1 contribution of Java by twisp42 · · Score: 2

      You're right. Java is massively successful because it's unproductive. That's why it's one of the most used languages on the planet because people can't get things done.

    12. Re:The absolute #1 contribution of Java by tlambert · · Score: 0

      "Whoosh," is the sound you hear over your head. What's the point of Java?

      You really do *not* want the honest answer to this question, but I will give it to you anyway: So people who would otherwise be employed asking "Would you like fries with that?" can get non-performance critical programming jobs.

      Why do people use it vs why do people use C/C++ vs. Java? Sometimes you need to be closer to hardware. This is one of those times. Therefore, you wouldn't use Java.

      You *always* have to be closer to the hardware:

      #1: Almost everything is a mobile device these days; people buy laptops instead of desktops, cell phones music players, etc.. The closer you are to the hardware, the better your battery life, the lower power your processor can be to do the same amount of work, the cheaper the unit price for the lower powered hardware and smaller battery, the lower the cooling system costs (mostly, you can go without them, or operate them on "low"), etc., etc..

      #2: Being closer to the hardware lets you reduce the number of blades/servers/PaaS instances that you require in your data center or cloud. This reduces costs, again in terms of cooling, but also in rack space, and power requirements. Facebook rewrote their PHP code to be compiled to binary code, and it saved them over 50% in servers. When you are a startup, and have tons of VC money to throw hardware at a problem, you can get away with not having to worry about those things, but when it's time to get to scale, they start to become major issues.

      You can *get away* with not being closer to the hardware... for a *short time*, when you are engaged in rapid churn (e.g. new web UI ever 2 hours), or doing a lot of rewrites or running on hardware that better than the hardware you intend to deploy on, but after that being closer to the hardware is *the overriding thing*.

    13. Re:The absolute #1 contribution of Java by twisp42 · · Score: 2

      So people who would otherwise be employed asking "Would you like fries with that?"

      The elitism here is staggering. Are you kidding me? The entirety of Computer Science and Software Engineering is enormous. You're trying to boil it down to systems/performance.

      You *always* have to be closer to the hardware:...

      Yes because again, we are all Facebook looking to reduce rack space. You took a series of problems that require high performance and generalized it to ALL of computing. It's just not true. I know plenty of people who write programs that run on asymmetric hardware. There are plenty of times a JIT or AOT compiling is going to outperform anyone but an expert. Yes, there is a performance trade-off that is often made for using a GC language that you recoup in reduced engineering effort. It is much easier to get programs right with what is usually an inconsequential performance penalty. Yes, there can be LARGE penalties for misunderstanding your underlying hardware, OS, etc... But that's, again, not unique to Java. But in practice, there are plenty of companies with large scale Java systems that perform well and can be modified much more quickly by worrying about the business logic at hand rather than the hardware underneath.

    14. Re:The absolute #1 contribution of Java by Anonymous Coward · · Score: 0

      You obviously don't know about jvm:s written in java: http://www.jikesrvm.org/
      And the performance is within 10% of hotspot.

  48. ask.com by Anonymous Coward · · Score: 0

    The syntactical aspects of the language aside, it's hard to respect something that asks me to install an Ask.com toolbar and still doesn't have a good update mechanism.

  49. Re:I don't know why people still say Java is slow. by dave420 · · Score: 1

    I take it you know that "abstraction" and "over-abstraction" are not the same..?

  50. Re:I don't know why people still say Java is slow. by ranton · · Score: 1

    You need to buy an SSD. Visual Studio takes about 3-4 seconds to load on my mediocre i5 laptop, but it has an SSD. It takes almost 10 seconds when loading a very large solution on startup.

    --
    -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
  51. Re:I don't know why people still say Java is slow. by danbob999 · · Score: 1

    I am not saying JavaScript can't perform in some specific scenarios. Just like C isn't always fast (code can be badly written in any language). But globally, JavaScript isn't known as a performance language, unlike say C, C++, Fortran and of course assembly.
    Also, according to these benchmarks, JavaScript is much slower than C: http://benchmarksgame.alioth.d...

  52. Java got lucky by Anonymous Coward · · Score: 0

    It had a universal GUI framework, and took the pain out of socket management. That's it.
    Otherwise... It happened to be around right at the right time where people realized they needed rapid development for client/server oriented applications.
    Java got lucky. It was there. If Perl had had a GUI, Java would have never gotten off the ground.
    All of the "write once run anywhere" aspect of it turned out to be 99% hype. The language itself is terrible.

    1. Re:Java got lucky by Anonymous Coward · · Score: 0

      Java got lucky by riding the rise of the web, and Sun was good at marketing the language. It was very good timing.

    2. Re:Java got lucky by Anonymous Coward · · Score: 0

      I disagree. The language is excellent from an academic OO perspective.

      It is, however, terrible for most real-world uses and I completely agree that the "run anywhere" aspect was a load of bollocks.

  53. Does language matter for 95% of tasks? by Anonymous Coward · · Score: 0

    Assuming you have a reasonably good IDE, and you have a compiler able to do some optimization, and you are working with an SDK that is reasonably useful, that should be enough to "get the job done" for just about all of what's needed.

    Not everything.

    But a lot of coding is still doing non-interesting things for large companies, and you pretty much use whatever language their existing system is in, cause they aren't going to switch over no matter how many programmers tell them that language XYZ is somehow better.

    imho, if you cannot learn a new language (not saying you have to like it better), or an old language, then you aren't much of a programmer. of course you will be slower til you get practiced, but the ideas, the logic, the data flow, the work flow, all that never really changes.

    so, do I care if java rules the world? or becomes a niche language? not really. If someone needs me to code in it, I can. If someone needs me to learn AwesomeSauceOnRails, I can.

  54. He's right, you're also right. by Anonymous Coward · · Score: 0

    Difference is you're right for the wrong reason. Yes Java is used for a lot of enterprise server side stuff. What I don't understand is why. Well I do - it's so they can use cheap grad ready trained java programmers. I haven't yet seen a use case where another language wouldn't have been more appropriate than java for server side stuff.

    The difference caused by html5/javascript advances is now I can rephrase that sentence to say server or client side stuff.

  55. Java is fully open source by Kunta+Kinte · · Score: 4, Informative

    But Java was the important thing we couldn't let die. And it isn't open source so the community couldn't steal it away from oracle.

    Java is fully open-sourced and the most open-sourced programming language I know. OpenJDK is the same source code Oracle uses for its JDK. It's easy to download and compile all Java executables. Here is a guide and a Youtube video detailing how to build the JDK.

    Java is defined and updated by the JSR process, which resembles RFCs. And also by the JEP process which tells you exactly what's being built into Java and when. You can also use their bugtrackers and mailing lists to track Oracle engineers' work.

    I've learnt a ton just by tracking those lists.

    --
    Based on upvotes, Ageism is the only "-ism" Slashdotters care about and think isn't SJW
    1. Re:Java is fully open source by Bengie · · Score: 2

      Until Java tries to sue you, like they did Android.

    2. Re:Java is fully open source by FranTaylor · · Score: 0

      Until Java tries to sue you, like they did Android.

      Yeah I'll remember that, the next time I sit down to write my own JVM

    3. Re:Java is fully open source by Anonymous Coward · · Score: 0

      > Until Java tries to sue you, like they did Android.

      Well, shit, there's no way I'm going to use such a litigious language!

    4. Re:Java is fully open source by Bengie · · Score: 2

      Android did not write the JVM. It was an opensource project that implemented the API for most of the API except a few patented parts that didn't matter. Then Java tried to sue them for claiming it was Java. Of course Java did not try to sue the project, only Android for using the project.

  56. Would be funny if it where true by Kunta+Kinte · · Score: 2

    ...but then, they fire up Eclipse, or NetBeans, or Guiffy, or enable the Java support in their browser, or try to run an app on their favorite feature phone. And they wait for it to become responsive... ...and wait...

    Would be funny if it where true, but Netbeans on my computer loads faster than Visual Studio. And both runs equally as fast.

    --
    Based on upvotes, Ageism is the only "-ism" Slashdotters care about and think isn't SJW
  57. Was it worth it?!? by blueshift_1 · · Score: 1

    They were so preoccupied with whether or not they could that they didn't stop to think if they should.

  58. All runtimes crash by Kunta+Kinte · · Score: 1

    It randomly crashes for no apparent reason while running code that has run cleanly thousands upon thousands of times in the past.

    And are you implying that doesn't happen with the C runtime?

    Or seriously implying this happens less often when developers code in C/C++?

    --
    Based on upvotes, Ageism is the only "-ism" Slashdotters care about and think isn't SJW
    1. Re:All runtimes crash by david_thornley · · Score: 1

      C and C++ are more transparent languages, in that you can see more easily the general sort of machine code they're going to produce. Java is very dependent on the quality of the JVM in use, more than C and C++ depend on things.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  59. SV SW Eng by Anonymous Coward · · Score: 0

    It's rare to see .NET positions in Silicon Valley, and common to see Java. But I also see a lot of C positions here, so we might be in a bit of a bubble when it comes to the kind of technology used by companies in this region.

    I could probably be persuaded to dig up some numbers specific to Silicon Valley, but that is probably not meaningful. Generally I agree with you that the trend world-wide is there are most listings for .NET jobs than Java. Part of that is due to a lot of short term contracts for .NET, and part of that is that Java and .NET don't overlap much in where they are used even if the capabilities of each language overlap significantly.

    If you want to tie a bunch of services together on Windows, .NET is what you use. If you want to ship a medium sized service for your business, perhaps in a heterogeneous environment, you might go to Java first. That's not to say there are technical limitations or advantages in each rule, those are just some niches that where people seem to have a preference for one over the other.

    (bias alert - I have a strong preference for an open standard like Java over a privately controlled language like .NET)

  60. Self, Java & LiveScript by Anonymous Coward · · Score: 0

    An interesting bit of history is that Sun was developing an OOP language before Java called Self. Self was inspired by Smalltalk, but the major difference was replacing classes with prototypes. And of course that was Brandon Eich's inspiration for making JavaScript a prototype-based language. Unfortunately, Sun and Netscape were in cahoots. Sun wanted Java to be the language of the browser, but Netscape was developing their own language called LiveScript. So the compromise was to rename LiveScript and make it look like Java on the surface. And thus followed 20 years of confusion over the name and the prototypal nature of JavaScript.

    It makes me wonder how things would be different if either of the two had occurred:

    1. Sun stuff with Self and brought it to market instead of Java in the mid 90s. The JVM is based on pioneering VM work with Self to make it more performant.

    2. JavaScript remained LiveScript and fully embraced prototyping like the programming language IO does.

  61. Re:I don't know why people still say Java is slow. by freefal67 · · Score: 1

    Did you just call Lisp *performant*?

  62. Forever is a long time.... by mark-t · · Score: 1

    ... so I frankly doubt literal veracity of the headliine.

    But I won't dispute that Java has changed the face of programming when comparing worlds before it existed and after, although many languages can make that claim, including C, and probably C++. I'd not be surprised if even BASIC could not be said to have had such a dramatic influence on programming. Fortran and COBOL would be up there as well, possibly even greater than most of the others combined.

    1. Re:Forever is a long time.... by Anonymous Coward · · Score: 0

      It's curious that neither SmallTalk nor Eiffel really took off when they're better OOP languages which proceeded Java. Of course, worse is better, and so is appealing to the C++ crowd.

  63. This sounds awfully familiar.... by whitroth · · Score: 1

    About the way COBOL was sold....

                      mark "puts paper bag over head before admitting he wrote COBOL long ago, using magnets to write the code...."

  64. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    Abstraction exists for code re-use and to make parts pluggable

    Abstraction does not necessarily mean OOP.

  65. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    Something is wrong with your computer then. All my computers have core i5's and it takes ~5 seconds to load Visual Studio. Eclipse has always been slow, but usually loads within 30 seconds. Netbeans sure wouldn't take longer than 30 seconds, but I haven't used it in awhile.

  66. Be gentle by DrYak · · Score: 1

    On a related issue, I still hold my position: In a near future, (and perhaps because of this stupid IOT thing) {...}

    I'm under the impression that: as currently lots of the precussors of future IoT projects are from the maker culture it's probably one of the more hipsterish languages like Python and Ruby which might see more rise.

    If you think of it, currently it's platforms like Raspberry Pi which are the forerunner of all the future connected small things. It's the "plant tweeting when it needs water" of today, that are the "intelligent fridge which automatically fills your grocery list" of tomorrow.
    And currently, Python is *the* most popular rapid prototyping language on these platform.

    all the Java based appliances will start to work together and bring Skynet to life. Prepare yourselves to run away from hordes of Java-powered T1000s!!! I for one welcome our CPU and memory hungry robotic overlords.

    Well, try to be gentle with them. Do to run too fast so they can try to pretend they can keep up. And while running, please push aside all the various garbage laying on the ground so that these Javaminators don't trip on them and fall (or stop to automatically collect it up).

    Also be kind: if you meet more than 1 of them, it would be proper etiquette to act as a translator between them so they can understand each-other (specially if one of them speaks microsoft dialect)

    Try also to be understanding toward their sensitivities. There are a few of their kind that the remaining Javaminators consider untouchable (specially the one called Dalvik). Try not to madden them because you don't agree with that rejection (Even if you consider that actually that pastry-obsessed-outcast is the cool guy you want to hang around with).

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  67. like memory managment? by Anonymous Coward · · Score: 0

    IANAJP, but "practical tool for getting work done"...

    Besides the memory management (garbage collection), what are a couple things that makes Java good for getting things done?

  68. Programming Lanuages don't really die. by Anonymous Coward · · Score: 0

    People still code in COBOL in some places.

  69. Most expensive Java program ever? by cliffjumper222 · · Score: 1

    Minecraft - $2.5 Billion dollars - anyone beat that?

  70. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    (proof that torvalds actually uses C++ if anyone hasn't seen that: https://github.com/torvalds/su... [github.com])

    Linus never said he wouldn't write or contribute to projects written in C++, he said the C++ language is inappropriate for kernel code. No more, no less.

    Back on topic, I have been in programming and systems administration professionally for over 35 years, and the Java that exists in the field today is generally the worst performing, most overwrought code I've ever seen. This is not necessarily meant to be a criticism of the language, but rather of the programmers that write in it. It's said that a good programmer can make good code in any language, but Java programmers consistently produce expensive, underperforming garbage that is easily replaced with cheaper, faster code written in nearly any other language (even BASIC or PHP!).

  71. The new COBOL (and the vm) by Sarusa · · Score: 2

    Its greatest achievement was to be a C-like language in which legions of mediocre corporate coders can work on the same codebase without hurting each other too badly. This lets you replace COBOL.

    Then the whole bytecode on a virtual machine thing, which while it had been done before (UCSD Pascal), Java's VM really made practical. People complain about Java's slowness, but the VM is really quite speedy (and the sandboxing is amazing). You can write high frame rate FPSes in it (Quake!). It's usually bad coders and bad frameworks that cripple performance. And without the JVM we probably wouldn't have .NET, Mono, and the CIL. Certainly not as good - it really helps to have done a previous version.

  72. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    i7 3770K desktop with 16GB of RAM and a spinny (a.k.a. "slow") HDD:
    - VS2012 launches in 7 seconds.
    - VS2010 launches in 2 seconds, but I already had 2 instances of it running so most of the shared libraries were already in memory.
    - VS2008 launches in 1 second, but again, I already had an instance running.
    A "cold start" wouldn't cause it to take much longer than that, as long as the entire OS wasn't still spinning up a SQL Server instance or something. Under 10 seconds should be normal on a decent dev box. A laptop might take an extra 5 seconds, due to downclocking inflicted by power management stuff. It should NOT take anywhere near a minute to start an IDE.

    And, yes, I really need multiple instances and versions because...
    - VS2008 is the last version to be able to handle old-school WindowsCE development, and one of our clients has a WinMo 6.5 barcode scanner app.
    - VS2010 is the last version to be able to use "datadude" SQL projects, and we have a few dozen of those.
    - VS2012 is the first version to be able to use WebAPI 2.x projects, and we have some of those. We've also begun porting our database projects over to the new SSDT ones.

    I also have a trial of VS2013, which we decided not to bother upgrading to because there wasn't an absolute need for it. But I have a feeling we're going to get VS2015 so we can do some "universal" apps, and possibly some Android/iOS cross-development stuff.

  73. My life in the bush of java by choke · · Score: 0

    Perhaps my experiences are unique, but in the 10 or so years I've been working with and around java development what I've seen is that java permits mediocre developers to produce complex software that's inefficient and badly abstracted, that does complex things slowly.

    Furthermore, the little third world walled garden that java puts these developers in isolates and insulates them from the systems they are impacting.

    That's my honest experience. Java developers of all the languages I've had to support on average have been the least skilled and least - I don't even know. It's hard to even qualify. Other developers take an interest in systems issues and work to improve it. Working with java developers is often like working with ducks. You can explain things over and over, and in the end unless you fix it from a systems perspective, nothing is going to get done because they don't understand or don't care.

    To me, java was designed for one thing which makes a moderate amount of sense. A platform that is global. It isn't that, because java on each platform is fundamentally different due to the libraries involved, but furthermore it's a terrible fit for most of things I've seen people do with it.

    --
    "No good deed goes unpunished"
    1. Re:My life in the bush of java by twisp42 · · Score: 1

      Sounds like poor management, poor hiring, and poor technical leads.

  74. JVM is more relevant than Java itself. by ampsicora · · Score: 1

    Java is most certainly not dead, but it has transformed. The language itself is not as much relevant as the JVM abstraction, since now you can code in Python, Clojure, Scala, Ruby, to bytecode. This minimum common denominator becomes immensely important when deploying applications to the cloud, since you can find tons of providers that can run applications on JVM, and you also get for (almost) free a ton of tools to monitor your apps with JMX (debugging, profiling, etc).
    Hadoop and its ecosystem, Spark, Kafka, Storm and a lot of other cloud oriented software are written on the JVM. Nobody wants to care on which hardware you're running for most applications (that is, if you don't need a GPU, but that's being commoditized too).

  75. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    Perhaps you have worked on large scale software projects, but I doubt you have abstractions worth a damn.

    Much of the enterprise software is abstracted badly, with pointless classes that do not reflect any kind of domain mapping. They do tend to have lots of lines of code in small methods to keep automatic code quality tools happy.

    These applications typically are unreliable on timescales of a week, whilst we have (and I have built) true HA systems that have given little trouble over decades.

    You have more fanboys who extoll the virtues of the only technology they know (and probably the only one that would have facilitated their career as low-grade code monkeys on applications they don't understand).

  76. Re:I don't know why people still say Java is slow. by Gr8Apes · · Score: 1

    Funny enough, it is the lack of proper abstraction that causes the kind of code bloat you're describing. If you're cutting and pasting boilerplate code and doing a search/replace within your "new" files, that is a clear warning flag of bad software architecture.

    --
    The cesspool just got a check and balance.
  77. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    On my laptop, a Sandy Bridge i7, on a cold start, Netbeans 8 takes 57 seconds to launch before it's clickable, Visual Studio 2013 takes 68 seconds. Netbeans is also more responsive while it's busy, with Visual Studio displaying the full hourglass cursor and triggering the "application not responding" behaviour if its window is clicked before it's ready.

    Sounds like you have something seriously wrong with the setup of that machine. On my 8 year old desktop with 4 GB of RAM running Windows 8.1 it takes about 10-15 seconds for Visual Studio 2013 to cold-start. It takes about 5 more seconds to create a new empty C# project and start actively typing code.

  78. Java is the new COBOL by techfilz · · Score: 0

    The most boring and brain-sapping 'Enterprise' technology out there. Honestly - who goes home and thinks 'Aah - a couple of nice quiet hours programming in my favourite language on my favourite projects'. Even the outsource Indians at work seen tired of Java. Or life. Can't tell.

    1. Re:Java is the new COBOL by Anonymous Coward · · Score: 1

      +1 Passive aggressive / racist

  79. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    Horses for courses, as the saying goes.

    A proper C++ string class clearly trumps all the shite they have in C strings.

    But yeah, nobody forces you to use an electric screw driver on a watch. APPLY BRAIN.

  80. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    Mr Torvalds is already an old fart. Properly used C++ code could certainly make any OS kernel more secure (because of more intrinsic checks) and better to maintain (because of better abstractions). Of course, you now want to know the definition of "properly used".

    This would be a long story, but lets put it this way: Don't use all C++ features; use the ones which make sense. Start out with the things you understand well. Don't use C++ gizmos because somebody propagandized them as "cool".

    The last maxim is of course the most difficult one. Humans influence each other and some influencers are way more powerful than people realize. But at the same time their intelligence is rather limited or they are outright malicious.

  81. Re:I don't know why people still say Java is slow. by Anonymous Coward · · Score: 0

    The last proper VS was VS2008. After that they dumped the C++ code and replaced it by some shitty C# stuff. Little wonder it is now as bad as Eclipse.

  82. PussySoft by Anonymous Coward · · Score: 0

    Also, it now cannot even do basic things like navigating to definiton of a symbol. You need a third-party plugin for that to work.

    All the fun of Cheap C# Developers.

    I also hear the VS team lead is now a pussy. Akin to a kindergarten being run by a guy. Go figure.