I had an absolutely smashing time in Dublin, meeting with various representatives of Science Foundation Ireland, faculty from the University of Limerick and Dublin City University, and scientists at the IBM Dublin Laboratory. David Parnas has landed at Limerick, where he leads the Software Quality Research Laboratory.
At this moment, however, I'm back from Dublin and in the romantic city of Paris, having just finished an amazing meal at Fonquet's. Tomorrow, I'm meeting with various clients and journalists in the city.[Read More]
Software architecture, software engineering, and Renaissance Jazz
From archive: June 2004 X
Simon Johnston has recently joined our merry band of IBM bloggers (welcome, Simon!). In a recent post, Simon offered his reaction to an article by Keith Short of Microsoft regarding the UML versus domain-specific languages (DSL).
I violently agree with Simon's world view. The essential value of the UML remains unchanged from its creation: the UML is a simply a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. Ultimately, the UML is all about providing a language of expression for better understanding and reasoning about a system. To that end, the UML doesn't replace traditional languages such as Java and C++, but rather, the UML stands as a peer. Trying to grok a continuously evolving system that has tens of thousands of moving parts most likely running across multiple machines loaded with multiple platforms and built out of parts from multiple languages is just plain hard: the UML provides a language for expressing many of the structures and behaviors that span this cacaphony. Having the right language of expression for a given problem does wonders in melting away complexity, as the work of Edward Tufte shows (and Tufte's work greatly influenced my contributions to the UML). Keith draws a line in the sand between the UML and DSLs which essentially relegates the UML to nothing more than a primitive language for whiteboards (and then promotes Microsoft-specific DSLs for "real" development).
I, as does Simon, actually agree with Keith's view that the UML is absolutely brilliant as a common language of communication on whiteboards and napkins (and I'm tickled to get confirmation that such UML diagrams show up on Microsoft developer whiteboards). However, I think, as does Simon, that Keith misses the point when he distinguishes DSLs as something totally different from the UML. The last thing the world needs is yet another (non-open standard) programming model or language injected in an already complex space. Our experience has shown that domain-specific design and architectural patterns specified can (and should be) expressed in the very same language that one may use on a whiteboard or napkin, namely, the UML. Furthermore, in the real time space, there are already existence proofs of direct executability of UML models (see, for example, Rational's own Rose Real Time as well as David Harel's Play Engine).
One of the metagoals of my Handbook is to show that the UML is appropriate for modeling a large spectrum of software-intensive systems, from Amazon to the Spirit to Massive; thus far, I've not be disappointed or limited by what I can do in the UML.[Read More]
gbooch 120000P81R 756 Views
I've finished my work in Paris and having toured around the French Riveria for about a week, I'm now in Milan. One thing I found most remarkable about the Riveria: people with far more money than time seem to pour their euros into enormous yachts. When I was in Florida recently, I saw the smallest of Paul Allen's three yachts, the Meduse. His largest yacht - which also happens to be the world's largest privately owned yacht - is the Octopus, coming in at over 413 feet, and equipped with its own helicoptor and submarine.
Naturally, my first question upon seeing any such vessel is simply, what kind of sofware is inside? Clearly, I'll need to do some on-site studies to get a full answer.[Read More]
gbooch 120000P81R 836 Views
At this instant, I'm in Dublin, having just missed Bloomsday by 24 hours.
On this trip, I flow over the pond via Virgin Atlantic, and was much amused by their entertainment system, which provides a cornucopia of movies, television, and games. If you watch closely while the aircraft boots, you can watch the start up log of Linux on each passenger's display. The booting process is slow - the system has to boot several hundred displays - but once launched, Linux beomes invisible (as should any Good Operating System).[Read More]
gbooch 120000P81R 738 Views
I'm off to Europe again on Monday with customer work in London, Dublin (not to be confused with Dublin Core), and Paris (definitely not to be confused with Paris Hilton). I'll be back after the 4th of July, so as with my previous trip over the pond a few months ago, will only be able to blog sporadically as I'll be traveling sans laptop and therefore at the mercy of hotel business centers and Internet cafes. I try to spend about 30% of my time with customers and in the field...you should never trust a methodologist who does not use his/her own work.
You may ask why I travel internationally intentionally disconnected from the grid. Well, it's not as bad as Don Knuth who has no public email address, but there are two reasons, actually. First, given my looks, I'm already profiled enough at airports around the world, and having a laptop simply increases the friction of travel for me. Second, email is already the bane of my existence, and being away from it for a while is incredible refreshing (and a reminder that the majority of the world is distinctly not tethered to the Web). On a typical day I'll receive around 100-200 non-spam messages. If it's important, people who know me can reach me by phone; if it's really important, people who really know me can reach me on my mobile; if it's really really important, people who really really know me can reach me via my personal email account.[Read More]
gbooch 120000P81R 762 Views
One of the genres of systems I'm studying for the Handbook of Software Architecture is that of supercomputing. There are several classes of problems for which deep computing is essential: modeling the weather, protein folding, materials analysis, and so on. I've mentioned the Top 500 list before, but there are two recent additions to the list worth mentioning.
Now listed as the world's third fastest computer is the relatively inexpensive System X built at Virginia Tech, consisting of a supercluster of over 1,000 Apple Macintosh G5 machines. (It's also worth noting that G5 chip is produced by IBM). Number 73 on the list is IBM's Blue Gene prototype, the operative word here being prototype. The first production machine, being built for the Lawrence Livermore Laboratory, is expected to hit 360 terraflops, almost an order of magnitude faster than the current leader, Japan's Earth Simulator.
Being a software geek, I'm therefore natually curious as to the software architecture of such systems; I have knowledge of command and control systems, enterprise systems, robotics, games, and embedded systems, but admittedly have a blind spot in sofware for deep computing. What I have learned this far is that the ability to build large scale software for this domain is becoming an increasing bottleneck to exploiting the power of these amazing machines. FORTRAN and C still appear to be the dominant languages here, with Java starting to gain some traction.[Read More]
gbooch 120000P81R 772 Views
I have just been slammed with travel, so apologies for my radio silence. I'm just back from two weeks in Europe followed by ten days in Florida, I'm just a few hours from wheels up to San Francisco, and then next Monday I'm off again to Europe for the remainder of June, doing some work in London, Dublin, and Paris.
I'm so looking forward to today's trip. As I've descibed in an earlier posting, I've started a project with the Computer History Museum to preserve classic software. A few weeks ago, the source code to MacPaint fell into my lap (thanks to help from Tim O'Reilly). Tomorrow, I'm conducting an oral history on MacPaint with Bill Atkinson and Andy Herzfeld, two of my heroes.
Studying the source code to MacPaint (which is written in Object Pascal) is a delight. Don Knuth calls it one of the most beautiful pieces of software he's ever read. Its curious, you know: people in most other disciplines learn by studying the artifacts of other masters, but I've yet to see a computer science course titled Readings in Software (Code). There is fortunately a new book that finally does cover this subject which I'd highly recommend, Code Reading by Diomidis Spinellis. Don's work in literate programming is also a good source.
What makes for beautiful software? The dot bomb era was fully of profoundly stupid business models, but in retrospect, it did tell us one thing: solid engineering never goes out of style. For me, that means building software-intensive systems that follow just three fundamentals: craft crisp and resilient abstractions, maintain a good separation of concerns, and create a balanced distribution of responsibilities.[Read More]