
On 4/13/07, Neil Mitchell
Second, if Haskell should be more successful in the real world there has to be a way of demonstrating basic ideas of a big program to "customers". How would you do this? Everybody knows UML class diagrams, for example. In contrast, nobody knows about termgraphs or lambda *g*.
The UML is not executable, draw a pretty picture. No one knows UML, everyone knows pretty pictures - most people can guess at the meaning of UML because they know the meaning of pictures. As to reverse engineering a diagram from code, that always leads to ugly (and pointless) diagrams.
Speaking of pretty pictures, there's a tool from Business Objects called Gems, which is based on a "lazily evaluated, strictly-typed language called CAL, with many similarities to Haskell"
From http://labs.businessobjects.com/cal/default.asp "These pieces of business logic, which we called "Gems" to give them a nice friendly face, are declarative 'functional' objects."
Although unrelated to UML, it provides a nice way of graphically representing functions, check it out: http://resources.businessobjects.com/labs/cal/gem_cutter_manual.pdf Or, if you prefer a (boring) video: http://resources.businessobjects.com/labs/cal/gem_part_1_mov.zip I haven't put much thought on that, but I think it's possible representing (de-sugared) Haskell functions using GraphML and relying on existing renderers for simplicity ... anyone tried that already ? -- Ricardo Guimarães Herrmann "You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete" - R. Buckminster Fuller