Live data from Hacker News

Java 9 with GPU processing, Java 10 will be all-OOP without primitives

javaworld.com

61–70 of 138 posts

Re: Java 9 with GPU processing, Java 10 will be all-OOP without primitives

#61
post #45

Earlier quoted context omitted.

It somewhat surprises me that they'd not want Java to become the new COBOL. COBOL is still alive, still runs large systems, and still sells hardware and software. Owning the new COBOL has the potential to be quite lucrative in the long term.

I don't think so, Although I agree with you that COBOL is still alive and kicking. That is totally different that being used for awesome projects and by start ups. If Oracle's plan is to keep Java alive as a glue for their DB that strategy would work fine. But it would be a long term disaster in terms of overall innovation, and long term viability for choosing everyday projects.

Choosing Java for everyday projects is a long term disaster?

What about Android apps?

What about solid back-end?

What about Google AppEngine-Java?

People are still using Java for everyday projects and I don't see a disaster coming anytime soon.

Re: Java 9 with GPU processing, Java 10 will be all-OOP without primitives

#62
post #58

Earlier quoted context omitted.

To be fair, if you were researching computer languages and rewrites, you would be looking at Python 3.0 and Perl 6.0. I believe both will be successful in time, but for business planing, it looks like a lot of problems and a slow evolution will work better. Oracle is pretty comfortable with the slow evolution route.

There's no way I'd put Python 3 and Perl 6 in the same sentence. Also, IMO there's no chance of Perl 6 being successful in time (which makes me sad, because 10 years ago or so I was really hopeful about it).

If you are some manager in a big company and looking at the press, there is little distinction. In fact, more stories have been posted about Python 2.x to 3.x conversions (mostly because Perl 6 is not a story). Heck, I would imagine a couple of people on HN have run into the "can't use Python 3 because it isn't compatible with anything"-meme. Carefully considered logical analysis with realistic risk mitigation gets trumped by headlines in ComputerWorld and InfoWorld quite often.

I still have quite a bit of hope for Perl 6. I use Perl 5 as my goto short scripting language. I really want it to work.

Re: Java 9 with GPU processing, Java 10 will be all-OOP without primitives

#63
post #47

Earlier quoted context omitted.

Maybe I'm too cynical, but I don't think you can seriously plan releases so far in future. What you can do is delude yourself (which happens all the time at big bureaucracies) or make it look like you're planning seriously in order to appear responsible and visionary.

It pretty much depends on industry. Look at mobile, 2007: J2ME, Symbian, Windows Mobile, BlackBerry -> 2012: iOS, Android, Windows Phone. Now look at the web: it was more of a evolution than revolution. What happened at back-end, like server-side functionality of business apps? They didn't really change and probably won't change for a longer period of time. Even stuff like Hadoop for big data or Groovy for DSLs were…

Even on the "evolutionary" web, I don't think anyone in 2007 would have predicted the rise (and now... fall?) of MVC frameworks or the explosion of jQuery, both of which existed and were relatively popular at the time. Likewise the NoSQL rebellion was a surprise. Five years from now, we'll all be using WebGL-based dyanmic UIs. Or will we?

I think the point is more that 5+ year planning in the tech industry is simply pointless, not that all technologies will be replaced. Sure, there are some constants. We can all safely predict that in five years we'll still be writing drivers and middleware in C, still be using zlib and libjpeg, etc...

Re: Java 9 with GPU processing, Java 10 will be all-OOP without primitives

#64
post #6

All-OOP? So functions will be objects too? And classes? And contexts? Not meaning to start a flame, just saying the title's a bit inaccurate IMHO...

I think similar to C# where the primitives are objects is what they want, terribly misleading title I agree. However, I cringe when I think of what this does to performance. The memory overhead of objects in java is pretty high (relative) while primitives are very memory efficient. If they can make the primitives just as efficient, it would be awesome, but I guess its a wait and see. I don't currently mind using the…

I assumed they were talking about tagged fixnums, which have primitive-like performance but can still be treated like objects. https://blogs.oracle.com/jrose/entry/fixnums_in_the_vm

