Slashdot Mirror


Love and Hate For Java 8

snydeq writes "Java 8 brings exciting developments, but as with any new technology, you can count on the good, the bad, and the headaches, writes Andrew C. Oliver. 'Java 8 is trying to "innovate," according to the Microsoft meaning of the word. This means stealing a lot of things that have typically been handled by other frameworks and languages, then incorporating them into the language or runtime (aka standardization). Ahead of the next release, the Java community is talking about Project Lambda, streams, functional interfaces, and all sorts of other goodies. So let's dive into what's great — and what we can hate.'"

14 of 434 comments (clear)

  1. Re:Gawd by jcr · · Score: 5, Insightful

    Java is a real language, and a lot of real programs have been written with it. It's not a good language, but that doesn't make it trivial.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  2. Re:Gawd by CastrTroy · · Score: 5, Insightful

    I would almost agree, that any language is as good as any other. With a few exceptions, like "whitespace" which isn't meant to be a practical language anyway. What really sets languages apart is the tooling that's built up around them. The debuggers, the IDE, the profilers, etc. Also, the consistency and extent of the standard API plays a huge role in how useful a language is. I would rather use Brainfuck with an amazing tools and a rich API than use Java, Python, or Ruby with bad tools and an inconstent and incomplete API.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  3. Re:Finally Fixing the Date stuff by Anonymous Coward · · Score: 5, Insightful

    I'd hardly call it "difficult" to use, any more than it is to use the wrappers for the native types. Still, it would be *nice* if you could use "+" instead of "add()", but really that's just syntactic sugar.

    To some extent, anything beyond raw binary notation used by your processor is just some form or another of "syntactic sugar" transformed by some intermediate tool.

  4. Re:Gawd by hey! · · Score: 5, Insightful

    Newsflash: People write major systems in Java that work pretty well. People do mission critical, bet-the-company stuff in Java, and it works. *Your* mileage may vary, but it always does.

    This doesn't mean it' the best choice for everything, because *nothing's* the best choice for everything

    And it doesn't mean Java doesn't have serious flaws. There's something deeply ingrained in Java that encourages over-engineering. But every language has its pitfalls.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  5. Re:Finally Fixing the Date stuff by petermgreen · · Score: 5, Insightful

    People like to dismiss syntactic sugar as unimportant but IMO it's the difference between code that is pleasant to read and write and code that is a PITA to read and write.

    I wish some fork of java would happen and take off that adds back in the basic features sun left out. Stuff like properties*, user defined types without an implicit reference, unsigned numeric types, operator overloading, parameter pass by reference etc. Some of that is syntactic sugar, other parts not so much. Ideally these features would be done in a way that could somewhat work on existing VMs though some features would likely require VM enhancements to operate efficiently.

    Unfortunately MS has already taken the name J++ :(

    * No that javabeans shit doesn't count.

    --
    note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  6. Re:Finally Fixing the Date stuff by viperidaenz · · Score: 5, Informative

    New Java Date Time API for Java8: http://openjdk.java.net/jeps/150
    AKA JSR 310

  7. The old adage comes back and back by countach · · Score: 5, Insightful

    The old adage is always applicable: Those that do not use LISP are condemned to reinvent it. Badly.

    1. Re:The old adage comes back and back by ebno-10db · · Score: 5, Funny

      Sure: reimplement it in Java.

      That's called Clojure.

      Even better, use it within J2EE so that it takes 45 seconds to start up.

      They sped it up?

  8. Re:Gawd by Anonymous Coward · · Score: 5, Insightful

    I think one of the big problems is that programmers are very much biased towards thinking that what should be considered matters of preference are absolute right/wrongs, and most of the differences between major languages themselves are simply matters of taste or convenience. It's why you can get almost any software engineer to tear apart someone else's code, even if the code is written as well or better than anything they've written: there's pretty much always small differences that the engineer will find offensive even though there's no practical impact.

  9. Re: Gawd by S.O.B. · · Score: 5, Insightful

    I used to work on a Java transaction processing application at a major financial institution that handled more than 1,000,000 transactions a day that consolidated data from Unix, mainframe and Windows systems. The transactions came from batch and online, client-facing applications that had five nines uptime requirements.

    I don't know, sounds major to me. And we had no more "major system problems" than any other app and less than most.

    It's not to say that Java is the answer to everything because nothing is. But it is definitely capable of doing the heavy lifting.

    --
    Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
  10. Re:Gawd by ebno-10db · · Score: 5, Funny

    May you spend 100 years in purgatory, writing AI programs in COBOL.

  11. Re:Gawd by ebno-10db · · Score: 5, Funny

    Lisp may be an interesting language, but Lispers scare me. The glow in their eyes when they evangelize about the Mother of All Languages reminds me of Village of the Damned.

  12. Re:Gawd by Coryoth · · Score: 5, Insightful

    And it doesn't mean Java doesn't have serious flaws. There's something deeply ingrained in Java that encourages over-engineering. But every language has its pitfalls.

    I don't think there's much in Java the language that encourages over-engineering; it's more in the community that surrounds Java. It's in the tutorials, and books, and code examples and discussion groups . It's in the frameworks and libraries.

    The reality is that a "language" is as much shaped by the community that grows up around it as by the actual language itself. Perl doesn't have to be particularly unreadable, but the culture that grew up around perl in the late 90's that was obsessed with cute hacks, fewest keystrokes, and self created obscurity created a state where anyone learning perl was immersed in that culture and came out writing a lot of unreadable stuff. It is my understanding that since many of those programmers left perl for other languages perl has been remade as "Modern Perl" which is largely the same core language, just with a different and libraries, and is quite readable.

    Conversely python can be made quite diabolical (just through together chains of nested list comprehensions and single character variables for example), but because it grew up with a culture of "one obvious way to do it" and readability most code you'll see tends to eschew such things, and strive to read like pseudo-code. Again, there's not that much inherent in the language, it's the cultural conventions surrounding the language that enforce much of that.

    Java fell in with the Enterprise crowd, and consequently found itself immersed in a culture obsessed with design patterns and over-engineering. Had things gone a little differently with, say, in browser applets somehow becoming the primary driving force for java (let's assume they ran better say) then I doubt java would be known for over-engineering.

  13. Re:Gawd by gnupun · · Score: 5, Insightful

    I would almost agree, that any language is as good as any other. With a few exceptions, like "whitespace" which isn't meant to be a practical language anyway.

    This is a false statement, they are not as good as the other. Each language is designed to be strong in certain areas while weak/ignoring other areas. As an example, C promotes code close to machine language while Java shields the programmer from manual memory management (GC). There are many such design issues that make a language a natural fit for certain applications while making other languages ill-fitted.

    What really sets languages apart is the tooling that's built up around them.

    While tools may be important, they are of a secondary importance.