Friday, February 22, 2008


I just heard of Cloudo, an “internet operating system”. (Although this name is, strictly speaking, not incorrect, I'll call it a “web operating system” for clarity's sake.) There is no public beta of Cloudo yet, but have a look at this article to get the idea. It really looks much like a desktop OS (OS X, actually), except that it runs in your browser.

Admittedly, a decent web OS would be wonderful: to have your own environment, your own documents, your own applications, wherever you are. But Cloudo can impossibly be that OS. Why? Because it consists, like every other web application, of a steaming, smelly pile of HTML and JavaScript.

Oh, doubtless it is possible to write an OS in HTML and JavaScript. People wrote Lemmings in this kind of stuff. But like is also possible to build a house out of matchsticks and ducktape, that doesn't necessarily make it a good idea.

HTML was never intended for interactivity. JavaScript originated as a gimmick. Both are now being stretched, and stretched, and stretched even further… until they eventually break. Already it seems that even Moore's law has not been able to keep up with the growing complexity of JavaScript in the wild, even combined with ever faster JavaScript interpreters—web sites are getting slower, not faster[citation needed]. And using a markup language, instead of a proper UI language or toolkit, makes webapps feel more like interactive web pages than like real applications. I don't want to select the text in the title bar, people.

I'll be the first to admit that web applications have many advantages. They don't need installation, are available from everywhere, keep your data accessible from everywhere, don't need any maintenance, etcetera. But we are in desperate need for new technology for this. JavaScript is the C of the web—obiquitous, portable, but a huge and ever growing pain in the ass. Should we continue to build on that?

Also, Cloudo currently lacks a web browser. Nuff said.


Qwertie said...

Personally I'm against solutions that require "you must write your program in this language and no other". JavaScript is not a bad language--it's clumsy at times and it can't reach C-like efficiency--but it could have been worse. It may have been a gimmick at first but the core language was designed better than your average gimmick. Still, I wish the code ran in some sort of standard VM, so developers could choose their own language syntax for client-side code--C#, Javascript, Java, python... any "safe" language. Of course, one could not expect the standard libraries of all these languages to be available, but it would be nice if one could at least select the syntax.

OTOH, a VM approach would mean you'd have to compile your code in advance. I guess some people wouldn't like that.

I don't think interactive HTML is bad. I think HTML+CSS are a nice way to describe a user interface, except that they were always designed primarily for output, not input. But I like that you could always design an HTML page that could resize gracefully and handle changing font sizes. To support resizing and variable font sizes in traditional dialog boxes is difficult with most GUI technologies.

Thomas ten Cate said...

Syntax is overrated. As the saying goes, you can write FORTRAN in any language—but you can also write a well-designed, elegant application in PHP. The number of people that write Perl drives my point home ;)

I agree that a VM approach would be a step forward. You probably have read about the new WebKit engine, SquirrelFish, that compiles JavaScript to bytecode, so that shift is already happening (albeit on the client).

The Java UI toolkits (especially Swing) do a very decent job at being resizable. So does GTK (I think; no first-hand experience there). It's definitely possible; the problem is only that native Windows applications (Mac too?) resize badly or not at all, because the API has never really supported this.

digital certificate said...

Thank you for broaching this subject. On another note, I just want to thank you for the work that you do and your willingness to share. You have created outstanding materials and we all benefit from your generosity.

Anonymous said...

Thank you so much!
If you konw linux, you can have even more fun with the three following scripts:
(Some people may know how to group the following scripts into only two of them)

root@jean_michel_lo:/tmp# ls

alllanguages _alllanguages espandere

root@jean_michel_lo:/tmp# cat _alllanguages

aspell -l nl dump master
aspell -l en dump master

root@jean_michel_lo:/tmp# cat espandere

alllanguages $1 | aspell expand

root@jean_michel_lo:/tmp# cp alllanguages _alllanguages espandere /usr/bin

root@jean_michel_lo:/tmp# alllanguages rubi

That's just one minute of work...
It really is good to learn several languages in parallel, beacuse the link pops back in your mind while speaking one of them, whithout interfering.

Anonymous said...

My thanks comment get replaced because of a paste mistake by the same...
Can you please remove the two bad ones?..
(it is the first time in my life i leave a comment on a blog, and I am 42 tomorow :)

Thomas ten Cate said...

Thanks for your comments and congratulations on this milestone! I removed the comment that looked like a duplicate.