6 ms·
Oracle VP: “We have a strategy to run Java inside a Javascript environment”
- jfb 16y agoIt's turtles all the way down.
- endtime 16y agoUmm...are there any reasons, other than the JVM, to use Java? I'd much rather write plain old JS (or even better, CoffeeScript) than Java any day.
- samstokes 16y agoVast quantities of existing code?
- technomancy 16y agoHe said other than the JVM.
- cemerick 16y agoIf we're talking about a JVM impl (rather than a source-to-source compiler á la GWT), being able to use better languages like Clojure, Python (via Jython), Ruby (via JRuby), et al. would be a huge reason.
- vhackish 16y agoHmmm, I'd assumed it was a source-to-source compiler. Are they thinking of writing a JVM in JavaScript? Can you say slow? And debugging seems like a nightmare. And if it's not that, then how else does it get into the browser?
- cemerick 16y agoPresumably, that's what Orto did (a post about which I linked to in the original post), and apparently with reasonable performance results for the examples they provided at the time (circa 2008). Javascript runtimes are becoming absurdly fast these days, so I wouldn't put an efficient and effective JVM-in-Javascript out of reach on spec, at least not yet.
- endtime 16y agoFair enough. Though if you want to write code that looks like Python or Ruby, I can't recommend CoffeeScript (or Coco, if you're feeling frisky) enough.
- Locke1689 16y agoI don't know but this trend of making Javascript a compilation target is making me want to shoot myself (from a compiler-design perspective). JVM->Javascript seems like they're begging me to head over to Oracle and scream "Guys! You're going the WRONG WAY!"
- cemerick 16y agoJavascript's absolutely ubiquitous distribution characteristics have resulted in all sorts of irrational behaviour. If the W3C or the browser makers collectively had put some thought into making it possible for other languages to be linked into the client in a sane way (i.e. rather than the existing plugin regime), or defined some proper IL that app authors could compile to, Javascript wouldn't be on its way to being the compilation target for the web.
- azakai 16y agoYou make it sound like they were incompetent, lazy or evil. Or perhaps I misunderstood you, sorry if so. But the fact is, they did think a lot about using other languages on the web, and about proper ILs as well. The fact is, there has been no good way to do either, if you want a standards-based platform with multiple compatible implementations. You can take some existing IL like Java bytecode, but (1) that stuff is patented, and (2) there is no hope of cross-vendor agreement on what that IL should be, and all of them have various issues anyhow (for example, Java and .NET bytecode were designed with static languages in mind). JavaScript is winning simply because it's there, it works, and everybody supports it. Yes, it has frustrating limitations, but it's hard to see a practical alternative. We will simply need to overcome those limitations - and that is possible.
- cemerick 16y agoThat was perhaps a little harsh in the phrasing; I wasn't really implying any of those things. I think I am saying that this appears to have been a blind spot on the part of the web standardization crowd and the browser makers. Maybe I'm entirely wrong though, and there were efforts that simply hit hard problems, as you say. I'd never heard of any discussions around determining a proper IL, though; if you can, a link so relevant MLs and such would be most appreciated.
- vhackish 16y agoYeah that just seems silly. But of course that's the Java way: add layers of abstraction wherever possible. Oh, and a big abstract IDE on top of it all would be really helpful ;-)
- azakai 16y ago> Umm...are there any reasons, other than the JVM, to use Java? I'd much rather write plain old JS (or even better, CoffeeScript) than Java any day. Existing code. I agree that writing JavaScript is better in almost all cases, but there is a lot of existing code out there and not just in Java but C, C++, and other languages. Being able to run that on the web, anywhere, would be huge.
- rbanffy 16y agoIn my book, Java is the best reason not to use a JVM. It's things like Jython and Clojure that save it.
- endtime 16y agoI agree; I implied that the JVM is a reason to use Java, not that Java is a reason to use the JVM.
- wmf 16y agoFor Oracle's sake, let's hope Google doesn't have patents on GWT.
- bad_user 16y agoLike a patent on compilers that converts from language A to language B? No, Oracle has that already.
- juiceandjuice 16y agoJava -> Javascript -> (v8) -> assembly = JVM
- raganwald 16y ago"We have a strategy to promise that everything and anything provided that there is no firm specification or explanation and provided that we provide no date for implementation. "This gives our customers a sense of security that if anything should happen to become important in the future, they will have purchased from a vendor that has a vision for embracing the technology even if there is no roadmap for actually implementing the technology. "And although they may not ever end up benefitting from the technology, their careers are safe because they made a decision that, at the time, was prudent, namely to standardize on a technology that was thought to be on its way to becoming ubiquitous from a vendor that articulated a strategy for achieving ubiquity." tl;dr: "F.U.D."
- cemerick 16y agoWhere is that from? That's not in my post, and not in the podcast transcript…
- deleted 16y ago[deleted]
- raganwald 16y agoOh? Gosh, I must have misread it. I admit I was in a hurry, and what he said sounded so much like what other proprietary enterprise vendors say when promising vaporware that I got the exact wording confused. UPDATE: Look, I am NOT making fun of your post in any way. I think it's fair game to poke a little at his comments given that there has been no other mention of this, no roadmap, nothing. But I respect your post and the fact that you pushed a little further and tried to find some corroboration for his statement. I'd like to think that somewhere in Oracle-land, there's a white paper from the Sun days talking about this idea, and maybe they're even trying to make it fly right now. And good job teasing that out and asking some intelligent questions about what it may mean.
- deleted 16y ago[deleted]
- 16y ago
- bad_user 16y agoCreating something like a VM or a compiler that produces reliable and fast-enough Javascript from bytecode is hard work, and there is no evidence that it can be done. Microsoft tried something similar with Volta (project discontinued) and when I tried it the results where awful, although it was cool that you could compile CLR bytecode to Javascript: http://en.wikipedia.org/wiki/Microsoft_Live_Labs_Volta http://en.wikipedia.org/wiki/Microsoft_Live_Labs_Volta On the other hand creating something less than Java SE would break compatibility and it would not be covered by the patents grant, not to mention difficulties in calling the thing "Java". Oh wait ...
- zmmmmm 16y agoI started out writing about how I thought this was insane and by the end of it I had changed my mind and - suspending disbelief and assuming they can pull this off in a reasonable and performant manner - it's actually a pretty clever idea. Now that Apple, Google and Microsoft have all put the nail in the coffin of applets by not supporting them on their mobile devices Java is looking decidedly shaky as a client side browser technology - especially when you consider that Flash IS shipping to most devices. However Oracle can actually one-up Flash here if they can promise to run inside the browser on any platform. Not too long ago it would have been impossible, but with things like Canvas, WebWorkers and WebSockets they can probably make a reasonable stab at implementing at least the functions of a standard Applet with Javascript.
- duskwuff 16y agoJava as an applet host has been effectively dead for years. I would be very surprised if Oracle were trying to resurrect that. Seems more likely that they'd be trying to replace the server JRE with a server-side JS interpreter.
- mambodog 16y agoJava as an applet host has been effectively dead for years. Blackboard still uses it :(
- zmmmmm 16y agoSeems more likely that they'd be trying to replace the server JRE with a server-side JS interpreter Unless you're suggesting they are being willfully misleading I'm not sure how you could interpret that from what they said: ...we think it’s something that we need to do for the community so we can make Java available more places from tablet devices like the iPad ... I think Java applets are a lot less dead than people realize. There are heaps of enterprises that have deployed them for internal apps (essentially a slightly less evil version of ActiveX). I could easily imagine a lot of these places now have executives wandering around with iPads complaining that the payroll app doesn't work on their computer any more.
- Shorel 16y ago
- ShabbyDoo 16y agoGWT achieves reasonable speed by only supporting a subset of Java which is already basically compatible with the JavaScript runtime. So, you don't get things like threads, weak references, etc. To support such things (if it's even possible) would require writing (at least pieces of) a JVM in JavaScript. Want weak references? You now can not use JS GC -- you have to synthesize Java objects and write your own GC impl. Good luck getting that to perform.
- mrleinad 16y agoSUP DAWG, WE HEARD YOU LIKE JAVA, SO WE PUT JAVA IN YO JAVA SO YOU CAN EXECUTE JAVA WHILE YOU EXECUTE JAVA
- rbanffy 16y agoThere is a certain amount of cluelessness that, when concentrated inside a given company, risks starting a runaway chain reaction that ends up destroying the company and the ecosystem around it.
- jcw 16y agoNo no no no no no no.