Manjuka has posted 1 posts at DZone. View Full User Profile

Chrome OS and Java - Crystal Ball Gazing

07.20.2009
| 10521 views |
  • submit to reddit

Chrome OS potentially offers an interesting combination of innovation and opportunities. We have seen the dominant user interface paradigm go from thin client in the mainframe era to fat client in the desktop PC era. We have seen the failure of modern thin-client interface devices to gain significant marketshare from desktops. Most of us have got used to treating the browser as just another application which happily co-exists with other applications.

So what does Chrome OS bring to the equation? At this point it is mostly speculation, but to me it is clearly going to be an OS with a thin-client interface and services located on the same desktop, on the web, or both.

The user interface will clearly be based on the Chrome browser. Google tuned it to give great performance for Javascript.  So we can expect the standard applications of the Chrome OS to be dominated by HTML and Javascript. Google already has a set of applications (Word processor, Spreadsheet, etc) and UI controls (User-interface components such as GoogleMaps, Local Search, etc). The applications will be able to run locally without network access, with Google Gears or its successors providing the local services. They will seamlessly synchronize with network-based servers. Controls such as GoogleMaps will obviously require network access.

To me the biggest potential advantage for developers on the front-end will be the ability to create mash-up applications quite easily. Google will expose more and more useful UI controls with back-end services (on the PC or cloud), which can be mashed-up using Javascript on the front-end. Without any local installations to be managed, this will go where ActiveX never went. Controls and services on the web can be incorporated on to your application, and you don't have to worry about distribution.

From a Java viewpoint, JavaFX can fit in nicely on the front end. I hope someone at Sun/Oracle is asking Google nicely :-) A JavaFX-powered OpenOffice (which Larry Ellison wants) would be much nicer and powerful than Google docs. With its ability to interact with the browser's Javascript engine, JavaFX will be a first-class citizen on Chrome OS, and be able to interact easily with other applications and components.

On the server side, we have to consider the PC-based (local) services and web-based or cloud-based services separately. Obviously any platform that is used currently (including Java) can be used for the web-based or cloud-based services. Now that Google App Engine supports Java, there is nothing much to worry about there. On the PC-based services, I wonder if any low-level interfaces to the file system, devices, etc will be exposed at all. My guess would be that only high-level interfaces such as Google Gears will be exposed. Printing, saving, devices, etc will be exposed as Javascript objects. These will obviously need to be built on top of the base Linux OS - we just have to wait and see if Java has any role there.

Published at DZone with permission of its author, Manjuka Soysa.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

James Jamesson replied on Tue, 2009/07/21 - 2:00am

Why should Sun/Oracle ask google nicely of something? Java plugin works just fine on Safari/Firefox/IE but very unstable on Chrome browser. So called chrome os is a linux based system and there is a JRE/JDK for linux, Google should get the chrome browser to work with Java first not the other way around my friend.

By the way, I no longer use google for search. I wont use a search engine which harvests innovate ideas from search terms no more.

Manjuka Soysa replied on Tue, 2009/07/21 - 5:25am in response to: James Jamesson

All depends on who stands to lose more. Whether Java not being supported hurts the OS vendor or the Java community depends greatly on the popularity of the OS. Half-hearted supported for Java doesn't seem to be a big issue for the popularity of Macs - but it is an issue for Java developers.

James Jamesson replied on Tue, 2009/07/21 - 10:35am in response to: Manjuka Soysa

OS vendor? Chrome OS is Linux. It is not something google has come with from scratch. Let me repeat my argument; there is already a JRE/JDK for linux.

Otengi Miloskov replied on Tue, 2009/07/21 - 3:24pm

Hehe yeah there is not that OS vendor. Chrome OS is Linux and as James said there is already a  JDK for Linux even there is the GNU Java for Linux. Maybe maybe google will charge as redhat some kind of subcription but because just put together the blocks as the chrome browser over the Linux kernel but there is not that as Windows or Mac OS vendors. Linux is free to use and you can get a copy of the kernel anytime.

Actually I have a PC with a small footprint window manager over a vanilla Linux kernel and when opens the window manager it starts as kiosko firefox so its kind of a Chrome OS and of course there is not OS vendor. I think the author does not know what is Linux or Free/Open source movement about. Java is already supported in Linux so what else you need?. A native api or binding for the native GUI chrome OS will use? Im sure there will be a SWT for chrome OS soon enough.

Linux is an universal open system, thats why Microsoft fear it a lot. But the problem is people does not realize yet the potential Linux could be for human in all the world. Not frontiers in software and 100% pure and open software system that anybody can download right away and start using it with their own creativity.

Ivan Lazarte replied on Tue, 2009/07/21 - 4:10pm

I don't see Chrome OS going very far. Instead I see Android continuing to grow like mad and continuing to diverge from Java until it becomes a competitor to it.

Manjuka Soysa replied on Tue, 2009/07/21 - 7:57pm in response to: James Jamesson

I know it is going to be based on Linux, so what? I was talking in general terms for any OS, but if vendor is the incorrect word for any OS based on Linux, replace it with distributor.

It is irrelevant that there is a JRE/JDK for Linux, what is relevant is that it will be shipped with Chrome OS, so that JavaFX apps can run like any other built-in or network-served app, without the user having to install anything. Its not a technical issue, its a marketing issue.

