Oracle VP: “We have a strategy to run Java inside a Javascript environment”
cemerick.com
cemerick.com
"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."
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.
All that said, I'm happy enough to be Charlie Brown and take a run at this football. Cynicism leads to either resigning myself to using Javascript forever for client side stuff, something I just couldn't swallow psychologically.
"The good parts" of Javascript get a lot of play, but I don't want to have cope by using patterns and avoiding the dull, broken bits that go along for the ride...and I'm surprised that many (most?) other competent developers that wouldn't put up with such compromises in their "real" languages aren't as irritated about Javascript as I have been.
gorram it, jwz.
The same can be said for any programming language that you don't like.
How do you explain the recent widespread enthusiasm for Node.js, including from server-side engineers with little to no previous JavaScript experience?
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.
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.
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.
http://www.aminutewithbrendan.com/pages/20101122
and here is him talking on HN about JS vs Python, Lua etc. in browsers,
From a technical point of view, you also need to think about how scripts interact with other dynamically loaded scripts. That means standardizing on function calling convention, symbol tables, types and object representation. There's no way to solve these things with something like bytecode (which is why there were never any Java applets that load other Java applets), you need a dynamically-typed programming language. So R4RS Scheme may have been a better choice, but that's not what Netscape marketing wanted, so what.
I assume that Oracle is doing this so that people can write Java in a browser. But I don't get it, Java's efforts at being a UI language have been disastrous, both web UI and desktop.
For the same reason it make a fairly decent middleware language is the same reason that it is a poor selection for the UI. It is ridged, it trades off flexibility for safety. Which is a good thing in the middleware layer, but when it comes to writing a UI, it seems that it always has it's feet in the wrong place.
Javascript despite it's warts is a very good UI development language. I was just thinking about this the other day, when I was working on a project, I use two toolkits in my day to day work Dojo and jQuery and I was just thinking about how totally different they are and how they deal with their problem sets very well.
Dojo allows me to build up reusable widgets that are self encapsulated that can just be dropped on a page and jQuery allows me to treat the DOM almost like SQL. They are very different in their approach but yet both are built from the same building block. You just don't see that kind of diversity in Java.
Again it is for a reason, and those reasons are good in the middleware and systems integration layer, but they are cumbersome in the UI. So it makes me wonder, why people are so adverse to learning a new language that is designed for it's problem domain.
I'm working on a COBOL to JavaScript migration product already. $$$
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.
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.
Blackboard still uses it :(
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.
Nah, that will never happen.
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 ...
No, Oracle has that already.