A couple months ago, I started on a project to make a purely JavaScript, 
in-browser version of Mac OS X.  This is my third attempt at creating this kind 
of thing, and hopefully, the third time is the charm!  You can find it at 
http://luvluvluv.info.  For obvious reasons, I am primarily interested in 
developing for Google Chrome, but Safari should also work pretty well, and 
Firefox seemed to do okay (when I checked it last).  Opera didn't fare so well, 
and I couldn't care less about IE!  Anyway, I do all my hardcore testing on 
current/stable Chrome, so please use it when you check out the site.

When the site loads, you should be faced with a familiar interface, complete 
with a semi-functional "dock" at the bottom.  The menubar on top is currently 
pretty useless because I've really been focusing on getting all the low level 
icon/window handling mechanics working.  But now that all of that machinery 
seems to be getting worked out pretty well, I will be able to start focusing on 
these higher level kinds of things.

I guess the main philosophical point of this kind of site is simply that web 
interfaces can actually be very user friendly and functional if web developers 
would actually will them to be so.  As it currently stands, we are still stuck 
in the same early-to-mid-90's model of one-to-one mappings between URLs and 
pages of content.  By the mid-2000's, of course, AJAX came into being, but this 
technique has only been put towards fairly trivial use cases.

Now that JavaScript engines are getting blazingly fast and our in-browser API's 
are becoming so robust (multimedia, local file systems, etc), there is only 
upside when it comes to web development.  However, the problem still remains as 
far as how all of the new fangled "web apps" are going to be discovered and 
launched by end users.  Are they going to keep relying upon doing text searches 
and clicking on ugly blue hyperlinks?  Not if I have anything to do with it!

My site currently has no content on it except for a couple of iframed <html> 
documents.  That is, there is, as of now, no real communication between 
luvluvluv.info and the outside world.  My sights have so far been set purely on 
the client side.  But now I will be able to start thinking about how to, for 
example, do dynamic loading of Javascript applications into the site.  Say you 
subscribe to a certain "web app developer channel".  You know this developer 
does really good work and you want to see everything he/she/it does as soon as 
you can.  So... you keep this kind of website always on, with a specific folder 
that can have new icons suddenly appear in it.  Mind you, nothing's been 
downloaded except an image, and maybe a small html fragment with some embedded 
JavaScript.  But when you double click on it, the full application will 
automatically be loaded, and you are ready to rock! 

The previous scenario is just a small taste of what is possible with this new 
kind of paradigm.  The fact that Chrome automatically sandboxes everything 
means that everyone can have many safe and cheap operating systems with which 
to experiment and explore.  Or, you can make break out of the sandbox by 
running a local node server and sending read/write requests for local resources 
over Websockets.  You can even have your browser as an endpoint for remote http 
requests (or actually any kind of Websocket request) by using an outward facing 
node server as a proxy/router!

And we haven't even start talking about Native Client yet.  I haven't really 
even researched that yet, but once this thing starts to catch on, you can bet 
there is going to be a real bum rush of people looking through all of their 
legacy C/C++ code to see if it can be "webified" fairly painlessly.

I also have a real love for Natural Language processing, which is something 
that I want to start embedding into the site pretty soon.  But Natural Language 
is really more of a dream than anything else.  I feel that this kind of website 
will go a long way towards enabling the kind of creative developer culture that 
will allow us to start turning the dream into a reality.

Whoever wants to help me out is welcome, though I don't plan on giving this any 
kind of liberal license (like GPL or BSD) for the forseeable future.  I guess I 
will just start working on some kind of interface that will let developers use 
it as a library.

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to