Slashdot Mirror


The Details of Oracle's JDK 7 and 8 'Plan B'

gkunene writes "Oracle has put Java 7 and 8 features up for Java Community approval, providing a clear indication of what the next two major versions of Java are likely to include. (Java 7 contents, Java 8 contents.) From the article: 'The JDK 7 and 8 JSRs represent Oracle's 'Plan B' approach for separating JDK 7 into two separate releases, splitting up features that were all originally intended for the Java 7 release. This approach is intended to help expedite new Java releases. Among the key components of the original Java 7 plan that are now set for inclusion in Java 8 are the Lambda and Jigsaw efforts. At JavaOne this year, Thomas Kurian, executive vice president, Oracle Product Development, explained that Lambda is all about bringing closures to the Java language. Kurian noted at the time that Lambda is intended to provide a more concise replacement for inner classes, as well as support automatically parallel operations on collections. Jigsaw is all about building modularity into the Java Virtual Machine.'"

204 comments

  1. Java Community approval by jrumney · · Score: 3, Insightful

    Is there still a Java Community left to approve this? I thought Oracle had managed to alienate them all over the past 6 months.

    1. Re:Java Community approval by socceroos · · Score: 1

      My thoughts too.

      Is now a bad time to be considering learning Java at UNI?

    2. Re:Java Community approval by countSudoku() · · Score: 0, Troll

      Just the couple of folks still milling around the Oracle offices, the rest of the world is pondering this and Oracle's other missteps... let's face facts, most of the devs you'll ever see are all stuck on Java 4. Newcomers are right to start coding in C, Perl, Python, Assembly, Ruby, Erlang, Go and every other freely available language. Java is being decommissioned and will only be used as a benchmark for how wasteful a particular company is and how much more you can screw them... er, negotiate with them for a much larger salary.

      Oh, you use Oracle DB, Solaris, AND Java... $$$^) let me adjust my salary requirements up a few dozen percent! Thank you, One Raging Asshole Called Larry Ellison! Suddenly, I'm charging a SHITLOAD more, while doing nothing more.

      If your enterprise depends on Oracle, get ready for paying through the nose again when it's time to hire the Oraclly Inclined.

      --
      This is the NSA, we're gonna geet U h@x0r5! Also, what is a h@x0r5?
    3. Re:Java Community approval by Anonymous Coward · · Score: 2, Interesting

      The language you'll learn at uni isn't generally to learn the language - the language is used to deliver programming concepts. The language is rather irrelevant - although you'll probably be inclined to find a job that uses the programming language you've learned. Search around and find a different language you like (possibly also OO if you're just starting out) and do your stuff in java for uni, and then try and do it again in the language of your choice.

      Java at uni is just the train. But considering your name, and the fact you called it uni and not college, and that you're learning java, I could take a pretty good stab at which uni you're going to ;)

    4. Re:Java Community approval by bytesex · · Score: 1

      The Java community consists of Oracle (databases), IBM (mainframes) and Apache (tomcat), like it has done for a few years now. You can't alienate the Oracle and IBM people, because they're paid to be loyal (i.e. they're employees at banks and stuff). The only people it alienated, are the tomcat people but then again, they are the only ones that truly benefit from java's one and only killer-feature, and that is that is runs anywhere.

      --
      Religion is what happens when nature strikes and groupthink goes wrong.
    5. Re:Java Community approval by gutnor · · Score: 4, Informative
      The change was proposed by the community. Sun lack of direction/focus has put enough misery on the release of Java 7 so the choice was to either to split the release in 2 part or release Java Vista some day in the future.

      That has been years since the Java community is largely working outside of Sun, now Oracle, guidance. Innovation in the java world happens in third party open source frameworks that are born, mature and even reach legacy level before they make it into the Java JDK. Look at dependency injection, ORM, alternative languages on the JDK, ...

      Obviously with a new boss around, especially with one with more teeth than the apathetic Sun, there is some territorial pissing going on between the big players: Apache, JBoss, IBM, ... but the split of the JDK is not such instance.

    6. Re:Java Community approval by The+End+Of+Days · · Score: 1

      One killer feature of Java is that it is extremely amenable to static analysis, and hence tooling. Large team facilitation and automation of various parts of development are two of the major benefits of this.

      The other killer feature is the huge library of components available. Much like Perl has CPAN, Java has library support for basically anything you could dream you need.

      The platform independence is nice, but in practice that mainly means developers can run their code on Windows workstations and deploy on Unix servers. That accounts for about 75%* of Java use. There are a few uses of Java as a client app, of course, but those are dwarfed by the bespoke corporate server software written in Java.

      *I pulled that number from my ass.

    7. Re:Java Community approval by Anonymous Coward · · Score: 3, Interesting

      It's hilarious how clueless you and most of Slashdot are. At Google, we're actually writing more Java code than ever, and Python is slowly being phased out. Pretty much all of the big companies in the area are consolidated almost entirely on a mixture of C and either Java or .NET. Python and Ruby are basically relegated to simple CRUD web applications where performance doesn't matter and threading is inconsequential. While Java is a pretty bad language, Python and Ruby aren't anywhere near being able to compete with it because all of the usable implementations are terrible. CPython, MRI and YARV are garbage, and it'll take years before they reach an acceptable level of performance and remove the GIL. In fact, once InvokeDynamic is added to the JVM JRuby will be the best Ruby implementation by a pretty big margin...

    8. Re:Java Community approval by node+3 · · Score: 1

      Is there still a Java Community left to approve this? I thought Oracle had managed to alienate them all over the past 6 months.

      All the fuss I've seen was more along the lines of various "Java Community" members crying "oh no, Oracle!" and making a fuss rather than Oracle actually doing something worthy of such a response.

      Now you get people on Slashdot asking strange questions like whether it's a bad time to learn Java, and someone else freaking out because of the Oracle logo on OpenOffice. It's all rather odd.

    9. Re:Java Community approval by dudpixel · · Score: 1

      sssh, you're ruining it for them.

      see, this is just a move to show that Oracle are being friendly and nice to the community. The fact that said community no longer exists was supposed to be a secret.

      --
      This seemed like a reasonable sig at the time.
    10. Re:Java Community approval by Anonymous Coward · · Score: 0

      So you are saying, performance driven tech which covers 0.0001% of the world dictates the rest of the world. Not likely in the least.

      Realistically java is in trouble and python and ruby continue to grow. That's not saying java is dying, but its at a crossroad for its future in growth and market position.

    11. Re:Java Community approval by LingNoi · · Score: 1

      Are you living in a cave or something? There are pretty good reasons for everything you are hand waving away. Even a quick skim of the latest slashdot articles on the subjects would clue you in.

    12. Re:Java Community approval by GooberToo · · Score: 1

      There was a study, which was previously reported here, which stated, the vast, vast majority of Java applications never run on any system other than like-systems to which they are developed on and for. So basically, Java's run anyways promise never matters in the real world.

      So chances are, if you're developing for a Win system, it will run on a Win system. If you're developing on a Linux/Unix system, chances are it will run on a Linux/Unix system.

    13. Re:Java Community approval by shugah · · Score: 1

      Just Larry, Darrell and Da ... oh wait. Just make that Larry.

      --
      If you aren't part of the solution, then there is good money to be made prolonging the problem
    14. Re:Java Community approval by Anonymous Coward · · Score: 0

      Although anecdotes aren't data, here's one: I was once on a server project for a telecom vendor. All the devs had the corporate standard Windows machines, but the app itself ran on Linux, and I was in charge of making that happen.

      And yes, it took a lot of work and constant email reminders on how to do stuff properly so it would port nicely. The code run well but there were Windowsisms everywhere. Not to mention all the single-machine assumptions (since the app had an app component and a management component and these were deployed on separate machines...)

    15. Re:Java Community approval by node+3 · · Score: 1

      It's funny you claim I'm "hand waving" them away, as you are conveniently "hand waving" them into existence. If you had actual examples in mind, it's suspicious that you wouldn't mention at least one or two.

      The only thing that even remotely comes to mind is Oracle suing Google for their proprietary Dalvik VM. This seems pretty similar to when Sun sued MS for their proprietary Java VM, so it's not like Oracle is taking things in a turn for the worst with regards to their Sun acquisition.

      Really, as far as I can tell, it's all pretty much "oh no! we're afraid of what Oracle might do!" and nothing more.

    16. Re:Java Community approval by TheTurtlesMoves · · Score: 1

      Its worse than that. Its more like we just don't like Oracle. Seriously, even if you get a free pony with every java download, the headlines will slam Oracle because the pony's aren't pink, clearly because they are just obsessed with profit.

      Ironically most of my ex workmates that still work in a lot of enterprise places are happy that java is finally moving forward. There was indeed a consensus that Oracle can't be worse than Sun.

      I know quite a few companies that have a very strong dislike of Sun with some of their corporate licensing shenanigans. Its not like IBM or Sun are the saints of the corporate world (where did the nick "big blue" come from again... or no one gets fired for buying IBM?).

      Also folks seem to forget that originally there was not JCP. Just like C# (I think), java was a company language. It got popular then, and JCP was added later.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    17. Re:Java Community approval by Serious+Callers+Only · · Score: 1

      At Google, we're actually writing more Java code than ever

      So you're consolidating everything on a language managed and (as they see it) owned by a company which is currently suing you for using that language in ways they don't like?

      Perhaps not the best strategy, regardless of the technical merits (or not) of Java.

    18. Re:Java Community approval by Anonymous Coward · · Score: 0

      The lawsuit isn't the big deal Slashdot makes it out to be and this was being discussed long before Oracle bought Sun.

    19. Re:Java Community approval by prionic6 · · Score: 1

      Java's promise is not that any application runs anywhere, just as C doesn't promise that every program can compile and then run anywhere.

      In C, you can build cross platform applications that run on many systems with a recompile.
      In Java, you can build cross plattform applications that run on many systems without a recompile.

      In both cases, you must be careful to not use system specific features to be truly compatible.

    20. Re:Java Community approval by Anonymous Coward · · Score: 0

      Doesn't mean developers don't take advantage of the cross-platform ability between different projects. Employee 1 can use his java expertise at Company A with Windows and also at Company B with MacOSX, Linux, ... for example.

      Also, LOTS of companies develop on windows and deploy to linux, so I'm not really buying into your study.

    21. Re:Java Community approval by icebraining · · Score: 1

      .NET

      Yeah, right. Google suddenly decides to use Windows in their farm.
      And no reference of Go?

      CPython, MRI and YARV are garbage, and it'll take years before they reach an acceptable level of performance and remove the GIL.

      The GIL is no problem if you use processes or green threads.
      But if it's so much bet, why choose it for Google App Engine? Why work on unladden swallow?

    22. Re:Java Community approval by Anonymous Coward · · Score: 0

      The run-anywhere promise is not just about the stand alone apps, but libraries. There's 3rd party Java libraries for pretty much everything, some developed in Linux system, some in Windows, Mac OS etc...

    23. Re:Java Community approval by matfud · · Score: 2, Interesting

      Well my experiance is developing on windows and linux. Testing on linux. Deploying on various different Sun boxes some sparc 8 and 9's and some T1000 and T2000. More recently the code was deployed on a series of intel based blades (installed by IBM) in a new data centre. So yes just being able to do that makes java work well.

    24. Re:Java Community approval by Anonymous Coward · · Score: 0

      There was a study, which was previously reported here, which stated, the vast, vast majority of Java applications never run on any system other than like-systems to which they are developed on and for.

      Err, no.

      Most java apps are server-side web stuff. Quite often the development environments are not the same as production. For example I'm currently developing on windows, but production (and other environments) are Linuxes.

    25. Re:Java Community approval by Anonymous Coward · · Score: 0

      The point is I can pick any platform I want and know that I can use the same API and language.

    26. Re:Java Community approval by danieltdp · · Score: 1

      MMM The guy was talking about comunity participation on the language evolution, not comunity adoption

      --
      -- dnl
    27. Re:Java Community approval by Jurily · · Score: 1

      Google suddenly decides to use Windows in their farm.

      Or, you know, Mono. With all the brain damage of .NET, C# is still a pretty awesome language.

      And no reference of Go?

      Go was meant to be an alternative to C, not Java. In particular, it's not object-oriented, even if it has some similar features.

    28. Re:Java Community approval by Anonymous Coward · · Score: 0

      They didn't poll me or the people I work with, then.

    29. Re:Java Community approval by Anonymous Coward · · Score: 0

      I do the same at my work, we have found so many bugs on those differing architectures that is scary, especially when you move over to HP/UX everything goes basically worse. Different JVM bugs, scaling problems withing the JVM, not forking correctly, not joining threads correctly. Sun and now Oracle more or less ignoring the problems. Printing not working on some platforms etc etc.

      Java is write ones, debug everywhere.

      And if you say anything else, you have not pushed java to its limits.

    30. Re:Java Community approval by David+Gerard · · Score: 1

      I work in a Java shop (apps in Tomcat) and we do precisely that: devs have Windows PCs, deployment is to assorted Solaris and Linux machines. With our next server refresh, it'll be: Windows PCs, Solaris dev chain (x86 and SPARC), Linux live servers.

      So if devs do anything that isn't cross-platform, their stuff just doesn't work.

      --
      http://rocknerd.co.uk
    31. Re:Java Community approval by David+Gerard · · Score: 1

      Our devs have Windows PCs but the internal dev chain is Solaris. This means that if they do stuff that isn't cross-platform, it just doesn't work. In practice, this works out well and is fine with everyone.

      Solution: make a "test" server that is Unix (and is automatically updated from CruiseControl or whatever). Commits don't count until they work on the test server. Works for us.

      --
      http://rocknerd.co.uk
    32. Re:Java Community approval by David+Gerard · · Score: 1

      "Java Vista" was my precise thought too. This split appears to be a desperate attempt not to have Java 7 fall down a hole.

      We're currently on Java 5, which was EOLed last November. I wanted to go to Java 7, and our stuff all works on it, but ... it was supposed to be out around now.

      So we're going with Java 6. Which may never be EOLed at this rate.

      --
      http://rocknerd.co.uk
    33. Re:Java Community approval by matfud · · Score: 2, Insightful

      Yes I have pushed java to it's limits. It mostly works. There some nasty things that will get you but trivially avoidable. When you have to put it on various machines it does just work. HP/UX I have not yet encountered.

      Matt

    34. Re:Java Community approval by matfud · · Score: 1

      I want to know what problems you have had. I've not really had many. Some issues with devs not handling files properly. But everything else worked fine. IBM's jvm has caused some issues and a few with Suns jvm.
      Matt

    35. Re:Java Community approval by Anonymous Coward · · Score: 1, Interesting

      At Google, we're actually writing more Java code than ever, and Python is slowly being phased out.

      That's interesting. I had my first phone interview with Google last week, and the recruiter was enthusiastic when I said that Python was my primary language.

    36. Re:Java Community approval by Anonymous Coward · · Score: 1, Informative

      Apparently you are the clueless one. Jython and Iron Python do not have the GIL.
      Jython makes for a much richer development environment.
      http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html

    37. Re:Java Community approval by triffid_98 · · Score: 1
      So you're planning to fire Guido van Rossum too? He and Brian Reid should form a club/class action suit.

      Carousel is a lie, there is no renewal!

      It's hilarious how clueless you and most of Slashdot are. At Google, we're actually writing more Java code than ever, and Python is slowly being phased out.

    38. Re:Java Community approval by Chris+Walker · · Score: 2, Insightful

      No. Learn as many languages as you can. You're less likely to believe that one language fits all needs that way. Java isn't going to suddenly drop out of use, there is too much investment in it.

    39. Re:Java Community approval by gangien · · Score: 1

      bullshit.

      granted it may not matter as much as it's hyped, but.. that's just hype.

    40. Re:Java Community approval by Anonymous Coward · · Score: 0

      Heavy weight processes are not a replacement for proper threading and the suggestion to use "green threads" shows that you don't really understand the problem. Unladen Swallow is also basically a dead project.

    41. Re:Java Community approval by GooberToo · · Score: 1

      Why so many angry responses at me? I just reported what the study said. To date, I've never seen a reason to disagree with the study. Beyond that, I'm not really sure why it matters. I simply offered what I believed to be an interested counter point in what was more or less a passing comment.

      Seriously, why does it matter? Its absolutely does not. Period. The fact that so many got so upset, mostly cowardly posting anonymous, seems to hint that something smacks of ego issues in Java developer land. Seriously. Think about it. Does it matter if its true? It doesn't say anything about its ability to develop cross platform solutions. Hell, it doesn't even say anything about the solution. It only says that by in large, the platform its developed on tends, by a wide measure, be the platform its deployed on. Aside from interesting, who cares - aside from a mass of Java developers who seemingly got their feelings hurt over absolutely nothing. WTF?

    42. Re:Java Community approval by icebraining · · Score: 1

      On Linux, processes are very lightweight, especially since it uses COW. And on the web, inter-process communication is less important, which means you don't incur in marshaling overhead.
      "green threads" won't help you scale over cores, but within each core, they can be faster than normal threads.

      Also,
      http://distractable.net/coding/google-appengine-java-vs-python-performance-comparison/
      http://gaejava.appspot.com/

      Unladen Swallow is also basically a dead project.

      But it showed Google commitment on Python.

      You just shouted a bunch of things without anything to back them up.

    43. Re:Java Community approval by xiaobu · · Score: 1

      Most people say that wearing a Chopard is quite irritating, but this statement does not apply to others. It is very convenient to know the time when one is wearing a Chopard Watches . Finally, a person's social status may be established by just looking at one's Replica Chopard . Other persons use this Replica Chopard Watches stated just to show off, but that is his choice.

    44. Re:Java Community approval by gangien · · Score: 1

      i responded because what you said:

      So basically, Java's run anyways promise never matters in the real world.

      is bullshit. my career thus far has depeneded upon java's cross platform abilities. in the first case we supported our product on z/OS and for the most part, stuff worked.

      And there's things like weblogic, websphere, jboss. Which people run on different platforms, so it certainly isn't just me.

  2. Methinks They Should Redirect by Anonymous Coward · · Score: 0

    They should really focus their efforts on the whole Microsoft-Novell buyout. They will lose the farm to Microsoft if this deal isn't blocked. Java is secondary. Or maybe they are in on the whole deal?

    1. Re:Methinks They Should Redirect by Eskarel · · Score: 1

      There's no deal to block, Microsoft bought some IP, which doesn't require any approval, and Attachmate is buying Novell which has nothing to do with Microsoft.

    2. Re:Methinks They Should Redirect by exomondo · · Score: 1

      They should really focus their efforts on the whole Microsoft-Novell buyout.

      What buyout? MS bought some IP; and we don't even know what that IP is. What's is the specific issue you're concerned with?

  3. Go Java Go by cowwoc2001 · · Score: 1

    Love the new features, except for Project Lambda. The proposed syntax needs to be more Java-like.

    1. Re:Go Java Go by Anonymous Coward · · Score: 0

      Welcome to 15 years ago in language design. Now how about some box-less generics?

    2. Re:Go Java Go by certron · · Score: 2, Interesting

      Macros in Lisp were introduced in the mid-1960s and are a powerful way to extend that language. However, the syntax of Lisp is very regular, so adapting the power of the prefix notation of Lisp into a language with a procedural syntax like Java is not going to be too easy.

      I'm a little surprised that there isn't more mention of Lisp in this thread, considering that the lambda calculus that it was built on is the source of the name for one of the language projects.

      Being able to transparently extend your language is a powerful tool that Lisp exploits to full advantage, provided the programmer knows when to use them. The regular syntax, functions as first-class objects (treated the same way as variables), and the macro system are the three features that build upon each other to make it such a flexible language.

      See footnote #5 for some elucidation, although I certainly didn't learn Lisp on my first try: http://gigamonkeys.com/book/macros-standard-control-constructs.html

      --

      fair.org counterpunch.com truthout.com indymedia.org salon.com
      eff.org guerrilla.net debian.org gentoo.org
    3. Re:Go Java Go by Anonymous Coward · · Score: 1, Interesting

      It seems like a repeat of C++0x lambdas to me. Introduce a new unnatural syntax because of fear in breaking old code. I'm sorry... but even coming from a C++ fanboi, that's a horrifying way to design a programming language.

    4. Re:Go Java Go by TheLink · · Score: 1

      However, the syntax of Lisp is very regular, so adapting the power of the prefix notation of Lisp into a language with a procedural syntax like Java is not going to be too easy.

      Seems that some people write a Lisp-like interpreter in Java and then have the "configuration files" aka programs in XML ;).

      I've seen some pretty large XML config files...

      --
    5. Re:Go Java Go by certron · · Score: 3, Interesting

      The funny thing about the great flexibility that the frameworks like Spring provide is that you are defining the functionality in the XML files instead of the code, but now you have to learn two languages. The nestable list structure of Lisp is almost the same as the hierarchical format of XML, and in fact, that is how they are often represented natively in Lisp XML parsers. Instead, you could just use one language, structure your data properly, and extend the language to fit your problem.

      --

      fair.org counterpunch.com truthout.com indymedia.org salon.com
      eff.org guerrilla.net debian.org gentoo.org
    6. Re:Go Java Go by Cyberax · · Score: 1

      So everyone has to use a Turing-complete language for configuration files? How about IDE and tool integration which is impossible in general with Turing-complete languages?

      And if we restrict ourselves to pure s-exprs, then we just get isomorphic representation of XML.

    7. Re:Go Java Go by shutdown+-p+now · · Score: 4, Informative

      For starters, to provide some context, here is the current text of Project Lambda proposal - it's a fairly short and readable document explaining both syntax and semantics. Here is the mailing list.

      Project Lambda. The proposed syntax needs to be more Java-like.

      There's a load of issues with semantics as well. They carried over a bunch of limitations from anonymous inner classes, such as inability to capture mutable locals (though at least you don't have to slap "final" on everything now, that will be inferred) - so it's still not true closures.

      I was also rather disappointed by the way community input was handled in Project Lambda. Originally, it was unclear why they started it from scratch when there were as many as 3 major proposals for lambdas already (BCGA, CICE, FCM) which could be used as a base. The original claim was that community is too divided on those, and so a "clean slate" effort, guided by feedback of all interested parties, would reach a more universally accepted solution. What happened instead is that, after a lot of discussion on syntax and semantics, Sun - er, Oracle - just published their own spec and started to implement it right away. Pretty much all feedback on that was either quietly ignored, or disregarded under various reasons. This concerns both syntax and semantics.

      With syntax it was especially disconcerting. Originally, there was a lot of discussion focusing on syntax on the mailing list, so Sun/Oracle folks declared a moratorium on it, saying that it's "not so important" and that "we can discuss it later", after semantics are figured out. Since then, their proposals have had a major unilateral revision of syntax, and that is seemingly final for the proposal given that it's what they plan to submit for JCP. So the syntax was effectively not discussed at all in any way that made a difference, even officially.

      The only case of feedback on semantics seemingly making any difference was with respect to lexical scoping of identifiers in the lambda. Consider this code:

      abstract class SamType {
      int foo;
      abstract int bar(int x);
      }

      class Test {
      int foo = 123;
      void baz() {
      SamType f = #{ int x -> x + this.foo };
      }
      }

      The question at hand was about what "this.foo" in the lambda body is supposed to mean. The original Sun/Oracle proposal wanted to have the same rules as for anonymous inner classes; in this case, since the lambda is an instance of SamType, this would mean resolving "foo" to SamType#foo on the lambda itself, and you had to write "this.Test.foo" to get the other one - again, same as with AICs. After a lot of negativity on the mailing list, they've changed it to use strictly lexical scoping - so "this.foo" now refers to Test#foo.

      However, even in that case the attitude was interesting - when discussion started on the mailing list, Sun employees were quite dismissive of any criticism, and their response pretty much boiled down to "we believe users who're used to AICs will want lambdas to behave the same". Then suddenly they release a new spec with updated semantics, and no comments as to why they changed it, disregarding their own past arguments in favor of the old one.

      So, as far as "community participation" goes, I'd say that Project Lambda has largely been a failure so far. We'll see if it favors any better in JCP.

      As to its technical merits - we'll see when it gets released, but if this happens in its present shape, then I'm afraid that it is rather deficient to all competitors out there (Scala, C#...). Aside from capturing mutable locals, one other major issue that goes unresolved is that they had discarded first-class function types, so you have to make do with SAM ("single abstract method")

    8. Re:Go Java Go by lisp-hacker · · Score: 1

      And in fact there is Clojure http://www.clojure.org/ , giving you parallel lambda execution and macros. I'm not quite sure that the Lambda will ever make it into the Java standard. Not even the Generics are fully supported at a JVM level. Most of the Java designers still love classic for-loops and consider anything functional as 'strange and exotic programming style'.

    9. Re:Go Java Go by chthon · · Score: 2, Insightful

      For a growing complexity in a certain problem domain, the border between configuration and the creation of a domain specific language becomes rather thin.

    10. Re:Go Java Go by logpoacher · · Score: 2, Insightful

      Definitely. We used to call it "PPL" - Property-file Programming Language - the tendency for simple name-value property files to acquire strange little bespoke syntaxes and nesting structures. The question isn't whether you will do it - it's how soon you face it and how elegantly you'll achieve it.

    11. Re:Go Java Go by Anonymous Coward · · Score: 0

      I for myself found current state of lambda proposal much better than any of the previous proposals. Read the last part of this documentation

      http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-3.html

    12. Re:Go Java Go by shutdown+-p+now · · Score: 1

      I for myself found current state of lambda proposal much better than any of the previous proposals

      If you look carefully, I've linked to the very same document from my post. What, in particular, is special about the last part of that document?

      In any case, my point is not that the present revision of the lambda proposal is worse than previous revisions from Sun/Oracle. My point is that it's worse than the third-party proposals that preceded it (especially BGGA). It's also worse than implementation of closures that is already present in other languages that directly compete with Java - most notably, in C# and in Scala.

    13. Re:Go Java Go by sourcerror · · Score: 1

      I think GP's point is perfectly valid: only use a stronger language, when absolutely needed. (In the Java world they're Groovy, JRuby, Jython, Beanshell) Macroing is nice, I've done a lot of it in Prolog, but for group project static checking can save a lot of pain in the ass.

    14. Re:Go Java Go by CondeZer0 · · Score: 1

      And as hideous as Java code can be (and often is), XML suck smuch more. XML is verbose, unreadable, and a huge pain in the ass to edit.

      --
      "When in doubt, use brute force." Ken Thompson
    15. Re:Go Java Go by Anonymous Coward · · Score: 0

      Spring has had the ability to configure your application context in Java for some time now and other IoC frameworks (most notably, Guice) do to.

      The flexibility that frameworks like Spring give you has nothing to do with the ability to use XML and more to do with the IoC pattern which allows for easier testing and encourages designing towards interfaces.

    16. Re:Go Java Go by maraist · · Score: 1

      Hense the introduction of convention-based-configuration.. e.g. zero configuration except where it deviates from convention... In other words, field A matches a class also named A. Controller B matches view named B. HTTP form-field C matches input field C. In one sense it's magic/side-effect based coding. In another, it's intuitive programming.

      I've personally taken thousand-file projects (quarter million lines of code) and only required about 1,000 lines of XML (almost all dealing with database, bootstrapping, and environment settings - for which you'd have needed more java code to have done the same thing).. And 5x as much C++ code. There are definitely polymorphic cases where this breaks down, but I've found that OO is highly over-rated - especially when dealing with database persistable objects - I've gone back and replaced OO-DB styles with switch-statement dispatches to OO data-structures.

      --
      -Michael
  4. It seems a little lean by msobkow · · Score: 3, Interesting

    Both releases seem a little lean on features compared to Sun's release schedule. On the other hand, they're starting to run out of reasonable features to add to the language without turning it into a kitchen sink.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:It seems a little lean by Arancaytar · · Score: 1

      without turning it into a kitchen sink

      Why stop when the memory drain is already working? =D

    2. Re:It seems a little lean by cheesybagel · · Score: 1

      How about LINQ, a standard UI API which is good enough to use on real applications, unsigned types, easier to use HTML/XML parsing, easier interfacing with C/C++, less leaky and buggy API, etc?

    3. Re:It seems a little lean by Chibi+Merrow · · Score: 1

      Oh come on now, you write Java code, you can't be trusted with unsigned types...

      --
      Maxim: People cannot follow directions.
      Increases in truth directly with the length of time spent explaining them
    4. Re:It seems a little lean by Anonymous Coward · · Score: 0

      Probably a safe assumption. I can't tell you the last non-library C++ code I saw that dealt with integer conversions and arithmetic safely (using std::numeric_limits and boost::numeric_cast). But I guess Java would impose runtime checks, like C# does (which embarrassingly have to be manually enabled with the /checked compiler option).

    5. Re:It seems a little lean by jhol13 · · Score: 1

      Generics "killed" Java (well, was a huge mistake, though did not kill it).

      Since then practically every new language has been "higher level". Designers noticed that generics solves trivial problems[1] with huge cost (code clarity, maintenance and education). Now they seem to be putting everything up lamdba calculus, logic programming and parentheses in. That leaves BNF to be integrated so that programmers can invent heir own favourite extension to the language.

      [1] problems which are found in simplest unit tests and are easy to fix

    6. Re:It seems a little lean by Billly+Gates · · Score: 1

      "How about LINQ Bad idea no-sql is quite stylish. Keep SQL to where the database is.
      , a standard UI API which is good enough to use on real applications,

        Like SWT (GTK based) which eclipse uses in its IDE. Swing number of graphical methods and layout managers is next to none
      unsigned types, The api's make it easy to convert as we use objects of preemptive types
      easier to use HTML/XML parsing, included with Java 5 and there are many HTML libraries including sun's hot java browser
      easier interfacing with C/C++, In Java 7 there is support where other languages can be compiles to bytecode for use in the Java VM. You can use RMI if you wish.
      less leaky and buggy API, etc?
        Buggy? Have you used .NET before?

      Java is rock solid.

    7. Re:It seems a little lean by TheTurtlesMoves · · Score: 1

      Sun release schedule? There was no schedule, which is why java 6 has been around for years, while we wait for 7, that's never ready.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    8. Re:It seems a little lean by Anonymous Coward · · Score: 0

      I call B/S. I have been recently introduced to Java EE, and the work Generics can do for you is awesome.

    9. Re:It seems a little lean by DrXym · · Score: 2, Interesting
      Java is a verbose language and many changes are not about implementing the kitchen sink but trying to make it terser and more expressive. For example most getters and setters are boiler plate, so why not some simple annotation / keyword which generates them at compile time and tags them for runtime inspection? What about partial classes so visual editors generate code into one file and devs can put hand written code in another file? What about closures for single method interfaces to remove reams of boilerplate? What about auto variables that infer their type automatically? What about something akin to the using keyword in .NET so we can safely release system resources without a mess of nested try / catch blocks (which very little code does properly) ?

      None of these things would actually affect the byte code but they would make the language more tolerable, less verbose. Some of these things are making their way into Java 7 / 8 (e.g. project coin work fixes language issues including resource management) which is good, but frankly the pace of development sucks. The process is so glacial that it has disappeared up its own arse and done several loops by now.

    10. Re:It seems a little lean by svick · · Score: 1

      For me, LINQ to objects is much more important than LINQ to SQL. It's often much cleaner to express some sequence-manipulating code in LINQ (whether actually using the language-integrated query part, or just the extension methods) than to write it iteratively. And lazy-loading, that LINQ uses whenever possible, has its advantages too.

    11. Re:It seems a little lean by jernejk · · Score: 1

      Linkq seems nice, but really, what problems does it solve? In reality, it's a pain to maintain. Hard core devs who write the code want to move on to new projects. Devs maintaining the old codebase are in many cases less proficient. Java is boring, verbose and gets the job done in this regard. As for the UI I agree. Some of that is answered by JavaFx, but I personally think it's a step into a wrong direction. Anyway, aren't like 90% apps web based these days?

    12. Re:It seems a little lean by Anonymous Coward · · Score: 0

      LINQ has absolutely nothing to do with SQL. It is a framework that abstracts any data source behind a series of standard methods to query against that data. For standard enumerables like arrays, collections, XML, etc., that is implemented by methods that accept logic in closures and return composed enumerables:


      int[] numbers = GetRandomNumbers();

      int[] topTenDistinctOrderedEvens = numbers.Where(number => number % 2 == 0) .OrderByDescending(number => number) .Distinct() .Take(10) .ToArray();

      For other data providers LINQ provides an interface which extends enumerables called queryables. Instead of generating closures the compiler emit expression trees and hands them off to the provider of that queryable which can interpret those expressions in order to provide the data. Some implementations convert the expressions to SQL, others to REST, but there is no limit. There are libraries at various stages of development to interact with NoSQL databases in the same manner.

      Want to query a MongoDB?


      Product[] products = session.Products.Where(product => product.Supplier.State == "HI") .OrderByDescending(product => product.Price) .Take(10) .ToArray();

      Look familiar? That's the point of LINQ.

    13. Re:It seems a little lean by TheRaven64 · · Score: 1

      Examples please. What real problems have generics solved for you?

      --
      I am TheRaven on Soylent News
    14. Re:It seems a little lean by CondeZer0 · · Score: 1

      I think they ran out of 'reasonable features' a while ago. Java has been a huge pile of crud for some time now, and with stuff like the badly botched addition of generics (even Joshua Bloch admits nobody really understands the mess created by generics in Java), this are only going to get worse.

      --
      "When in doubt, use brute force." Ken Thompson
    15. Re:It seems a little lean by gangien · · Score: 1

      type safety killed java?

      huge cost (code clarity, maintenance and education)

      no, no and well i guess there's some truth to the last.

      Code clarity improved with generics. yeah writing containers is a little more tricky, but hey, if you can't handle them, you can just use Object :)

      maintenance again, same thing.

      yeah it's true it's a new feature.. so you have to learn about it. true with any feature..

    16. Re:It seems a little lean by gangien · · Score: 1

      the same thing any type safety has solved. which maybe you can argue it doesn't solve anything, but it alleviates some of the pain of creating code.

    17. Re:It seems a little lean by jhol13 · · Score: 1

      Code clarity certainly did not improve, and that is my main concern.
      The fact that generics cannot handle even "int" and work entirely on type erasure are "icing on the cake".

      Maintenance is nightmare, just get hit by a code written someone who did not fully understand every item in Langer's FAQ and you are screwed. So it does not help at all that I learn it.

      Trying to change an API you'll notice you have to rewrite entire application. A lot like "const" in C++, once you put it in somewhere, you need to put it everywhere until you notice you need to cast it away somewhere.

      In theory generics help, but in practice they just make a mess of the language design.

    18. Re:It seems a little lean by jhol13 · · Score: 1

      Actually (though I am not Ruby programmer), article http://www.artima.com/weblogs/viewpost.jsp?thread=299081 sums this up quite nicely.

      Obviously I would have put it quite differently. For example last example would "ensure" that getInfo returns a map which is "? extends sortedmap", keys are "? extends comparable", etc.

      After those the beef (map.sort.each) would be a tiny percentage of the entire code. This does nut sum up, IMHO.

    19. Re:It seems a little lean by metamatic · · Score: 1

      The fact that generics can't handle ints goes back to the very first release of Java, and the decision to have both object and non-object types. It's the same reason you have foo.size() for the size of everything except arrays, which have foo.length. The same reason why some arguments are passed by value, and some are passed by reference, and you have to just know which are which. i.e. Java is broken as originally designed, and generics are just another feature that shows it up.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    20. Re:It seems a little lean by badkarmadayaccount · · Score: 1

      I believe the issue here is the implementation, correct?

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    21. Re:It seems a little lean by jhol13 · · Score: 1

      Partially, yes, mostly, no.

      Maybe the biggest problem with generics is that the "woods" gets hidden by too many "trees". Although I do not agree everything with http://www.artima.com/weblogs/viewpost.jsp?thread=299081 there is good example in the bottom. The beef, "map.sort.each", is hidden in the Java example by far too much litter.

      As said by metamatic (above/sideways/how-should-I-describe-this) Java's first mistake was to have non-object types. The performance gain was minimal as optimizing compilers would have short-circuited most. E.g. Eiffel claimed 1-3% penalty at that time (when Java was born).

      Then there is the Gödel's theorem. It states that no mathematical system can be "full" and "consistent". I believe it holds for programming languages too: either it is unusable or has some "inconsistent" semantics/behaviour.

      Even more, design-by-committee problem: committee cannot make a clean design. Nowadays Java includes everything from kitchen sink to lambdas and soon parentheses and Prolog I fear. Sure it is nice to have function-almost-objects without class, but then so what?

      You'll notice that I am no longer consistent, I hate extra verbosity that genericity incurs but then don't mind verbosity that full classes incur. Well, I do believe in "Gödel-extended-to-language" :-)

      Perhaps closures could have been put nicely into the Java when Java was designed first time. Now adding them into the soup is most likely going to make the language worse with almost no gain. Unless you consider as "gain" the fact that some language theorists gets a few brain-orgasms.

      They should have left Java as it was and made a new language on top of JVM.

    22. Re:It seems a little lean by badkarmadayaccount · · Score: 1

      Please use decaf. I agree on the non-object type sentiment. Type variables and generics type parameter currying should get rid of the verboseness. The rest is a matter of stdlib sort implementation and syntax. And what the hell is the difference between closures and macros, not mathematically?

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  5. Re:One area in which I appreciate the Java's power by modmans2ndcoming · · Score: 0, Flamebait

    what other technology? uh.... C, C++, C#, Assembly, LISP, Forth, Haskell....

    There is no magic dust. Java was popular because the financial sector bought into the crap Sun was selling.

  6. Plan B by girlintraining · · Score: 0, Offtopic

    Plan B? It's kill everyone inside. Anyone who's read Deadpool knows this.

    --
    #fuckbeta #iamslashdot #dicemustdie
    1. Re:Plan B by MrEricSir · · Score: 2, Funny

      You mean the emergency birth control pill? Well Java does feel like it was aborted these days.

      --
      There's no -1 for "I don't get it."
  7. Re:One area in which I appreciate the Java's power by Lennie · · Score: 1

    What makes Java so special for this field ? Or is just existing software ? Or available services ?

    --
    New things are always on the horizon
  8. Um what? by Anonymous Coward · · Score: 0

    The only thing relevant about Java is present and future licensing. Settle that first before wasting your time with a potential bomb

  9. Re:One area in which I appreciate the Java's power by Mitchell314 · · Score: 1

    Um, just wondering, but what does the programing language/runtime have to do with application features?

    --
    I read TFA and all I got was this lousy cookie
  10. Re:One area in which I appreciate the Java's power by pookemon · · Score: 1

    Yes but what else can do it? Besides C, C++, C#, Assembly, LISP, Forth, Haskell... And Java...

    --
    dnuof eruc rof aixelsid
  11. Re:One area in which I appreciate the Java's power by MichaelKristopeit198 · · Score: 0
    are you joking? you're claiming a VIRTUAL MACHINE language is better because of the potential of a SOFTWARE application?

    as a computer software architect (full time i must say), i wonder how you can be confused about what enables the software you're relying on. the virtual machine adds platform layer latency to all executing code... not relying on java would give you less latency on quotes and trades... that means everything executes faster. (note: you are NOT seeing real-time quotes... you are simply seeing quotes as they are made available to you... you are NOT executing trades instantly... they are executed after being processed and transmitted)

    java makes everything you are doing worse... it is sold as a solution to the people who enable you, to do so on many different platforms easily... as you only require a single platform, this does absolutely nothing to benefit you while it does hinder the performance of the software you're relying on.

    you've been sold lies.

  12. Re:One area in which I appreciate the Java's power by u17 · · Score: 1

    I don't think you fully understand Enterprise solutions. They run at Warp Speed!

  13. Re:One area in which I appreciate the Java's power by bieber · · Score: 1

    Of course the job would still be possible. There's no reason the software you're using couldn't have been written in dozens of other languages. If anything, Java is going to be slower than most native languages.

  14. Re:One area in which I appreciate the Java's power by h4rr4r · · Score: 1

    He posts at 0 for a good reason, stop feeding the trolls.

  15. Wait... what? by Anonymous Coward · · Score: 4, Funny

    Oracle owns Java now?

    When did this happen?

    1. Re:Wait... what? by cheesybagel · · Score: 1

      Since Oracle bought Sun Microsystems. Didn't you get the memo?

    2. Re:Wait... what? by lloy0076 · · Score: 4, Funny

      They've probably bought the rock you're hiding under too!

  16. Re:One area in which I appreciate the Java's power by bogaboga · · Score: 0, Troll

    (note: you are NOT seeing real-time quotes... you are simply seeing quotes as they are made available to you... you are NOT executing trades instantly... they are executed after being processed and transmitted)

    Your statements are grammatically correct. They also make sense. But whether I can get my quotes without some entity making these quotes available to me baffles my mind. How else would I be in position to obtain these quotes without someone availing them to me? You tell me sir.

    Same logic applies to your second part: Of course some processor somewhere handles the data. This is obvious. When we say 'instantly' or 'rel-time', we are talking about the absence of the 'requirement to wait'.

    'Wait' here, is a loaded word for there is a tiny time-lag between the time a trader clicks 'yes' to the return of a confirmed or unconfirmed transaction.

    Now let's be serious please. I am sure you understand what I am talking about.

  17. Re:One area in which I appreciate the Java's power by bogaboga · · Score: 0, Troll

    If anything, Java is going to be slower than most native languages

    Care to name some examples? Please spare me .NET and C#. These two never existed in the late 90s.

  18. Re:One area in which I appreciate the Java's power by h4rr4r · · Score: 3, Informative

    The JVM is fast as hell these days. This line about java being slow is old news and no longer true. I say this as someone who does not really like java and tries to avoid Oracle products whenever possible.

  19. lifecycle? by pietromenna · · Score: 1

    In my honest opinion everything in Computers world has a lifecycle, and in this case, Java Oracle is providing this lean featured Java releases because they are running out of ideas to implement for the JCP. Java soon will have to enter in the Maintenance only and not give new features, so it means it may soon disapear from Enterprises and Education levels (maybe like in 3 years).

    1. Re:lifecycle? by h4rr4r · · Score: 2, Insightful

      Considering COBOL still has a presence in the Enterprise world I really doubt Java will go away that fast. If they went maintenance only today, maybe in 10 years it would start to be phased out in the Enterprise and maybe gone in another 25 years.

    2. Re:lifecycle? by Anonymous Coward · · Score: 0

      You're right. Look at C language. They've added very, very few new keywords in the last how many years? It's definitely in maintenance mode and has been for quite some time. No new features, only some tweaking of the standard. I hear it's being phased out real soon, if not already.

    3. Re:lifecycle? by Anonymous Coward · · Score: 0

      COBOL wasn't bought out by a company seeking to wring as much money out of it as possible. COBOL's an open standard anyone can (and di) implement, which contributed greatly to its adoption and to the general lack of hurry to migrate away from it.

    4. Re:lifecycle? by Surt · · Score: 1

      That's STILL an aggressive timetable compared to COBOL, and COBOL was hardly as entrenched as java.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    5. Re:lifecycle? by jernejk · · Score: 1

      To be replaced by what?

    6. Re:lifecycle? by Compaqt · · Score: 1

      Isn't there a point where th language has enough features?

      I think as new features are required in the development world, they're properly added to libraries. E.g., XML, RSS, ssh, XMLRPC, etc. libraries.

      And if you want a language with the syntax-of-the-day, there plenty of languages running on the JVM.

      --
      I'm not a lawyer, but I play one on the Internet. Blog
    7. Re:lifecycle? by garyebickford · · Score: 1

      I think at one time COBOL was more entrenched than Java. IIRC in the 70s over 1/2 of all the code running on machines everywhere was written in COBOL. In the business world COBOL was pretty much it, while the scientific world was mostly running FORTRAN - but that was a much smaller world.

      For that matter, most of the banking applications are still running COBOL from what I've heard. Much of the Y2K work was repairing COBOL programs at the banks - including over $400 million spent by Citibank alone. That's a lot of programmer time - even at $100K each, that's 4000 programmers for a year.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    8. Re:lifecycle? by garyebickford · · Score: 1

      Since all these other languages are built up from a core written in C, one could argue that they are just extensions of C with friendlier syntax. :) So C can remain as it was, a 'structure PDP-11 Macro Assembler' (Thompson described it that way IIRC), and let its children handle the fancy parsing.

      Once upon a time there was MORTRAN, a structured programming macro preprocessor for FORTRAN. Was that a new language, or an extension of FORTRAN? Hard to say.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    9. Re:lifecycle? by Surt · · Score: 1

      Well, I was admittedly thinking of volume of code. The growth of the computer industry means that there are now WAY more processes dependent on java than were ever written in COBOL, even if the relative percentage is smaller.

      And I doubt any COBOL work was done at 100K/year for y2k. From what I heard, most of the COBOL experts were billing at $200/hr.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    10. Re:lifecycle? by garyebickford · · Score: 1

      I heard they were making more than 100K so I just used that number as a working estimate. :) The $400 million was a real number, given out at the time.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
  20. Closures? by Anonymous Coward · · Score: 2, Insightful

    I think the focus on closures is a fad. The concept has existed for decades, but suddenly if Java doesn't have them it's incomplete? Strangely, I don't think the lack of them has ever stopped a program of mine from working. So this seems like more of a pissing contest with C# than a feature anyone is really clamoring for.

    1. Re:Closures? by etymxris · · Score: 1

      Closures in Java will make it cleaner to write anonymous classes. That's about it.

    2. Re:Closures? by Anonymous Coward · · Score: 1, Insightful

      yep, a fad that's existed for decades.

    3. Re:Closures? by FutureDomain · · Score: 1

      Closures are just another tool in a language's toolset that is often useful. Not having it doesn't make it incomplete, it just makes it less useful in some scenarios than a language that does have them (like C#).

      --
      Hydraulic pizza oven!! Guided missile! Herring sandwich! Styrofoam! Jayne Mansfield! Aluminum siding! Borax!
    4. Re:Closures? by Anonymous Coward · · Score: 5, Informative

      The lack of objects hasn't ever stopped any C program from working, but its lack is what inspired C++. Similarly, Java's lack of closures is what inspired C#.

      Way back in the '90s, MS wanted to enable developers to use Java to write Windows apps. The obvious way to write Windows apps is for objects (like windows and buttons) to have events (like "mouse move" and "key down") that other objects can listen for by giving the object a function to call when the event is raised. Java had no clean way to write event listeners for VB-style form designers, so MS modified their version of Java (J++) to have closures (so you can say "use this object's OnKeyDown method to handle the KeyDown event"). Since Sun decided to go with inner classes instead, they sued MS and made them stop shipping any Java at all.

      As a result, MS needed to write their own Java-like language for VB-style form designer apps, and came up with C#. Obviously it has closures (which it calls "delegates"), but in version 1.0 they only closed over an object's member variables. In 2.0 they were able to be anonymous and close over local variables in a method, and in 3.0 they gained the convenient lambda syntactic sugar. Some have called Java's inner classes "syntactic vinegar" because they're so cumbersome to use compared to C#'s (and most other languages') closures.

      C#'s extension methods and generics combined with type inferencing and lambdas make it very concise to write code to return a list sorted by its item's name like this: list.OrderBy(item => item.name)
      It's not unreasonable for Java programmers to ask for a similar boost in their productivity.

      dom

    5. Re:Closures? by dido · · Score: 3, Interesting

      Spoken like a true Blub programmer. Trying to go from a programming language that has true lexical closures like Ruby to a language like Java which doesn't is extremely painful. You get used to being able to write code that uses higher-order functions (and hence closures) to get stuff done.

      --
      Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
    6. Re:Closures? by master_p · · Score: 4, Informative

      Closures and delegates are different things: delegates are constructs that forward the invocation to another function, and closures are function objects that have some state of the program bound to them so as that it should not have to be passed explicitly to the function.

      Nitpicking, I know, but I think it's in important distinction.

    7. Re:Closures? by jernejk · · Score: 2, Insightful

      Way back in the '90s, MS wanted to enable developers to use Java to write Windows apps.

      Really? I was around int the '90s and have no recollection of that.

      As a result, MS needed to write their own Java-like language for VB-style form designer apps, and came up with C#.

      Please, don't be naive. MS first tried to poison Java by proprietary API (the same tactics Google is using in Android). When they failed, they created a copy of Java, invented a "new" language which is for some reason unbelievable similar to Java + some nice features and started the "developers, developers, developers" mantra. They called .net "java killer" internally, BTW.

      Java was and still is a major risk for Microsoft.

    8. Re:Closures? by TheRaven64 · · Score: 2, Insightful

      Closures and objects are identical in terms of the things that they can express. See the COLA papers from VPRI for some good examples - you can trivially implement anything using closures that you can implement with objects, and vice versa. Objective-C has used higher-order functions for decades without closures. They do make some things a bit cleaner, syntactically (although Apple's syntax is horrible), but if you can't live without them then you have problems.

      --
      I am TheRaven on Soylent News
    9. Re:Closures? by Anonymous Coward · · Score: 0

      C#'s extension methods and generics combined with type inferencing and lambdas make it very concise to write code to return a list sorted by its item's name like this: list.OrderBy(item => item.name)

      For comparison purposes, the equivalent code in Java is
      Collections.sort(list, new Comparator() {
              public int compare(ItemType a, ItemType b)
              {
                      return a.getName().compareTo(b.getName());
              }
      });

      No, wait, that's not quite equivalent, because the C# code returns a new list while Java only provides in-place sorting, so you'd have to copy the list first.

      Why, yes, I do program in Java, and yes, much as I hate Microsoft products, I do think C# is a better language.

    10. Re:Closures? by Haeleth · · Score: 2, Insightful

      Closures and objects are identical in terms of the things that they can express.

      Any minute now someone is going to bring up Turing completeness and point out that in theory you could write any program in Brainfuck. And someone else is going to point out that closures in languages like C# are objects, just hidden behind some syntactic sugar. No, wait, I just did both myself.

      The point is that for certain common patterns, such as event callbacks, a closure-like syntax is significantly more readable than a conventional object type syntax. Computational equivalence is an academic question. In the real world, the question is how efficiently code can be written and how reliably it can be maintained, and in that regard there is often a real benefit to reducing boilerplate code.

    11. Re:Closures? by TheRaven64 · · Score: 1

      A closure is a function with some data attached. An object is a set of functions with some data attached. Any pattern that works with a closure also works with an object-method pair. In an object-oriented language, most of the variables that you want to bind into a closure for a callback are instance variables in the object anyway, so it's simple to just provide the selector for the method.

      It's not simply that they are both Turing complete constructs, it's that you can use both to accomplish the same thing in almost identical ways and in roughly the same amount of code. The difference is not in expressive power, it is purely one of aesthetics.

      --
      I am TheRaven on Soylent News
    12. Re:Closures? by Abcd1234 · · Score: 1


      Closures and delegates are different things: delegates are constructs that forward the invocation to another function, and closures are function objects that have some state of the program bound to them so as that it should not have to be passed explicitly to the function.

      Nitpicking, I know, but I think it's in important distinction.

      Nitpicking a little more:

      *Anonymous* delegates *are* closures.

    13. Re:Closures? by badkarmadayaccount · · Score: 1

      Oh, my eyes! Who's the idiot using pure absolute positioning in CSS?

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  21. Re:One area in which I appreciate the Java's power by cheesybagel · · Score: 1

    Its portable and has good API facilities for building internet apps. It also has fairly decent threading support. Plus it is buzzword compliant. What else do you need?

  22. waiting for a fork of java by FudRucker · · Score: 0

    that is a FOSS community developed project, not owned and developed by a for-profit MegaCorPirate

    --
    Politics is Treachery, Religion is Brainwashing
    1. Re:waiting for a fork of java by TheTurtlesMoves · · Score: 1

      Java has *always* been controlled by a for-profit MegaCorPirate. Just recently the captain of the ship was changed around like the dread pirate Roberts.

      This is nothing new. Well there is one thing new. The new Pirate is not bankrupt.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    2. Re:waiting for a fork of java by Builder · · Score: 1

      Ah, but there lies the evil of the IP salesman. It's nearly impossible to fork Java because of all of the patents that Oracle owns. See, if you fork it and aren't 100% compliant with their license (i.e. you want to do something useful that goes outside the spec), you violate their patents. If you violate their patents, you get sued.

  23. Elephant in the room? by oldhack · · Score: 5, Insightful

    Fix the generics. Get rid of erasure and all its associated idiosyncracies and gotchas, and bring generics properly into JVM level.

    --
    Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    1. Re:Elephant in the room? by TheTurtlesMoves · · Score: 1

      This should have been done with java 1.0

      Fact is that most "mainstream" languages are often way behind (read decades) what we know in terms of R&D for programing and compiling.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    2. Re:Elephant in the room? by pmike_bauer · · Score: 3, Interesting

      Please, no.
      Reified generics at the JVM level has unintended consequences for other language implementations targeting the JVM.

      Ola Bini has an excellent take on why it's best to keep reified generics out of the JVM.
      http://olabini.com/blog/2010/07/questioning-the-reality-of-generics/

      --
      I read /. for the (Score:-1, Conservative) comments.
    3. Re:Elephant in the room? by Haeleth · · Score: 2, Insightful

      He also observes that reified generics would probably make Java itself a better language, and would be useful for Scala too. Which between them account for practically everyone using the JVM in the real world. Is it really worth hurting the vast majority of people (and driving some of them to competing platforms), in order to benefit a handful of tiny niche products?

  24. Re:One area in which I appreciate the Java's power by modmans2ndcoming · · Score: 1

    .net is all that and a bag of chips (OK stale chips if you don't want to count mono)... so... what makes java so special

  25. Re:One area in which I appreciate the Java's power by exomondo · · Score: 1

    If anything, Java is going to be slower than most native languages

    Care to name some examples? Please spare me .NET and C#. These two never existed in the late 90s.

    Firstly .Net is not a language and C# is not a native language. Secondly why does it matter that they didn't exist in the late 90s? And if you are stuck in the late 90s then you'd know back then native languages - C++, Smalltalk, etc... - were significantly faster than Java in almost all cases, the gap is not as broad anymore.

    But im interested to know what it is about Java specifically that you think makes it superior for your purposes?

  26. Why the fuck bother by melted · · Score: 2, Insightful

    Just take this call it Java 9 or some such, and fire the remaining Java compiler people. Keep the VM people. There, solved it for you Oracle.

    1. Re:Why the fuck bother by melted · · Score: 1

      Don't see why this is being modded as flamebait. This is the truth. All those "geniuses", all that fabled "community process" got its ass handed to it by a few PhDs who _really_ knew what they were doing.

    2. Re:Why the fuck bother by Anonymous Coward · · Score: 1, Insightful

      Scala is not a maintainable language. Don't get me wrong, it's very cool and interesting but I have written code that I can't even decipher myself only a couple weeks later. It's too flexible and allows some really bizarre syntax and architecture. I would say it's worse than Perl and Lisp at being way too easy to create "clever" program designs that nobody can maintain.

      Google Go seems like it has a better chance even though I doubt it will gain a foothold either.

    3. Re:Why the fuck bother by Anonymous Coward · · Score: 0

      It all comes to Functional vs Imperative.

    4. Re:Why the fuck bother by Xrikcus · · Score: 3, Insightful

      And who didn't have to deal with backward compatibility. Designing a language from scratch is a completely different problem from evolving one that's heavily used.

    5. Re:Why the fuck bother by Alkonaut · · Score: 2, Insightful

      Sack the VM people too, at least those who decided that the implementation of generics should be through type erasure, in other words "type unsafety". Next, dismantle the whole community process (Whoever wants an open system please fork at this exit). If Oracle just puts its weight behind java, it could well be the needed injection it needs. Without the tools for parallelism, distributed computing and so on, java (both VM and language) will be a "mainframe" language.

      C# shows what can be done if you have
      a) lexical closures
      b) VM-level generics
      c) A process where the language evolves faster than through a vote by UN+dog.

      If oracle just makes Java the "other" .NET, it will be useable, but as a commercial second fiddle, it will probably be irrelevant.
      If oracle does not make java the other .NET, the slow community process will make the language irrelevant within 5 years anyway.

      So of the 3 topics here (Language, VM, Process) the language is the least important for the future of java.

    6. Re:Why the fuck bother by shutdown+-p+now · · Score: 2, Interesting

      No, it's not because of too much FP. It's because Scala has some really weird stuff in it, such as implicit parameters (where values are conjured out of thin air if not explicitly provided).

      Or, say, implicit type conversions for the left side operand of "." (receiver) - so in "a.b", if the type of "a" doesn't have member "b" in it, the compiler will look for all accessible conversions from "a" to something else which does have "b".

      This kind of stuff means that you can be looking at one simple line of code, which actually does a lot more than you think it does due to all the implicit stuff happening behind the scenes. What's worse is that the above is possible even when you have just wrote that line.

    7. Re:Why the fuck bother by TheSunborn · · Score: 2, Insightful

      They reason they did implement generic with type erasure (Something they knew was not the best solution) was so you could compile your Java 1.5 code, and run it on a jdk1.4 stack which don't know anything about generics. (They did not want to update the bytecode format, and with that restriction, type erasure was the only solution). So it was more of a management choice.

      Why sun thought this was a better solution, then updating the bytecode is something I don't understand.

    8. Re:Why the fuck bother by Anonymous Coward · · Score: 0

      You don't have to use implicits. In fact even the Scala guys say they should be used sparingly.

      However, for some things (like internal DSL's), they are *incredibly* useful.

    9. Re:Why the fuck bother by Anonymous Coward · · Score: 0

      Uh, how about "no". Scala is nice for somethings, but really, Java is still a better overall language. Clojure is better than Scala, but I still wouldn't recommend everyone move to it!

    10. Re:Why the fuck bother by A.K.A_Magnet · · Score: 1

      A branch of the Scala IDE for eclipse shows when there's an implicit conversion by underlining the converted expression. I guess this feature will come to other editors soon enough. Also, to have this conversion, you must have imported it (or its package object). The predefined conversions in scala.Predef are doing what you'd expect them to do and aren't very dangerous (much less, than say, built-in automatic conversion in some dynamic languages).

      Implicit parameters are just like dynamic default values. Not a big deal really, especially since Scaladoc hides them by default, you don't even have to know they're here. But they open for a world of possibilities to change the behavior of an API.

      In general, implicits in Scala are really a powerful tool and they're useful for API designers more than 'common' users. You said it's not about FP, but Scalaz which is the FP lib for Scala uses them to their fullest extent to replace class inheritance (considered harmful) altogether.

    11. Re:Why the fuck bother by shutdown+-p+now · · Score: 1

      Well, it's the same as with any other powerful feature that enables more concise code - it makes said code potentially harder to read, depending on how it's used. Scala just goes further there than many other languages.

      For the record, I disagree with GGGPs claim that Scala is "not a maintainable language". I do understand where he was coming from, though, and hence my comment about why this isn't really about FP as such.

    12. Re:Why the fuck bother by Massacrifice · · Score: 1

      But in the same release they also put in stuff that just wont run in 1.4. So much that libraries often come in 1.4 and 1.5 versions. So they might as well have gone the whole way and put in the whole generics. What you dont want to break is 1.4 code running on 1.5. But to make provisions for the other way around is limiting, if not downright retarded.

      --
      -- Home is where you eat your heart out.
    13. Re:Why the fuck bother by melted · · Score: 1

      WTF are you talking about? Scala compiles into the SAME Java bytecode, and runs on the SAME JRE, at mostly the same speed.

    14. Re:Why the fuck bother by Xrikcus · · Score: 1

      And python compiles to the same x86 assembly as C++, so clearly turning C++ into python won't change any of the code that exists. A scala compiler doesn't have to compile the Java code that the entire industry expects to still compile perfectly 10 years after they first wrote it.

    15. Re:Why the fuck bother by melted · · Score: 1

      Python does not compile to "assembly". Python is an interpreted language that compiles to Python bytecode, which then gets executed without JIT compilation.

  27. Re:One area in which I appreciate the Java's power by kaffiene · · Score: 0, Flamebait

    Shhhh! You'll upset the groupthink

  28. Subclassing Enums by Doc+Ruby · · Score: 1

    Will subclassing enums make it into JDK 7? It's annoying to jump through hoops that aren't a good model of the work when making enums of commands that are in different groups of overall common functionality.

    --

    --
    make install -not war

  29. Expensive tools - higher salary by hughperkins · · Score: 1

    If you want the highest salary, learn the most expensive tools; and it looks like Java is heading down this road.

    Most companies spending on developers is by and large proportional to their spending on hardware and software.

    If you work for companies that pay $$$$ for Visual Studio, or for Oracle contracts, your salary will be tend to be larger than if you work for one where you get an ancient amortized machine and a single monitor.

    Not always. But often.

    1. Re:Expensive tools - higher salary by cloudcreator · · Score: 1

      This is the most ridiculous thing I've ever heard. I know people who use VIM + command line, and make more money than those who use expensive tools. If by "often" you mean ASP.NET devs, then I have to disappoint you, they have average salaries. Not always. But often.

  30. Re:One area in which I appreciate the Java's power by Billly+Gates · · Score: 1

    The software and tools are free with Java with eclipse and Netbeans. The express version of visual studio sucks very badly and the documentation is terrible since MSDN no longer is there accept going through Microsoft's confusing non intuitive website. I can create mobile apps and programs that can run all the way to the mainframe.

    Also if I am starting a web business I do not have to worry about client access licenses. I am also not tied down to SQL Server which can cost $100,000+ for over 50 users.

  31. mod parent up by korpique · · Score: 1

    Awesomely clearly explained context and subject matter. This is one of the reasons why c# is so nice to write in itself even if it's not very unixy.

    Looking forward to scala myself.

    --
    I was the real korpiq until I woke up clowned.
  32. Re:One area in which I appreciate the Java's power by Billly+Gates · · Score: 1

    Once its in bytecode it is native. It can run just as fast as C++. Just because you are tired of waiting for the silly java compiler to compile it does not make it slow. It is like saying Firefox is slow and interpreted because it took 6 hours to compile from source on some developers machine therefore it is too slow to use once its compiled.

  33. Still at 5 here by SpaghettiPattern · · Score: 1

    Java 1.4.2 was good enough for me to abandon 90% of my Perl activities. Java 5 generics were a very niece thing to have. But the annotations is where it started to get itchy for me. Bleedin' abracadabra I say. If ever I need it, I'll dig into it.

    I'd never had anything to desire since 5. So for me 6, 7 and 8 mainly should be backwards compatible.

    --

    I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
    1. Re:Still at 5 here by sourcerror · · Score: 2, Informative

      If you had to do J2EE developement prior to EJB3, you would appreciate annotations. Basically a lot of the stuff from XML files went to annotations.

    2. Re:Still at 5 here by jernejk · · Score: 1

      I think in general there's more inovation in Java EE than Java JRE at this point.

      What people don't see is that Microsoft changed c# very much from the early days, trying to compete with Java.
      Dynamic types were addedd to support LINQ, which was added to counter the raise of ORM like Hibernate and later JPA.

      In reality, MS has no strategy, they are just adding and adding fetaures, which are percived as invoation, but in reality are just lack of platform strategy. Throw it to the wall and se what sticks is what they do.

    3. Re:Still at 5 here by SpaghettiPattern · · Score: 1

      If you had to do J2EE developement prior to EJB3, you would appreciate annotations. Basically a lot of the stuff from XML files went to annotations.

      Right now I'm considering JPA for a project of mine. I'm not confined to anything by some architecture dept. so I can make up my own mind.

      The main reason for JPA would be that I can "easily" hook up my application to "any" type of database. I will consider annotations but I will shun any vendor specific stuff in my class code and hence in the annotations. But I have yet to study the matter in detail.

      For me there's also another reason to use legacy Java version. Some large/huge clients of mine tend to lag about 2 to 4 years on adopting Java versions. Some 4 years ago I had one moving from 1.3 to 5 (no kidding.)

      If I can make my code run on Java 5, I will do so. Any higher version I'd have to consider very hard.

      --

      I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
    4. Re:Still at 5 here by sourcerror · · Score: 1

      Annotations have been introduced in Java 1.5, especially for making the JPA more simple. Now the cardinality of relationships* are in the class body, previously they were in XML files, which were hard to maintain consistently. I have never seen vendor specific stuff in annotations, they usually appear in external xml config files (separately from the config files required by the standard).

      Developers really hated EJB 2.x, so I don't recommend going that far back (that would mean going back to 2005-2006).

      * and the transactional property of methods, ORM mapping settings (how to store class hierarchies: in one table; separate table for extra fields and join etc.)

    5. Re:Still at 5 here by SpaghettiPattern · · Score: 1

      Annotations have been introduced in Java 1.5, especially for making the JPA more simple.

      Thanks for the information. Will take that into consideration.

      I was arguing this same topic with a buddy of mine who is in to be presenting architecture guide lines for one of the huge banks. It is his bank's interest to produce code which isn't completely hijacked. You could argue that annotations make your code hard(er) to port to the eventual new prodigy language. Then again, that may be highly academic and when that particular bridge needs to be crossed chances are migration tools will become available or the business code will have become completely irrelevant.

      --

      I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
    6. Re:Still at 5 here by Anonymous Coward · · Score: 0

      Dynamic types were addedd to support LINQ,

      It's amazing how they managed to get LINQ working 2 years before they added dynamic types. If time travel isn't innovation, I don't know what is.

  34. Well written ! by Anonymous Coward · · Score: 0

    Can I just remark that this story is well writte - It reads well, it is grammatically correct and new terms are clearly explained. Well done.

    Is this a new direction for Slashdot ?

  35. Re:One area in which I appreciate the Java's power by imthesponge · · Score: 1

    "Once its in bytecode it is native."

    No, not unless you have something like Jazelle.

  36. Re:One area in which I appreciate the Java's power by martin-boundary · · Score: 4, Informative
    Really? How many milliseconds does it take to load the JVM, initialize it, load the class files etc before the byte code even starts executing?

    Whenever people talk about the JVM being fast, what they really mean is that it's fast when it's already running, and when one compares programs whose typical running time is much longer than all that extra overhead so that it can be amortized.

    That's great as it goes, but it's no C++ when performance really matters.

  37. Re:One area in which I appreciate the Java's power by Anonymous Coward · · Score: 0

    At work you can start developing in Windows and then you can continue developing in Linux/BSD/etc.. with zero problems.

    Can you do that with the latest and greatest in .NET?? No you can't...you have to wait for mono to do the catching up. + are mono and .net 100% compatible?

    Mono is just a mannequin for Microsoft.

    Comparing .NET with Java is like comparing a peacock (.net) with a eagle(java).
    The peacock gets all the "UUUH" + "AAAH" because it has more colors.
    The eagle lacks a colourfull plumage but flies were ever it wants to go, only the sky is the limit.
    The peacock flies to the nearest tree bransch and that's it.

    .net is all that and a bag of chips

    You meant a: "bag of shit". ( I couldn't resist)

    I hope that mono turns the heat on .NET but mono was meant to bring people to MS technology.

  38. Re:One area in which I appreciate the Java's power by svick · · Score: 2, Informative

    The documentation is still there. And as for me, I like the documentation of .Net much more than Java's. For example have a look at the documentation of .Net's List<T>.Add() method, that includes detailed explanation of the method, its time complexity, example usage and links to the same method in other versions of .Net. Compare that to the documentation of ArrayList<E>.add(), which is little more than one line.

  39. Re:One area in which I appreciate the Java's power by Anonymous Coward · · Score: 0

    On the other hand KDE has demonstrated that C++ gets also bogged down when you have to load, link and initialize huge class libraries in the start-up stage of every single program. Then again, the slow down is not as bad as the Java start-up, which also involves bytecode compilation and other funky stuff.

  40. Re:One area in which I appreciate the Java's power by pitdingo · · Score: 1

    .net is just a ripoff of java. Not to mention it is a super expensive, proprietary, patent encumbered Microsoft technologies which limits your choices to only Microsoft products. Mono is garbage and will never be able to do everything that Silverturd and .net does thanks to the proprietary nature of .net. You can create a full Enterprise class system with Java and not pay a penny for software or be locked into a single vendor. Choice is good.

  41. Re:One area in which I appreciate the Java's power by jernejk · · Score: 1

    What makes Java special: - it was the first ever platform to unify different platforms and systems under the same umbrella, accessible by the same API - to this day, it still is the only platform on which you can reuse your expertise and develop for anything, from x86 machines to machines like system z and SPARC and even smart phones and smart cards. You know Java? You can work on any of those systems. Aint that something? - Java can run on bare metal hypervisor, without an actual OS (Jrockit virtual edition) - It's also the only true enterprise ready open platform, approved by FSF - It's vendor independent and is going to stay that way, with at least two major vendors behind it (IBM and Oracle). Can you say so what o any of those?

  42. Re:One area in which I appreciate the Java's power by jernejk · · Score: 1

    How many milliseconds does it take to boot the OS? I do agree, however, that JVM should cache it's internal state between sessions. Jrockit had something like this, but they dropped it.

  43. Re:One area in which I appreciate the Java's power by Anonymous Coward · · Score: 2, Insightful

    Java can never start as fast as C or C++, it cant be done. I needs to start all kind of housekeeping threads, and allocate different memory pools etc.

    But it is true that in a theoretical reasoning that Java execution speed can be faster then C++, and thats cause the JIT may rearrange and optimize the bytecode during runtime, to take advantages of a specific hardware in a way that you may not do in C++.

    More often It goes slower tho, cause we all know when we stop coding features in, its when the good cases goes through. Why would you continue then? The JIT works and that's about it. It has some optimizations thats cool, but I'm not sure it such a huge feature for selecting Java over C++.

    The reason for selecting Java over C++ more tend to be that its like writing Object Oriented Basic, Java is simple. C++ is a bullet in the foot compared.

  44. Is it all about Lambda, Lambda, Lambda by Anonymous Coward · · Score: 0

    but what about Omega Mu? http://www.youtube.com/watch?v=NMgG6KyhGXQ

  45. New versions of platforms is bad by erroneus · · Score: 1

    We all seemed to learn this lesson over the years thanks to Microsoft. People waited in line for hours to get Windows 95. The enthusiasm was present though diminished with Windows NT 4 and other Win9X releases. The enthusiasm was completely absent from WindowsME and beyond. Windows XP was a surprise hit, but no one I knew waited in line for it.

    The point here is that Oracle seems bent on the notion of upgrading and releasing more changes to Java. This would be a mistake. As people write applications for platforms, the platform should not change too much or too often as it tends to break applications. This causes frustration and anger from developers and users alike. "Increasing" the release rate for the Java VM versions is a really bad, bad, bad idea. It is more likely to result in people abandoning Java or at the very least "holding off until release 8" even before 7 is released. It could be the type of interruption that could enable a competing technology to pull ahead and get a foothold.

  46. Translucent and shaped windows by Anonymous Coward · · Score: 0

    Welcome to the 21st century, Java!

  47. Syntax schmyntax by Anonymous Coward · · Score: 0

    Really, who cares about how they implement lambdas in Java syntax. The language is already so goddamned ugly you have to wear a full body condom to write in it anyway. The great news is that native Java lambdas will likely provide some concrete benefits to Clojure - the only real reason for the JVM to exist, IMO.

  48. Re:One area in which I appreciate the Java's power by sourcerror · · Score: 1

    On the other hand writing internationalized, cross platform c++ apps is a major pain in the ass. In Java you don't have worry about character encoding, true type font rendering libraries (I just spent in 2 days getting ftgl compile), gui libraries, networking (worrying about character encoding again), http, xml parsing (worrying about character encoding again), and they all play along nicely.
    If you use xerces for xml parsing (25 MB), the Java overhead doesn't seem that bad.

  49. Re:One area in which I appreciate the Java's power by BitZtream · · Score: 1

    Really? I do it all the time, its really not that hard actually.

    Right to Left is the only thing that ever requires any extra work, and thats only with corner cases now days.

    I use libxml2 for a lot of stuff, and I've never given a second thought to character encoding. It handles that problem for me, thats what good libraries are supposed to do.

    I do everything internally in UTF8, convert to UTF16/32 when I need to talk to external libraries/OSes that prefer those formats.

    Not sure how Java is any different when it comes to network encoding, unless you mean because you can just pass strings off to the existing class libraries which handle the work for you, in which case, thats the same thing I do. I have an existing stock pile of libraries I use that are unicode aware for networking. In a couple cases, those libraries are my own, but its not like it took me more than a few hours to do them, all the major protocols are covered already.

    Who uses xerces for XML parsing other than apache?

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  50. Rapid releases AREN'T ALWAY A GOOD THING by BitZtream · · Score: 1

    As a developer, I really don't want a 'rapid release schedule' for the languages and frameworks that I use.

    Don't get me wrong, I do want new features eventually, but I'd much rather that the design and improvements were well thought out and less often.

    A rapid release schedule just creates a mess. What version am I developing against? What version are my users running? Are they going to have to go get something new just to use MY app when they haven't had to do this for anyone else? How long has this new feature actually been used? Can I trust its functionality across multiple platforms?

    Every release makes all those questions get an entirely new set of answers added to the last set of answers, it gets more and more complicated every time. This is of course a fact of life for developers, it comes with the territory. It doesn't have to be more complicated just so some marketing dick can say 'ohohohohoh new version of our crap! YOU MUST UPGRADE' oh and by the way, its not compatible for these old bits, so you need both installed!

    I don't develop for Linux because I don't want to hit a moving target, I'm not alone. Perhaps Oracle should get a clue here. Of course, they won't, Java is pretty much just for Oracle middleware now unfortunately, which sucks since I've been working on a rather large java app for the last few years :(

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  51. Re:One area in which I appreciate the Java's power by Matt+Perry · · Score: 3, Informative

    How many milliseconds does it take to load the JVM, initialize it, load the class files etc before the byte code even starts executing?

    Does that even matter? Java is most used in long-running programs, not programs that are starting many times a second. The startup cost is minuscule. Focusing on startup cost is as pointless as these reviews of linux distros that concentrate on how fast the distro boots. No one is sitting there rebooting over and over saying "look at how productive I am now."

    --
    Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
  52. Re:One area in which I appreciate the Java's power by Anonymous Coward · · Score: 0

    LOL, you've obviously never used .NET.

    Anyway, it seems to me, that ever since .NET 2.0... Java is a Ripoff of .NET :D

    Go ahead, deny it. It'll only make you look stupid.

  53. Re:One area in which I appreciate the Java's power by TheRaven64 · · Score: 1

    Smalltalk. I considered a job a while ago at a company that managed a trading platform written in Smalltalk (Cincom's dialect, I think, but it might have been IBM's). They picked it because it was the language that allowed them to modify their automated trading algorithms the fastest out of all of the ones that they tried.

    Does Java yet have the ability to replace classes in running programs or perform incremental upgrades without stopping the program? These have been standard features in languages like Lisp, Smalltalk, and Erlang for decades.

    --
    I am TheRaven on Soylent News
  54. Re:One area in which I appreciate the Java's power by TheRaven64 · · Score: 1

    Actually, both of these are implementation issues. There's nothing (other than sanity) stopping you from running C++ code inside an ActionScript VM, and then you get the painfully slow startup time, bloated memory usage, but get dynamic trace-based optimisation.

    The rest is not quite so clear cut either. The dividing line between dynamic and static compilation is blurred by profile-driven optimisations. For example, I've written some LLVM optimisations for Objective-C that provide some of the type feedback driven speculative inlining stuff that Self was doing back in the '90s. Back then, people claimed that this was an advantage of Self over C++, but really it was just an advantage of how Self was implemented.

    In practice, profile-driven optimisation doesn't give much improvement after a few profiling runs. The only difference with a JIT is that you're having to do the same work every time, on every machine running the app, rather than once when it's first compiled. The huge advantage that JIT-based systems have is that they do this without the developer having to bother. How often has the average C developer (or packager) bothered to run their code compiled with profiling enabled, run it with a representative dataset, and then recompiled with profile-driven optimisations? For most, my guess would be 'never', while every single Java developer has done this without thinking.

    That's not a limitation of C though, just a limitation of the tools. There's no reason why you couldn't ship C code as something like LLVM bitcode, compile it with profiling enabled at install time, generate some profiling traces and then recompile in the background.

    --
    I am TheRaven on Soylent News
  55. Re:One area in which I appreciate the Java's power by Anonymous Coward · · Score: 0

    No project managers are allowed on /. Your UID will be deprecated in 4 hours.

  56. Re:One area in which I appreciate the Java's power by CondeZer0 · · Score: 1

    Exactly, and this is one of the many advantages that Go has over Java (and even over C++, which also can be extremely slow due to the huge overload of dynamic linking, hence hideous hacks like 'prelinking'.

    Startup time and memory overhead *does* matter, and all 'benchmarks' out there that claim that Java performance is competitive completely ignore both.

    --
    "When in doubt, use brute force." Ken Thompson
  57. Re:One area in which I appreciate the Java's power by modmans2ndcoming · · Score: 1

    you can't really do that in Java either unless you have a Java app that doe snot interact with the base operating system. If your app does, then you have to test it on each platform you plan to deploy it on in order to catch bugs.

    Java is write once, debug everywhere.

  58. Re:One area in which I appreciate the Java's power by Anonymous Coward · · Score: 0

    How many milliseconds does it take to load the JVM, initialize it, load the class files etc before the byte code even starts executing?

    Does that even matter? Java is most used in long-running programs, not programs that are starting many times a second. The startup cost is minuscule. Focusing on startup cost is as pointless as these reviews of linux distros that concentrate on how fast the distro boots.

    Tell that to all of the people who use laptops for classes, or all the people who use netbooks, or all the people who use tablets, or all the people who don't want to wait over a minute to get to their desktop. When you add up those people, startup time for their desktop.

    In a similar vein, if Java is going to be useful for GUI programs on the desktop (like any open source scheduling program similar to MS Project), then the JVM is going to need to startup a _lot_ quicker.

    Yeah, it matters.

  59. Re:One area in which I appreciate the Java's power by Matt+Perry · · Score: 1

    Tell that to all of the people who use laptops for classes, or all the people who use netbooks, or all the people who use tablets, or all the people who don't want to wait over a minute to get to their desktop. When you add up those people, startup time for their desktop.

    That's another non-issue. Cold booting is a rare event, even among non-technical users, now that modern operating systems support standby and hibernate features.

    --
    Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
  60. Yay! JSR310! by metamatic · · Score: 1

    Personally, the change I'm most looking forward to is JSR310 and getting rid of the godawful date and time classes in the current API.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  61. Shylocks dont do that by Anonymous Coward · · Score: 0

    Jewish ellison's needs a community approval. Shylocks don't do that.