Computerworld's article,
Microsoft eyes Oslo
as game-changer for application development, provides an overview of the goals
of Microsoft's Oslo
platform that's scheduled to be released (as a preview) during this month's
Professional Developer's Conference. The article focuses on one of

Oslo's major goals - to "enable
application models themselves to become the applications".
Here are some highlights (all quotes from the article):
- Oslo
allows you to model things in higher-level ways. It allows you to rapidly
assemble things
- Through Oslo,
Microsoft intends for developers to spend more time on business intent and less
on application plumbing. Currently, developers spend 80% of their time on
infrastructure and lower-level details and 20% of their time on business
intent.
- Oslo
hides a lot of complexity from the development process
- Oslo
modeling is set to address the additional complexity that concepts such as SOA
and cloud computing entail
If you have been in the computer industry long enough (as in
two or more years - long enough to grasp the realities of software
development), you'll notice that the quotes cover most the goals that the
computing profession has been striving to achieve for about the last 40 years.
While Microsoft's contribution to the cause - so to speak - is
likely going to help a lot, their positioning of Oslo is very Silver
Bullet-like - meaning, something that finally addresses
issues related to accidental and essential complexity. Like many silver
bullet-like solutions, Oslo
is an ideal solution for ideal problems.
The fact remains that in today's environment architects describe
and understand solutions using models and developers use their code to describe
and understand their solutions. The reason for the difference is obvious:
architects think about the larger picture and compose solutions from other
large blocks (databases, other applications, components) while developers think
about using much more focused areas of functionality (APIs, platform types,
messages) to transform a large arrow labeled "communicate" (on an architect's
interaction diagram) into something that actually communicates.
It took about ten years for UML to become broadly accepted
and used among architects. Despite its broad availability and platform support,
acceptance of model driven development is comparatively far behind where UML is
toady (UML had, in comparison, limited tool support and practically no platform
support despite its broad acceptance. Model driven development is already possible
yet its use is miniscule in comparison to it broad availability of tools and
platform support).
The fact remains that developers like, and need, a high
degree of control to quickly deliver functioning solutions. Developers already
enjoy the benefits of a high degree of abstraction - essentially allowing them
to focus much more on the problem domain (an application's essential complexity)
instead of issues related to ‘plumbing' (an application's accidental
complexity). Introducing higher levels of abstraction, as Oslo proposes to deliver through its declarative
domain specific language, accelerates the descent down the slippery slope of
semantics.
Abstractions assume
that business users and developers are aligned in terms of semantics. The
abstract concept "message" carries many meanings to not only who is
interpreting its meaning, but also based on the level of the system where the
abstraction is being used. The expectation to model a concept like "message" and
have it translated into code (or system behaviour) that meets non-functional aspects like performance targets, security
contexts, and recoverability is a pipe dream.
The more robust idea of encapsulation is a proven,
reliable means of abstraction for architects and developers. In contrast, model-based
abstractions are great for BDMs (Business Decision Makers) because the
abstractions are much more closely aligned with how a BDM thinks about a
business problem and solution.
I believe Oslo
will ultimately become another very useful tool at the disposal of system
architects and developers, and will be used and deployed as a part of a broader
solution.