Friday, May 8, 2009

On Bodies at REST...

Newton got beaned by the apple good. So goes the lyric from another song by the band that inspired the name of this blog. Of course, Newton was probably most famous for his laws of motion, including the principle that a body at rest will stay at rest unless acted upon an external force. This rang especially true for me when my mother was recently diagnosed with breast cancer. For some time I had been looking for the motivation to become more active (yoga once a week just wasn't cutting it). Rather than "resting on my laurels", I decided to do something positive about my mother's prognosis (and my sedentary lifestyle) and signed up to participate in the upcoming Weekend to End Breast Cancer in Ottawa. As a participant, I have to raise a minimum of $2000 and walk 60 km over the course of two days in June. I've been training for about seven weeks now, but could really use your help raising the funds (I'm just about half way there). For details, please see my personal page.

On the subject of REST (the acronym) I finally received the speaker feedback for the EMF tutorial Marcelo and I delivered at EclipseCon back in March. As Ed and Michael have been observing lately, EMF is a complex topic, and considering how much Marcelo and I tried to cover in such a short amount of time, I think we did OK. By contrast, REST is actually quite simple; at its core, it is a set of architectural principles for defining, addressing, and manipulating resources in distributed hypermedia systems. The e4 resources team had an interesting discussion about REST during our bi-weekly meeting a couple of weeks ago and Doug suggested I blog about it (hey, better late then never!).

So, what does it mean to make resources more RESTful in e4? The important thing (and biggest challenge, in my mind) will be to look beyond the basics of resources and well-defined operations for manipulating them (which we undoubtedly need), and focus more on the distributed and hypermedia aspects of RESTful applications. After all, this is what we mean when we say we want to "bring the Web to Eclipse", is it not? We really have to free ourselves from the "traditional" ways of doing things and embrace new (and, presumably, better) approaches - indeed, we have to innovate. Much of the work that I've seen in e4 so far has been about how we will continue to do many of the things we've always been doing in Eclipse, but on the new platform. For example, there has been some exploration as to how the Project Explorer might work in e4. Wait a minute! Why assume we even need a Project Explorer (or projects themselves, for that matter) in e4? The new generation of workers (and the Web itself) doesn't rely on structural browsing the way we "dinosaurs" have in the past. They search for things they need now and tag things they want to remember later. Rather than a Project Explorer, why not provide a UI that is optimized for exploring sets of related (hyperlinked) resources and for discovering relationships between them?

I see e4 as an opportunity for integrated tool environments (for modeling, development, you name it) to take a giant leap forward into the future (or is that the present?) in terms of consumability. We just need to find the means and the courage to help Eclipse overcome the gravity of its legacy and launch it into the cloud (and beyond). Yes, this IS the time for change, in so many ways. Eclipse will remain "at rest" unless acted upon by an external force... and that force is you!

9 comments:

Gordon Lucas said...

Interesting post Kenn. Seems like many established products/services/things that are popular get locked to their success. TV Guide now loses money, and other print media are having trouble migrating to the new web-based world. They saw it coming but couldn't make the leap. If Eclipse can make such a leap and stay relevant/useful/etc., it will be impressive.

Pete said...

Kenn, with respect to "Rather than a Project Explorer, why not provide a UI that is optimized for exploring sets of related (hyperlinked) resources and for discovering relationships between them?" there is a whole community (and technology!) working on just that, championed by Sir Tim Berners Lee no less: see http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData/. Also http://en.wikipedia.org/wiki/Linked_Data and search #linkeddata on Twitter.

Doug Schaefer said...

Yes, better late than never!

I think this is a very interesting area to bring Eclipse into the new way of thinking.

In fact, I just quoted you on this topic today at the lunch I had with Wayne. The readership on the Eclipse Planet doesn't matter, it's whether people can find the information in a way that's easy for them. The Planet is like the Project Explorer, but I get by far the most visits to my blog from Google, i.e. a search engine.

That's the new way of finding information. If we could leverage that in e4, we'd really have something.

AlBlue said...

I just hope that we ditch the concept of platform-specific file encodings and define UTF-8 to be the default interchange encoding.

I also think it's high time to ditch the .properties format's use of arbitrary encoding \u files and instead use UTF-8 there, too.

Kenn Hussey said...

Gord, I think Eclipse (like other applications/platforms) HAS to make the leap in order to survive.

Kenn Hussey said...

Pete, the notion of "linked data" is nothing new, especially for those that are familiar with XML/XMI. What's new/needed is for applications to treat creation and discovery of those links like second nature...

Kenn Hussey said...

Doug, I think we HAVE to leverage that in e4 or risk losing the next generation to other applications/platforms that have done a better job at embracing The Cloud (TM)...

Doug Schaefer said...

You're right Kenn, we HAVE to. Except this is not something individuals can step up to do. If there isn't a vendor interested in investing in it big enough to make it happen it's not going to. Right no, I've given up hope.

Paweł Głowacki said...

I'm very much looking forward to new REST and JSON support in Weaver aka Delphi 2010:-)