Death by UML Fever
"UML has become not only self-justifying, but the fact that someone has made a UML diagram means that his architecture is somehow blessed."
If you are old enough, you may remember typing technical papers on a real typewriter. You would leave spaces for symbols and later write them in by hand. Later, if you had access to an IBM Selectric, you would swap out the standard typing element and put in a symbols element. Since then times have changed and with TeX, LaTeX, and various equation formatters, it has become standard to insert complicated formulas in books that look to be professionally typeset.
Almost anyone at any level of scientific, engineering, or mathematical competence can produce really good looking pages. In math departments, many of the professors produce their own materials instead of relying on a technical secretary. Authors started producing content that looks "camera ready". Adhoc papers started looking so good that some of them were read less critically because they didn't look like works in progress they looked like full blown, refereed or edited works.
Douglas Adams talked about how Microsoft asked him to help them improve Word. His answer was that Word didn't have support for what he needed as an author, instead it had a ton of widgets that allowed him to typeset and present his material more attractively. He wanted to concentrate on moving ideas around and working on a story and instead found a tool that allowed him to set fonts and spacing.
This bring us back to UML. It it is a tool that supports programmers and programming, that's a good thing. Even if the goal of UML as a tool is to communicate ideas with other programmers, with managers, or with customers. In today's Weblogs , Mike Loukides continues the discussion sparked by a recent ACM article in his blog entry Death by UML - more . He looks at how we can legitimize bad code by noting that it must be good it has patterns, or UML, or whatever else the flavor of the month is.
That is not to say that UML is bad and that it does not have its uses. Mike writes " What UML should do, what any sort of architectural language should do, is make it clear whether a particular design is good or bad. Fetishizing UML (stand back, I have a license to kill with literary theory) breaks it, perverts it so that it does precisely the opposite of what it's supposed to do. I think one could argue that fetishizing any technology, techinique, or process, from design patterns to agile programming to RUP to Java itself causes a strange inversion where the fetishized object of desire, having become an end in itself, destroys the end for which it was created."
He concludes by pointing out that he is not advocating killing the sacred cows. "The problem isn't the poor cows; it's that they're sacred, but that's hardly their fault. UML isn't the problem; the step in which UML starts to transfer a "divine like aura" to anything attached to a UML diagram is. If our tools are going to be useful, we can't take them so seriously."
When you're ready to move on to another sacred cow, check out M Ranganathan's post Is an applet phone an alternative to SALT?. He begins with a take off on Shaw's Henry Higgins that should be posted on the W3C walls: "Have you ever met a programmer of good character where XML is concerned? Well, I haven't. I find that the moment a programmer learns XML, he/she wants to invent his/her own dialect." He wants to know " with an imbedded SIP stack + applets + JMF + html can you achieve the same thing as one can with SALT [Speech application language tags]."
John O'Connor continues his excellent blog series on internationalization with I18n How-to: ResourceBundle naming. He advises that "
1. your application should have a default bundle without any locale extensions [,]
2. each additional localization will have its own bundle with the same bundle base name but with a
3. the JRE will find and load the appropriate bundle based on the default host locale of your system unless you specify a specific locale in the bundle load method."
Also in Java Today, Hans Bergsten is back with part three in his series JSP 2.0: The New Deal. In this article he shows you new ways to generate XML elements and more generally, just how easy it is to write JSP pages as XML documents. In JSP 2.0 there are two ways to set a well-formed markup element attribute value dynamically. You can "use an EL expression in the template text, or use a set of new standard actions to generate the element." Bergsten provides examples of each.
How would you teach young childrent to write programs? What language would you choose? Yakov Fain has written an e-book "Java Programming for Kids, Parents and Grandparents." He explains why he chose the Java Programming language and what he has done differently in Teaching Kids Programming: Even Younger Kids Can Learn Java. Fain realizes that it is difficult to understand what he is attempting just from the description so he also provides a sample from the book.
In today's Projects and Communities , ask your tough technical questions about Sun Java Studio Enterprise in an online Chat with Robin Smith, Java Studio Enterprise Product Manager, on April 28th at 9am PDT. Register for this free Sun Developer Network Moderated Chat.
In today's java.net News Headlines
- JSR 243 Java Data Objects 2.0
- Jakarta Jetspeed 1.5
- GCC 3.4
- JDebugTool 3.5
- ActiveXML Stable Module Release
- SDE for Sun ONE 1.1
Registered users can submit news items for the
href="http://today.java.net/today/news/">java.net News Page using
our news submission
form. All submissions go through an editorial review by news director
Steve Mallet before being posted to the site. You can also subscribe to
News RSS feed.
Current and upcoming
- April 28
Sun Java Studio Enterprise Moderated Chat
- April 30 - May 2 Twin Cities Software Symposium
- May 6-8 The ServerSide Java Symposium
- May 8 Kwarup do DFJUG
- May 10-14 JAX 2004
Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e"> events submission
form. All submissions go through an editorial review before being
posted to the site.
Archives and Subscriptions: This blog is delivered weekdays as the
Today RSS feed. All java.net members can subscribe to the email
updates for the site at the href="https://java-net.dev.java.net/servlets/ProjectMailingListList">
java-net Mailing Lists page. You must be logged in to subscribe
to the javanet_Daily and javanet_Weekly lists. Also, once this page
is no longer featured as the front page of
java.net it will be archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.