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.'"
Is there still a Java Community left to approve this? I thought Oracle had managed to alienate them all over the past 6 months.
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?
Love the new features, except for Project Lambda. The proposed syntax needs to be more Java-like.
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.
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.
Plan B? It's kill everyone inside. Anyone who's read Deadpool knows this.
#fuckbeta #iamslashdot #dicemustdie
What makes Java so special for this field ? Or is just existing software ? Or available services ?
New things are always on the horizon
The only thing relevant about Java is present and future licensing. Settle that first before wasting your time with a potential bomb
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
Yes but what else can do it? Besides C, C++, C#, Assembly, LISP, Forth, Haskell... And Java...
dnuof eruc rof aixelsid
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.
I don't think you fully understand Enterprise solutions. They run at Warp Speed!
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.
He posts at 0 for a good reason, stop feeding the trolls.
Oracle owns Java now?
When did this happen?
(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.
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.
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.
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).
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.
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?
that is a FOSS community developed project, not owned and developed by a for-profit MegaCorPirate
Politics is Treachery, Religion is Brainwashing
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.
.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
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?
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.
Shhhh! You'll upset the groupthink
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
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.
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.
http://saveie6.com/
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.
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.
http://saveie6.com/
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)
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 ?
"Once its in bytecode it is native."
No, not unless you have something like Jazelle.
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.
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.
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.
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.
.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.
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?
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.
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.
but what about Omega Mu? http://www.youtube.com/watch?v=NMgG6KyhGXQ
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.
Welcome to the 21st century, Java!
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.
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.
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
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
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.
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.
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
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
No project managers are allowed on /. Your UID will be deprecated in 4 hours.
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
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.
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.
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.
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
Jewish ellison's needs a community approval. Shylocks don't do that.