31 March 2009 - 20:01Assigning responsabilities

I think that this presentation by Rebecca Wirfs Brock on driving the design from responsabilities pretty much hits the nail on the head: responsabilities drive design and good design is a good separation of responsabilities. From what I have seen most of the errors in software development arise either from grey-zones in which multiple responsabilities are implemented and overlap or from responsabilities which spread across multiple components. Both are examples of incorrect mapping of responsabilities to components.

All in all, a very good presentation.

No Comments | Tags: Development

25 March 2009 - 15:01RIA and web-apps

I was watching this interview with Tim Bray in which Tim downplayed Rich Internet Applications in favor of ordinary web-apps and I find myself agreeing with Tim, I think that web-applications have the means to become the applications with the largest marketshare and this is due to the low costs of composing applications on the web vs the (current) high cost of composing application in RIAs.

Let me explain: with the introduction of ubiquitous connectivity partnerships between various organisations became feasible to the point where applications are becoming applications composed of components, components which are not all originating from the same organization. Organizations are finding it wasy to exchange data and functionality (think about the widgets on Facebook: Facebook could import Digg-like functionality and data straight from Digg). The result is that web applications are becoming places where organizations meet, agree on the interactions between them and then implement these interactions. Once a web-app manages to get a certain number of users it has the opportunity to become a portal by swapping data with other web-apps and integrating with these web-apps.

Now, since the place where applications are getting composed is typically the place where applications are deployed, it follows that the place where applications are deployed defines the costs of application composition. If the applications are deployed remotely then the task of composing these applications is shifted onto the teams which are managing this remote application. If the application is deployed locally (on the desktop for example) the task of application composition is shifted onto the user that manages it on its desktop. If the costs of application compositions are low then the task of application composition can be shifted onto the user, if they are high then the same task will be shifted onto the teams that are managing the application remotely.
I would say that application composition costs are application discovery, integration between applications and integration between applications and the host environment and currently these costs are higher for RIAs than for typical web-apps.

Given that the costs of application compositions on the desktop are currently high, predominantly because of lack of standards, it follows that most of the application that get composed will be deployed remotely. Flash/Java FX/Silverlight will probably run stand alone applications which have a low degree of interaction with other applications. Facebook will probably be the place where a lot of the application composition will occur.

The near future is on the web and on web-applications. RIAs will probably satisfy some niche, but will not become the dominant architectural style in the near future, unless the makers of the RIA runtimes (Flash/Java FX/Silverlight) will find a way to address the costs of application composition. Some sort of a container which allows components originating from multiple sources to integrate among each other easily could lower these costs, taking the appeal of RIAs beyond its immediate differentiators (greater interaction with the user, low response times, etc…). Honestly, I am skeptical that the costs of composing application in RIA environments will become low enough to the point where RIAs will become more like portals where interactions between multiple organizations are carried out and less like applications.

No Comments | Tags: Miscellaneous