Manjuka Soysa replied on Tue, 2009/07/21 - 10:58pm in response to: Otengi Miloskov

Ha ha OtengiM.. thanks for educating me about free/open source. Gee I wasn't aware Linux was open source (sarcasm intended)! Unfortunately most of your dribble is totally irrelevant to the topic.

The only relevant bit in your post was that you already had something like Chrome. But difference between your OS and Chrome is that nobody cares about your OS.

Otengi Miloskov replied on Wed, 2009/07/22 - 12:01am

Hehe Manjuka I just emphasize about Chrome OS architecture and the roots of Linux with Open Source because with your writing it seems you dont have idea about, maybe is because you are seeing this on the marketing side anyway. You are awere of Linux and OSS, Good for you!.

I dont care if somebody cares or not cares about my custom OS, I was just saying it is not a new idea the Chrome OS.

Google use Java but they never use it correctly for their projects, I mean real Java(tm). GAE it have to implement it because the JEE stack but Im not sure behind maybe they are using dalvik? but Andriod with dalvik you have that for example, So Chrome OS with what kind of Java(tm) support will be?, the only solution is to install by our self the Linux OpenJDK on Chrome OS.

I have seen that Andriod everyday is more far from Java and more near to C/C++ and native code.

I just suggest you or as a warning, dont spect some cool stuff with Java and Chrome OS will come. Maybe they will implement something uber cool to script with Python and applets with Flex/Flash :)

James Jamesson replied on Wed, 2009/07/22 - 12:34am in response to: Manjuka Soysa

"Its not a technical issue, its a marketing issue"? And why would anyone care if Java would work for or distributed with Google OS or not if the marketing is the only case here? It is google's product, then it is google's responsibility to ensure their Linux based OS distributes Java (Java is open source as you know, no need a license). Not to mention the success of Google's linux distribution is still in limbo and will stay there for a while.

I am pretty sure google will distribute a JRE with Chrome OS, and it all boils down to whether their poorly implemented Chrome browser (who cares if its JS engine is the fastest) runs Java plugin without crashing it or not.

Manjuka Soysa replied on Wed, 2009/07/22 - 1:23am in response to: Otengi Miloskov

So Chrome OS with what kind of Java(tm) support will be?, the only solution is to install by our self the Linux OpenJDK on Chrome OS.

Now that's more to the point :-) Yes, no argument that anyone will be able to create a new distro of Chrome with a JRE. Whether such a distribution will gain the same popularity is another question.

I just suggest you or as a warning, dont spect some cool stuff with Java and Chrome OS will come. Maybe they will implement something uber cool to script with Python and applets with Flex/Flash :)

I am sure Flash will be a there - a given because Google owns Youtube. Not expecting anything as far as Java is concerned.

Manjuka Soysa replied on Wed, 2009/07/22 - 2:39am in response to: James Jamesson

I am pretty sure google will distribute a JRE with Chrome OS, and it all boils down to whether their poorly implemented Chrome browser (who cares if its JS engine is the fastest) runs Java plugin without crashing it or not.

I tend to agree more with what Otengi said.. it is more likely they will create a separate java-like platform as in Android. Java SE would be too old-school to play nicely in the Chrome model - too many hooks in to the low-level OS layers (file system, sockets, etc). That is why I only mentioned JavaFX in the original post - it can play nicely in a thin-client model without Java SE.

As to whose responsibility it is - that's a pointless argument. I think as a Java developer I will gain a lot from it, but you are free to disagree.

 

Mike P(Okidoky) replied on Wed, 2009/07/22 - 11:46am

Ajax / web 2.0 / html+javascript user interfaces are AWFUL to implement.

We're getting stuck in the dark ages here. It would be much better to implement a decent new way of doing UI's. This could easily be implemented in Java. There is Java2D and OpenGL through Jogl.

I'm highly disappointed in the medioce vision from, well, everyone.

Manjuka Soysa replied on Fri, 2009/07/24 - 6:37am in response to: Mike P(Okidoky)

 Ajax / web 2.0 / html+javascript user interfaces are AWFUL to implement.

I agree.

We're getting stuck in the dark ages here. It would be much better to implement a decent new way of doing UI's. This could easily be implemented in Java. There is Java2D and OpenGL through Jogl.

What could easily be implemented in Java? Decent way of doing UI's? Already been done. Decent way of implementing an OS? Many have tried, and I don't think any failed for technical reasons.

I'm highly disappointed in the medioce vision from, well, everyone.

The vision here is all about end user experience, and not about the underlying technology or development model. I quote:

Speed, simplicity and security are the key aspects of Google Chrome OS. We're designing the OS to be fast and lightweight, to start up and get you onto the web in a few seconds. The user interface is minimal to stay out of your way, and most of the user experience takes place on the web. And as we did for the Google Chrome browser, we are going back to the basics and completely redesigning the underlying security architecture of the OS so that users don't have to deal with viruses, malware and security updates. It should just work.

However application delivery and execution under these constraints does not mean that we will be restricted Ajax/HTML/Javascript. I think they will specify a new sandbox environment with a plugin architecture to allow Flash, JavaFX and other VMs.

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.