Google has indicated it will offer native code browser applications from the Chrome web apps store that's due to launch later this year. The Chrome Web Store is designed for use with Google's Chrome browser and the company's upcoming Chrome OS, and it would appear that the store will make its debut when the OS hits netbooks in …
Java any One?
I only which I could convince my managers of this, since they are hell bent on porting a Java/Swing program to AJAX web 2.0. I even try to point out to them that it can simply be turned it into an applet and the end users would care less, and more importantly it will work as expected.
What I don't understand is why they didn't just make Java/JavaFX a center piece of this approach. I find it so ridiculous that companies always go about reinventing the wheel over and over.
Need to stay in control
"I find it so ridiculous that companies always go about reinventing the wheel over and over."
Larger companies always feel - rightly or wrongly - that they need their own version of some technology in order to stay in control. I guess Google is now also in the platform-building business, and perhaps they think they cannot be dependent on Java controlled by Sun and now Oracle. Besides Java probably stinks bad in the noses of many hackers at Google. It has a poor reputation among the open-source folks, thanks to the bloat (hah, most software is nowadays as bloated, or worse) and the dependency hell the different JVM versions create (most people just give up and bundle a JVM known to work with any Java application they distribute).
Here's how it works.
Blue Sky thinkers go to a presentation, get fed free food and wine. They then here....waffle, waffle, drivel,drivel,Web 2.0 AJAX HTML5 is great, drone, drone drone...
Then tehn come back and go
waffle, waffle, drivel,drivel,Web 2.0 AJAX HTML5 is great, drone, drone drone...
Now go off and do it.
"What I don't understand is why they didn't just make Java/JavaFX a center piece of this approach. I find it so ridiculous that companies always go about reinventing the wheel over and over."
I guess you simply do not understand the difference between Java and Native Code. The first is inherently (because of the memory model of the JVM) inefficient in terms of runtime and memory consumption. Realtime responsiveness can't be assured by Java (except if you use it in a strange way (no new statements after startup)) .
I guess you know what can be done by C/C++ based games, photo/video editing applications, CAD systems or relational databases. Native Languages like C/C++, Pascal, Fortran or Ada allow good programmers to write efficient, small and realtime-capable programs.
Google knows the difference between Native and Java(or .Net) while the drones of SUN (McNealy et al) were only able to generate excellent media spin.
You know, SUN is the "Stanford University Network". Don't expect academics to create something that is useful in the real world. What they do is a proof-of-concept and Java is no exception.
Read it again. You missed the point. Big time.
(The clue is in the bit talking about Unity and "Lego Star Wars".)
Understand Quite Well, Get your fact strait
You don't seem to understand Java/JVM well at all.
1. Its among the top 3 languages used
2. Top 3 IDEs (Netbeans, IntelliJ, and Eclipses) are done in Java
3. Countless enterprise level sites run Java Servlets for the backend
4. All major smart phones (except iPhone) make use of it as their core programming language.
Yes I see how one might come to the conclusion its useless given the above facts. Better yet, go to Monster.com and type in Java then do the same for Pascal or C++ for that matter, I tell me which list the most Jobs.
@jlocke: go and read some books
then you can stop sounding like you don't know what you're on about.
And don't dis academics just because they do stuff you don't understand.
And the sucking up and regurgitation of google propaganda is getting embarrassing. I actually like google but they aren't as cuddly as they look.
Useful suggestion: taking your list of java addons further down, write a language which incorporates these ideas (as far as they make sense). Spits out C. Go on, do it, be a 'real engineer'.
There is something about seeing / hearing the American pluralisation of lego that grates. (Sheeps!)
To complete my list of Suggestions for a ProperJava, I would like to add Value Arrays (as opposed to arrays of pointers) and Value Members (as opposed to members which are pointers).
So the required new features would be
A) Value Arrays
B) Value Members
C) Objects and Arrays on the Stack
D) Reference counted pointers ("Smartpointers")
F) Ability to pass all those new object types by reference into a method
G) Ability to specify classes as single- or multithreaded. (That's a consequence of the safe and efficient implementation of the above)
Basically, this would be a safe version of C++. Maybe Mr Ellison can find a real engineer as opposed to the SUN academics to realize that.
Isn't Google's new language, Go, supposed to be just that, a safe version of C++?
Icon WIN! :)
Go uses Garbage Collection and that is one of the major reasons for bloated and non-realtime Java programs. The other aspects, I don't know.
Are you sure? Objective-C also uses GC on Mac OS X and it doesn't look that bloated and non-realtime. I'd say Go is pretty much designed as a systems programming language, even though it has a GC.
Like the world needs another platform
FFS, the TCO is going to be no different to sticking with Windows and in the long run Windows will probably work out cheaper since it is already long established.
This is a major element of using a PC as a Dumb Computer. No Installations, no configuration, just a proper web browser and that is it. Does not matter whether it runs windows, linux, macos, bsd, googlyos or whatever.
MS will hate this like they hated Netscape, but this time they can't do anything, because Bing is crap and Google search is free anyway.
..will also be eliminated by Native Client, as any codec and any sort of logic can be implemented this way. Maybe even DivX manages to create a proper Native-Client based video decoder....
Note that you can also integrate your favourite scripting engine - native client does not care as long as the binary code is good.
Video sites will have the freedom to use the codecs they please - no dependency on Flash whatsoever. This could also simplify the whole codec discussion. Every site can use the codec they wish and pay royalties or use OggVorbis embedded into their Native or whatever.
OpenOffice Cloud Edition
...could easily be built by porting the GUI/system call library (called StarView long ago) to Native Client. Of course, some further adaptions are necessary to allow for "cloudy" file storage.
Browser In A Browser
Another funny option is to run a custom browser INSIDE a browser running Native Client. One can find a lot of arguments against it, but think of this for a second:
Instead of installing a "fat" browser like FireFox, Opera or Safar, you just install the Native Client runtime, which contains only the runtime and basic http (not html !) functionality.
Then you key in an address and download a web resource. The runtime then loads a renderer ON DEMAND based on the content. Certainly, the latter could request a specific html renderer like "Firefox", "WebKit", "IExx", "Opera", "Flash", "DivX", "MPEG4" etc.
That would do away with all the issues related to browser portability. Everybody can just use a single renderer/player of choice, as long as it runs inside Native Client.
Also, the renderer/player does not need to install completely; just the resources needed at this point in time would be downloaded.
Memory Managemnt in Objective C
... is apparently very much the same as in C++: Smart Pointers and destructors. The Garbage Collection option seems to be new and scarcely used. For good reason I would say.
I googled this:
"The Objective C way
Objective C uses 'reference counting' as its main memory management technique (wikipedia.org/wiki/Reference_counting). Every object keeps an internal count of how many times it's 'needed'. The system makes sure that objects that are needed are not deleted, and when an object is not needed it is deleted. This may sound like automatic garbage collection (the way it works in Java, AS3 wikipedia.org/wiki/Garbage_collection_(computer_science)), but it is not. The main difference is that in automatic GC (Java, AS3 etc.), a seperate chunk of code periodically runs in the background to see what objects are being referenced and which ones are not needed. It then deletes any unused objects automatically with no special handling required by the programmer (apart from making sure all references to objects are removed when not needed). In the reference counting method, the programmer has the responsibility of declaring when he needs the object and when he's done with the object, and object deletion takes place immediately when the object is no longer used, i.e. reference count drops to zero (See the above wikipedia links for more on the matter).
Note: Objective C 2.0 also has an option to enable automatic garbage collection. However, garbage collection is not an option when developing for iPhone so its still important to understand reference counts, object ownership etc.. "
Re: Memory management in Obj-C
Please refer to the note in your quote. Although GC is not available on the iPhone it is commonly used on Mac OS X. I write iPhone and Mac OS X software and use both refcounts (retain/release) and GC depending on the project.
To be honest I haven't dug into Go enough to make any stronger claims, but I can tell you that by reading the doc it does feel like a sys programming language and not like another Java clone with slow, mark-and-sweep GC.
are living in the dark ages. 10 years have passed since Java was too slow for anything serious. JVMs are faster and smarter, computers are faster, RAM and HD sizes now dwarf so called bloat. Sure, you wouldn't write your life support software in Java, but then you wouldn't run it on Windows either. "Real time" just means that processing lag never exceeds data input and output frequency, and for most applications on modern machines, Java is now a perfectly capable choice. It is much faster and easier to develop in than C or C++, and thus it's success.
And as for Google not backing Java, what the hell is GWT then? I think Google are fine with Java, they just don't put it highest on the to do list is all.
WTF?! @untrusted native code
i.e. @"Chrome OS will include Native Client, the Google add-on that verifies and executes "untrusted" native code inside the Chrome browser"
Ok so it will protect us from spyware etc.. which is good news ... oh wait, who in their right mind completely trusts Google's own native code to be free from spyware, let alone a whole Google OS. After all, server side spyware is Google's ultimate core business plan. So how many (more) ways have they got lined up for us to get data on us in their new Google OS. Oh yes right, I forgot, when they are caught again, it will be more Doublespeak from them like its just the fault of one lone unauthorized programmer, like with their entire global mapping system spying on wifi.
So I don't care how much Doublespeak Google tries to feed me about them "doing no harm", I will never use Chrome or Chrome OS on anything I own. Far from them doing "no harm", the more Google expands its tentacles into ever more areas, the more I'm starting to see through their endless Doublespeak to see just how much of a two faced Machiavellian company we are really dealing with.
Plus lets not forget the Google Doublespeak about them trying to organize the world's data. I'm sure George Orwell would have had a different way of describing what they are increasingly doing.
That's what I heard last too...
...that with "modern" techniques (and it was a few years ago), Java execution speed is comparable to compiled-to-native-code software.
Is it me, or has Google just announced their own equivalent of ActiveX controls, one of the major zones of Windows vulnerability? And they're bringing it to Linux?
What does this "FAIL" button do? Is "EPIC FAIL" reserved for bad news with the Electronic Privacy Information Center as part of the story, or is it for asshatness in general?
@Robert Carnegie, Java Fanboiz, Native Client Technology
Java Performance is still horrible compared to C/C++ or other native languages like Pascal, Ada or Fortran. And that is not because too few effort has been put into JVMs and JIT compilers.
The reason is systematic: Garbage Collection, lack of Value support (members, arrays), lack of Stack allocation, no destrcutors and some more. The java fans often claim that there exist benchmarks that prove otherwise, but they always fail to show some large, real-world system that does CAD, Image Processing or Signal Processing in Java. All the "quant" finance is done in C++. Figure why !
Regarding Native Client Technology, it is open source and you are free to use it completely disconnected from any Google Service. I am not sure about patents, but at least the sourcecode of the Native Client runtime is open source; not even GPLed.
And I repeat: This is NOT ActiveX, it is based on a theoretically very strong concept and some very simple ideas. You do not need a math degree to realize this is rock-solid. Before you scream "ActiveX", please read the documents or look at the youtube videos.
People soon forget...
The Java versus NaCl debate is missing the point. It's not about whether NaCl is better than Java or Java is better than NaCl... it's all about programming language and existing code. Sure there's a lot of stuff written in Java and a lot of it is Enterprise based. This isn't about the Enterprise. This is about, initially, GAMES.
Most game engines are written in C. Rather then trying to convince all the game engine writers to take the time to rewrite their engines in Java (good luck with that)... they're just convincing game engine writers to take their existing C code and make a few tweaks, and boom... it's NaCl.
From Google's perspective, any Enterprise app will run just fine in Chrome as a web app. If you use the offline functionality of HTML5, you don't need to be online. However, for high powered games, people would be left high and dry... NaCl fills that gap.
If you want to use your Java applications in Chrome, those will STILL WORK. Chrome is not abandoning Java. NaCl is, again, just to fill in the gap between those who don't want to rewrite existing C code into Java. Others, who grow to like NaCl MIGHT rewrite some Java applications into NaCl... or MIGHT use NaCl in the future instead of Java... but this isn't about replacing Java per se.
Games And Java
..simply won't work. At least for high-end games that aim to be fully animated and photo-realistic.
Tic-Tac-Toe, Tetris and Reversi will be possible, though.
The Games developer would use Java or .Net for new games, because it would cut their R&D time significantly.