Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Modularity



I have been arguing that modularity is essential for
developing software, ontology, and reasoning engines.
As an example of the advantages of modularity over
a monolithic design, I have frequently mentioned Unix
modularity in comparison to the Windows monolith.

There's a recent note by a former MS manager, who
makes a similar point (as well as many others):

 > My biggest complaint about Microsoft is how hesitant
 > they are to update Windows in a more modular fashion
 > over time, instead saving innovation for large updates
 > every several years. Apple, in contrast, is updating
 > OS X monthly and sometimes weekly.

 > While the monolithic development process helps Microsoft
 > plan and deliver long-term innovations like Longhorn,
 > it’s harder to test and release these products in a
 > timely manner. The open-source community updates products
 > continually, so customers don’t have to wait as long for
 > new features.  MSN Messenger, the instant-messaging
 > application, and Windows Media Player, which plays
 > audio and video, have benefited from frequent updates,
 > but Microsoft hasn’t updated Internet Explorer since 2001.
 > I’d like to see Microsoft add unified search to Windows XP
 > or support for Internet file sharing, but it won’t happen
 > until Longhorn ships.

Source:

http://www.seattleweekly.com/features/0422/040602_news_microsoft.php
Microsoft's Sacred Cash Cow by Jeff Reifman

I emphasized the need for modularity as a way of aiding the
design, development, and testing processes.  But it is just
as important for the standardization process.  There is no
way that we can ever reach agreement on a monolithic ontology.
But there are many modules that have been standardized and many
more that are ripe for standardization.  Most of them, however,
are rather small, detachable pieces, such as mathematical
theories, representation of dates and times, chemical elements
and compounds, and important computational packages, such as
floating-point arithmetic or software APIs.

Although the upper-level concepts of an ontology are
prerequisites to standardizing most of the lower levels,
that makes them hard to standardize because they affect
everything at every level.  That is why the earliest modules
to be standardized are either domain-independent mathematical
theories or conventions for representing dates, times, and
measures, which can be standardized independently of any theory
of Time, Space, or other things that are being measured.

John Sowa