I've been following the Enlightenment project for years, always 
impressed by the strength of vision and dedication of the developers.  
Every once in a while I take an inventory of the graphical toolkits out 
there and am always disappointed by the fact that the EFL is the most 
progressive desktop gui system out there and yet hasn't really broken 
into the mainstream.  All the other GUIs (QT, GTK, Windows) are built 
around boring components (boxes, pull-downs, radio, etc.)  The concepts 
behind these mainstream toolkits are decades old.

When I look at the web, I see all of the excitement about Web 2.0 and 
the Cloud and "Linked Data".  But it's all branded and contained within 
different application spaces. You go to GMail to access your contacts 
and send an SMS.  You go to Facebook to update your status.  You also 
have your status to set on GMail, AIM, and every other application.  
These things are really just implementations of a concept.  This is 
especially confusing to less intuitive computer users.  Users have to 
learn a ridiculous vocabulary to do things they already naturally 
understand: (eMail, Instant Message, AIM, GMail, Yahoo, Facebook, 
MySpace).  Instead users should just have to think "I want to send this 
to Bob" (Email/IM) or I want to tell everyone who cares about me 
something (Post a Status).  As the features these companies offer all 
coalesce, one wonders why we need to be branded at all?  Why not just 
standardize on these features and give users more intimate access to 
them through their own computer.

To make things worse, this is all implemented on a HTML/Javascript layer 
that was never designed for it.  Developers have to wrestle with browser 
eccentricities and code hackery becomes a necessary part of the 
development cycle.  Instead of looking for a better platform than the 
browser people have over-inflated its ego (and purpose) and made plugins 
for it.  Now we have Ubiquity, a great idea built on the wrong 
platform.  Rather than take a step back and design a new standard 
rendering layer we now have Flash, Silverlight, and JavaFX.  The browser 
is tired and overloaded, it's laden with features that belong on your 
desktop, not next to your web page.

If you've read sci-fi, or watched movies like Minority Report, you know 
what could be possible.  Direct meaningful interaction with visual 
representations of data.  I think now is the point in computer history 
where that vision can actually become a reality.  It's simply the 
intersection of the browser, your desktop, the Web 2.0 services, and 
personal management tools like OmniFocus or mind-mapping tools 
(Freemind, Xmind, NovaMind, etc).

So let me try to explain this idea more concretely...

Imagine your desktop as a space with context.  When you start working on 
a project, you create a new space/desktop for it.  As you open 
files/email/urls it all gets associated with this context.  When you 
decide to work an another project, you'll close this space.  Later you 
come back to it, and everything is as you left it.  When you search your 
computer you can search within a space or all spaces, and move or link 
things between spaces.  A desktop will dynamically adjust to the 
contents.  If you have 3 pictures you're working with, they'll just be 
thumbnails.  If you're working with 1000 pictures, they'll be abstracted 
as a list that you can manipulate.

Now imagine that all of these things you work with have meta data and 
tools associated with them.  Your computer has a hierarchy of objects 
and tools.  For example, a picture can be scaled, rotated, color 
filtered etc.  Text can have different fonts, colors, be translated.  
These tools are really just simple programs or scripts that are visually 
abstracted.  Eventually there might be a database of tools you could 
download for different purposes.  This is one of the more difficult 
components to design well, but I think it can be done.

Within a space you can create selections of different objects and save 
the selection.  Once you have a selection you can act on it in different 
ways.  You can act on their common properties.  So since all objects 
have a creation date, you can sort by creation date.  If they're 
pictures, you could rotate all of them.

Now expand your concept of desktop objects.  Not only can they be files, 
but they can be objects from a database or a website.  They might be 
widgets like you would see on any of the portals (Google, Yahoo, etc) or 
desktops (Google Desktop, Gnome/KDE/E widgets).  They might even be 
objects from the local database.

Any of these objects can be acted on in certain ways.  You can annotate, 
tag, categorize, or set a due date on them.  You can also create basic 
elements and combine them.  Rather than fire-up gEdit to take some quick 
notes, you just start typing notes on the desktop.  You can tag these 
notes or set due dates for them, and they become todo items.  You can 
type some text and then start formatting it.  Then convert it to HTML or 
a Word Document or whatever.

If you're still with me you have some kind of image of a desktop that 
understands many kinds of files and data objects and can represent them 
visually.  A desktop that might look something like what you see in 
sci-fi movies where you can visually drill down, make selections, apply 
operations, etc.

Imagine that you have a list of contacts that's deeply integrated with 
this desktop environment.  When you open a message from someone on a 
space, the attachments can be moved onto your space and be manipulated 
as objects, you never have to open a save dialog.  Also, the person 
becomes associated with the current context.  These contacts have email 
accounts, im accounts, facebook accounts, etc, but you don't really care 
about that.  You never open an email or instant message client.  You 
simply get messages from the person and send messages.  If the person is 
currently online through an im service the message is sent with that 
method.  You can drag any object onto a message.  The computer 
intelligently translates the data.  So if it's a selection of rows from 
a database, it inlines it in the email as an html table.  There's no new 
data formats or apis, when you get an email with an html table in it, 
you can drag it out into your space and manipulate it and break it 
apart.  Imagine the power of this kind of easy communication and imagine 
that every object can be sent to someone.  If an object is "online" it 
will give the person a link, if it's small it may inline it.  In 
addition, you could invite people to collaborate on your space while you 
work on it.  Or maybe work with online spaces stored elsewhere?

I'm also thinking that this kind of computer environment would replace a 
certain amount of work done with data mining and database tools.  I 
don't do much consulting work but I've encountered a few people that had 
a conceptually simple problem that required a database but the tools 
were just too hard to use and maintain.  They really just needed a few 
tables with very simple associations.  Imagine if you could just 
visually setup a database and define its entities and then manipulate 
and search it just like any other object on the desktop.  Instead of 
developing custom reports for every database, you give people the 
availability to create tables and charts using any kind of object.  Say 
you select a list of pictures, you can then graph the picture dates on a 
time line.  Say you have rows from a database, you can do charts with 
the measures found within that data.

Hopefully you understand what I'm getting at.  The paradigm shift is 
huge, but I think it's the way computers need to go.  Think about it, 
what does your email client or instant messaging client really give 
you.  Aren't they just different interfaces around the same fundamental 
concept?  If your computer was effective at organizing and archiving 
your email why would you even use an email client application?  I 
believe this type of integrated desktop would completely replace your 
need for separate email, instant message, task management, photo 
management (Picasa) applications.

I've been thinking about this project for a long time now and would like 
to begin serious work on it.  I'd like to create a collaboration space, 
gather interest, and start documenting more concrete ideas and organize 
all of this into realistic releases and milestones.  I plan to start 
coding in 2010 after I've had a chance to talk to different experts and 
design the main concepts.  I'm curious though if this could become the 
Enlightenment Desktop or maybe the next release (0.18 or maybe 1.0)?

If the developers are not interested in this vision than I'll probably 
just start a separate Linux desktop project that uses the EFL.  Maybe 
call it Nirvana?

Tell me what you think.  Has anyone heard of similar ideas?  I've tried 
to find projects related to this but I don't even know what to search 
for.  It's a bit cynical but I truly believe that this is something that 
won't ever come out of the big companies and can only be developed 
through open source.  Large web companies won't be interested because it 
essentially obsoletes most of their products.  No need for Google Docs, 
GMail, Picasa, Yahoo's Portal/email, etc.  I'm not sure Microsoft or 
Apple has the vision or desire either.

Also, tell me if I'm totally crazy or not.  Do some of you think about 
these concepts too?


Sincerely,
Arlo White


------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to