|
|
Re: Martin Fowler on Business-Readable DSLs
|
Posted: Dec 17, 2008 9:07 AM
|
|
Some domains have had their own DSLs for a long time: baseball and softball. Take a look at these Major League Baseball scorecards from 1991: http://en.wikipedia.org/wiki/Baseball_scorekeeping. And this fast pitch softball scorecard tutorial from Australia: http://www.unibaseball.org/images/Softball/Beginning_Softball_Scoring.pdf. These are what the DSL of baseball and softball look like.
The rules are clear and known, the vocabulary is clear and known, and the notation for recording the game process is clear and known. Once you have detailed scorecards, you can generate line scores and box scores, and you can run stats. Computers are obviously good for stats. You can create Strat-O-matic fantasy teams and games. You can write an OCR-like program that reads handwritten scorecards. You can create scorecard software which runs on an iPhone. You can write a computer program that analyzes games for highlights and generates newspaper reports using stock phrases. Whatever.
The DSL of baseball/softball was not invented by a U.S. Naval officer at Remington Rand, or Joe Schmoe with a spreadsheet, or Martin Fowler with a copy of UML Distilled, or a Ruby programmer from Denmark, or the inventor of wikis. ;-) It was largely invented in the 19th century by a newspaper reporter--a language expert and baseball domain expert--with an amateur interest in statistics.
Makes me wonder who should be designing a language for a given domain and what it could possibly look like. And when I say "language," I don't mean just jargon-laden sentences. (I bet every domain has people who speak/write jargon in shop floors, boardrooms, seminars, and blogs.) No, I mean an unambiguous written notation. Being a crusty old fuddy-duddy, I would like to see the DSL tested and refined by people in the domain itself (or by ancillary people such as news reporters) long before a buzzword-happy software developer comes near. Until then, rules and processes aren't ready to be "computerized."
|
|