Monday, April 16, 2007

The GNU Network Object Model Environment

I was initially attracted to GNOME because of the meaning of its acronym. Wouldn't it be great, I thought, if my "Desktop" was an interface to the network? This was around the time where I first heard the phrase "The Network is the Computer". I want to explain a bit more about that.

The Network is the Computer

I don't know what was originally meant by this slogan, but I take it to be about distributed computing, rather than the client-server model. Note that this concept is not just about thin clients or mounting users' home directories over NFS. That is multi-user Unix, or client-server computing, and has existed for as long as Unix has. The "Network is the Computer" is something else entirely.

Dude, Where's My Stuff?

Distributed computing in this sense means that some of your apps and data are on the computer you happen to be interacting with at the moment, some are on some server somewhere (possibly belonging to a company or other organisation that you have some affiliation to; and possibly behind significant security barriers) and some are on (possibly many) other servers. Think of it like this:
  • The Unix way: everything is a file
  • The GNOME way: the Unix way, plus every file is on the network (everything is a "Network Object")
I know that that's not the GNOME way now, but that's what I thought it was when I first heard about it, and that's what I still wish it could be in the future.

My Stuff Follows Me Around

Many people interact with more than one computer, and many people spend significant time using that computer as an interface to the Internet. I suppose the largest number of people who do this use a computer at work or school and another at home. This leads to duplication of effort, and worse, duplication of data (and revisions of data), meaning that data synchronisation becomes important.

The "network is the computer" is all about (insofar as is technically possible) device-independent access to my stuff. If you can run the GNOME on a device, it should (screen and input device limitations aside) look and act the same as on any other device. The same data and apps should (device limitations aside) be available. Google apps on mobile phones show some ways in which this can happen.

The GNOME Online Desktop

There are a number of GNOME or projects underway that go some way to addressing the issues faced by the type of user described above. They inclu
  • Conduit: file sychronisation and conversion
  • Telepathy: abstract interface for messaging (not just IM)
  • Mugshot: Keeping up to date with what your contacts are doing on the network. Also application usage statistics (and "Click to install" functionality of apps, across distributions)
  • Galago: presence of people on the network
  • Big Board (in its current version) and/or Gimmie (in future versions?): GNOME GUI to the above functionality
These are projects that seem related to what has been called the "GNOME Online Desktop", which seems to be not so much a focused effort but rather an emergent theme. Also, I am just learning about these projects, and may (actually, probably) have got the sound-bite descriptions of the projects wrong. If so, please correct me.

The Future

Where to from here? It seems to me that if the projects listed above reach maturity and are fully integrated with one another, then we be much closer to true "Network is the Computer" functionality and could probably call the resulting version of GNOME 3.0 (or ToPaZ?).

What are your thoughts? In particular, are any of the pieces of the GOD missing? In particular, if you are a developer involved with one of the projects discussed above (or one that I've missed) would you be interested in participating in an interview (or helping write an article) about all this stuff for The GNOME Journal?


Alan said...

Worst backronym ever. The idea of Gnome as an acronym is totally contrived. CORBA is a horribly over engineered solution to the problem of proprietary developers being unable to work together at other levels of the software stack that open source developers can more easily achieve by other means.

Sure there are a few noble goals expressed in that acronym but the sooner it dies the better.

randomwalker said...

I believe the acronym meant that widgets would reside on the network. It appears a laughable idea in retrospect, perhaps it made some remote sense at the time. I suspect it was simply "just because we can do it" geekery. The online desktop, though, that's taken for granted these days..

scottishwildcat said...

"The Network is the Computer" was (and is) one of Sun's taglines (coined in 1984 by John Gage) and philosophies. It was totally dismissed at the time by the computer industry, but it's never been more relevant than it is today.

sprae said...

I thing, network is a group of objects, when the web pages are construct in a Semantic Web.
Some technologies are available today. For example: Rest, Microformats.
Pages in that technologies will consist a easy to use interaction between applications and web.
Example... When I need actual information of my friends in addressbook, I just put into addressbook only IRL to my friend page. Rest of data will download from page. Other... when i goes to concert, I just put in other form - IRL, and I have information in system calendar.
Applications independent off the web pages/services is the most important thing. Is like shell when small programs (commands) are independent to other, but together are strong, universal tool.

Anonymous said...

Erm... GNOME stands for gnome, which is the biggest problem for the trolls at trolltech back when QT was not free. (

Does anyone still believe in such prefabricated acronym!?

schmichael said...

Backronyms aside, I like the idea.

Anonymous said...
This comment has been removed by the author.
Anonymous said...

John, this is a great idea and exactly what Gnome (and any other Desktop out there) needs to stay relevant.

I'm not so sure about the acronym, but I can say this for a fact: Gnome has made ease of use its guiding principle time and time again. And while, in the past, this meant clean and clear widgets that follow a HIG, today, with networked computer usage accounting for nearly everything the average user does, ease of use is also coming to mean ease of doing things over that network.

Anyway, I have an extension of your idea that I'll post on my blog sometime next week. When it's up, I'll send you the link.

Anonymous said...

The idea of a network-aware desktop is actually implemented quite well by KDE.

You can use ssh, ftp, http, samba, etc etc in every KDE application that reads of writes files.

Alexander Boström said...

Yeah... But really, if you want a portable desktop, the best way to start is to make the home directory portable. Most people probably think that's undoable, that you might be able to do it inside an organisation's network, using NFS, but with today's networks it is feasible even over the Internet. Maybe not with NFS, but there are alternatives.

An option in FUSA for guest login, where you specify a username, a domain and a password and get a new session logged in to that domain, that's *almost* doable using software available today.