Re: Java 9 with GPU processing, Java 10 will be all-OOP without primitives

#65

It seems to me that eliminating primitives could be a really bad idea. If you have a class: public class CompoundObject { int i; int j; double k; } This class's data members are all a few bytes away from each other, so once the object is loaded into the CPU cache, all operations should be fast. With boxed types, you might get 3 cache misses when accessing i,j,k. On the other hand, referential transparency can help he…

Was absolutely concerned about this as well, but then say the timeline they are talking about (almost a decade) and decided to keep my concern in check, at least for another 6 years.

I either imagine hardware progressing so far in the next decade that this is absolutely moot or the language changing directions and some surprise coming out of left field to change this gameplan.

Re: Java 9 with GPU processing, Java 10 will be all-OOP without primitives

#66

Earlier quoted context omitted.

They don't say how they're implementing it. Given the compiler always knows the actual type of a primitive at compile-time, they can probably implement most of the Object functionality by plugging in the class meta-info at compile-time. When a primitive would need to be boxed, Java programmers are already used to the performance implications of this. The only object functionality I can think of that would be hard to…

The "boxed primitive" types (Integer and so on) should be `final`. This means no inheriting from them, which means no polymorphism, which means their sizes and all operations on them are known statically. This means you can store them as values in the object with no fuss, and you can inline all of their access functions.

Java objects have functionality beyond dispatch tables. Synchronization is one. You can also have x != y where x and y are different objects with the same value.

Re: Java 9 with GPU processing, Java 10 will be all-OOP without primitives

#68
post #47

Earlier quoted context omitted.

Maybe I'm too cynical, but I don't think you can seriously plan releases so far in future. What you can do is delude yourself (which happens all the time at big bureaucracies) or make it look like you're planning seriously in order to appear responsible and visionary.

It pretty much depends on industry. Look at mobile, 2007: J2ME, Symbian, Windows Mobile, BlackBerry -> 2012: iOS, Android, Windows Phone. Now look at the web: it was more of a evolution than revolution. What happened at back-end, like server-side functionality of business apps? They didn't really change and probably won't change for a longer period of time. Even stuff like Hadoop for big data or Groovy for DSLs were…

"Look at mobile, 2007: J2ME, Symbian, Windows Mobile, BlackBerry -> 2012: iOS, Android, Windows Phone."

Blackberry remains much more relevant than windows phone. You also forgot to mention Bada which also has more share than wp and is growing. I'm not trying to beat up on wp but as it stands reality conflicts significantly with marketing.

Edit: why the down mod? if I'm in error, please point out where.

Re: Java 9 with GPU processing, Java 10 will be all-OOP without primitives

#69
post #44

Earlier quoted context omitted.

Not when you consider Java as a 'business' for Oracle. And business planning is always done like this. If Java no longer remains useful to Oracle expect the same thing what happened to things like flash. It will be donated to Apache software foundation.

Apache and the Open Source community already have a Java implementation in the Open JDK. One thing not touched on in the article but would definitely be worth know is if Oracle will start inserting "pay-to-use" features in the language or release a solid JIT compiler and run time companies must pay for in order to use. I know it's been bandied about in the past that Oracle might start restricting access to some langu…

http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/763f01...

Re: Java 9 with GPU processing, Java 10 will be all-OOP without primitives

#70
post #5

All-OOP? So functions will be objects too? And classes? And contexts? Not meaning to start a flame, just saying the title's a bit inaccurate IMHO...

This is a very good point. If functions become objects, interfaces would become literally useless. Somehow it seems that it would not be the case since this would be a drastic change (even thought getting rid of primitives are as well.)

While I agree that I hate interfaces with one method, what about interfaces that actually define several methods (e.g. - perhaps a driver for something that needs to do operations like "open", "close", "get", "put")?

Interfaces still serve a purpose bundling together related operations with replaceable implementations. They're just a nuisance for single-purpose functions/functors (e.g. - "run").

Post reply on HN