Domains Specific Languages (DSL)

by Administrator 30. November 2006 13:34
Overview

A domain is a set of characteristics which completely define a problem.  Think about everything a person has to know in order to perform their job.  That knowledge is part of the domain in which they work.  It is quite common for people to have at least some knowledge of many different domains and for portions of those domains to interact to provide a solution for any given problem.

Years ago I predicted (wrongly I might add ;-}) that by now the need for general purpose software developers would be nearly extinct.  I believed that the knowledge necessary to perform in any field would out-weight the knowledge necessary to develop a computer system within that field.  In other words I felt that it would be easier for a brain surgeon to learn to write software than it would be for a software engineer to learn brain surgery.  Whoops.  Missed that one.

As it turns out computers have remained black boxes to most people outside of the tech industry (and unfortunately to many people inside the tech industry as well ;-})  What most techies tend to have trouble understanding is people aren't interested in what computers can do, they are interested in what computers can do for them.  Most people want to be able to tell the computer what they want in the same way they would tell a colleague.  They want the computer to be able to "understand" the domain they are working in.

As techies we inherently understand this as is evidenced by the number of DSLs we have created for ourselves to ease our own lives.  SQL is a good example of a DSL.  SQL doesn't provide any mechanisms to create data structures or access a network.  SQL provides the capability to manipulate and retrieve data.  This is all it does and it does it well. 

The following list provides examples of some well known DSLs:
  • SQL - Structured Query Language
  • YACC - Yet Another Compiler Compiler
  • UML - Unbelievably Messed-up Language
  • XAML - Extensible Application Markup Language

 

The Goal
until neither the Plain nor the Star-Bellies knew
Whether this one was that one or that one was this one.
Or which one was what one or what one was who.  - The Sneeches by Dr. Suess

 Over the past few decades we have been trying to put a finger on what will bring the business guys together with the tech guys.  Since the days of the first computers it was clear to techies that these machines could offer huge benefits to business, if only they could understand what it was the businesses really needed.  Business users were also awed at the incredible potential these machines had to offer if only they could communicate what was they really needed.

What's needed is a better division of labor.  Techies need to be able to create concrete rules and concepts which encapsulate the domain and then to present those objects to business users in a way that the business users can arrange them to solve problems.  It is not the responsibility of software developers to learn how to perform brain surgery.  The job of the software developer should be to provide brain surgeons with the tools necessary for the surgeons to perform brain surgery better.

Currently the blame for this miscommunication rests firmly on the shoulders of the techies.  Most industries already embrace some sort of DSL analog equivalent.  Physicians refer to parts and procedures using specific terms and syntax to help them quickly communicate without ambiguity.  The language they use has evolved to become both well-known and robust and should be adopted by techies and not redefined.

If Diagnosis is Spinal Disk Herniation and Treatment is NSAID verify DUR

Let the techies develop the DSLs.  Allow users to  use them in ways that are much more dynamic than they would be able to convey to the developers. 

 

Why Now?

We've been looking for the golden goose for a long time, and many things have brought us closer.  OO was a huge step along the path.  SOA was another.  Large scale collaboration yet another.  Recently there have been a number of other changes to they landscape which are helping to prime the DSL pump.

Recently Microsoft released .NET 3.0.  What this provides is much more than just an upgraded object library.  .NET 3.0 contains 3 very important pieces: Windows Communication Foundation (WCF), Windows Workflow Foundation (WF) and Windows CardSpace.  Together these three frameworks provide authentication, interaction and scripting capabilities that will help shine a spotlight on the importance and benefits of DSLs without specifically calling them out.

Another very important feature is also provided by Microsoft in the form of the .NET CLR itself.  The CLR was designed to be easily extended as is evidenced by the creation of IronPython.  The flexibility to introduce new languages and constructs into an already robust VM is huge.  This provides a mechanism for easily and safety installing new domains into existing environments.  Big win!

 

What's Missing?

There are still a number of short-comings with what we have today. 

One of the most obvious is the absence of a role model.  A reasonably complex DSL needs to be developed and put to use for users to realize the potential and for developers to use as a template.  This is more difficult than it sounds since I don't believe it can stem from academia.  IMHO, this must come from the real world and solve real world problems before being pulled back into a research environment.  That means it will take real time, money and resources to create which is a difficult argument to make in most companies.

Despite what I said about the framework advancements integration is still a problem.  While integrating C# and SQL may be a huge advancement (not that I think LINQ itself is any good mind you ;-}) it is a far cry from providing interfaces between DSLs developed by different groups.  It is imperative that DSLs and general purpose languages are capable of easy and efficient interaction.  It is the only way to capitalize on the vast amount of disparate knowledge available world wide.

The final missing piece is any real effort by the techie community to move toward the new paradigm.  Business continues to push technical development into a model it understands, one developed by the likes of Henry Ford.  MoBetterFaster is the word of the day.  Instead of trying to work out a better solution to the problems we're facing, we are compelled to find quicker and cheaper ways of producing results using the current solution, faulty or not.  The upside of this is that the man who does evolve will be king, and is probably already setting up shop in a garage in the valley ;-}

 

Summary

Being a product of the PowerPointized culture, let me do this in a way that's easy to understand:

  • DSL = Good
  • Getting Closer
  • Not There Yet!

Got it?  Good.

 

TTFN

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Imagination

by Administrator 30. November 2006 02:45

Every now and again I like to sit back and let my brain smack around ideas.  They don't have to be particularly good ideas or even reasonably plausible.  Removing the stops provides the same sort of release that good science fiction novel provides but without all the eye strain.  Tonight I'm in one of those moods and my schedule is fairly light so I figured I may as well pontificate on a few.  Be warned that everything I'm about to say is coming off the top of my head ala Jack Kerouac.  The idea is to find a couple of interesting inventions/ideas and to extend them beyond their reasonable usage.

 

The Sights

First Up Timothy Leary invents the Barcode.  The initial thought is "Wow, that rocks!" followed quickly behind by "Hey, that's stupid!"  Forget the fact that symbols don't store data any more efficiently than binary and that unless this guy has developed a way to add a "depth" bit to the whole works he is ultimately limited to the number of "dots" that can be printed and read multiplied by the number of colors supported by the printer (that's cartridges not mixes which require multiple "dots" printed very close together)  Let's just take the basic concept of a printed code using color.  That alone allows for a reasonably large amount of storage in a pretty small space which can be produced and read by very cheap off the shelf equipment. 

Why is this better than barcodes or RFID tags?  It's not.  It's different.  If you create a simple code using a reasonably large set of colors over an area the size of say a postage stamp which could be "scanned" by taking a picture with a medicare quality digital camera then things can get smarter without much of a cost.  How much smarter depends entirely on how much data could be squeezed into the space provided but this isn't where you want gigabytes, kilobytes would change the world. 

Think about a can of soup.  The barcode on that can of soup doesn't really cost anything to print but only stores a few bytes of data.  Just enough to identify it as a can of Campbells Chicken Noodle Soup, but it doesn't identify it as this can.  For about an extra nickel RFID can identify it as a particular can but in order to use any information about that can you have to access some sort of DB which in turn had to receive data from some sort of transfer (sure you could communicate directly to the source of record using something like a web service but you still have to go fetch the data, which is the point I'm trying to make)  Now think about reading a megabyte or so worth of data directly from the can.  Still doesn't really cost anything to print.  There isn't a need to go grab data from another system.  Everything you need could be made available right there:  Who made it, where it was made, when it was made, who was working on the line at the time, where each of the ingredients came from!

And if soup isn't your cup of tea how about encoding an entire Wikipedia article on a postage stamp?  Take this page for example.  Encode it on a stamp and stick it on the front door of the Empire State Building.  Now all it takes is a camera phone with a simple program for decoding the code and BAM!  Everything you ever wanted to know about the Empire State Building but didn't have the airtime minutes to ask.

There are at least a dozen more uses in marketing, magazine articles, cook books and of course tell all clothing / jewelry ;-}

The Sounds

When is a wall not a wall?  When it's a speaker!  When is a desk not a desk?  When it's a keyboard!  While I've never been a believer in the virtual keyboard, I have been craving an alternative human-machine interface.  My first question is what is the maximum surface size this works on?  Could you maybe drop a few of the piezoelectric sensors onto the floor of a building to track when people are walking across it?  Maybe even determine who based on their shoe size and unique gait?  That would change security a bit ;-}

Or maybe the more obvious ultra portable computer sans computer.  If you had a smaller version of a display device like this which you could project onto a wall and then plug in your USB touch sensors and line them up on the same wall you'd have a pretty nice pocket whiteboard.

The Bed

It's still early, but I more or less lost a day of sleep a couple of days back and my body is screaming for a little payback.  The problem with blogging is it will always be a second class citizen for most.  I enjoy creating little entries even if they are only for myself.  Unfortunately it is all too apparent that if I only write them when I get a few minutes of time then I will always have to cut them short.  C'est la vie I suppose.

 

TTFN

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

You're in the movies!

by Administrator 29. November 2006 12:16

Since I've been such a blog slacker lately I thought I'd try to put out at least a quickly post to try and redeem myself.  In keeping with the muse-driven theme of invention that I started yesterday, I thought I'd put together a short list of series ideas for Direct-To-YouTube distribution.  Hold on kids this is going to get ugly ;-}

  • The Etiquette Show - Everyone loves the slick James Bond type character who seems to know just what to do in every situation.  I'm thinking about a Cliff Notes version of the how's and whatfores of social situations.  Short spots that provide just the basics of how to eat a lobster without spraying your date in the face with lobster juice, or maybe the proper time and place to tip the maitre de so you don't end up with a table in front of the kitchen door.  Wine, cuisine, music, literature, clothing, art and dance could all be presented in short segments to help sk8r boys sweep the feet out from under surfer girls ;-}
  • America the (not so) Beautiful - And of course the counter part (even if it's not quite as intriguing to the masses).  Basically it's Candid Camera looking for the best and worst behaved people in America.  Set up situations like an old lady having trouble crossing the street or someone who is crying and clearly in need of some human compassion.  Then film the scene and post short, semi-weekly clips of the results.  How many people help?  How many make the situation worse?  Maybe by having  two different shows, one with positive results one with negative, people will be encouraged to do the right thing or at least be embarrassed enough to keep from doing the wrong thing... Most likely it would just make for interesting viewing.
  • The Last American Terrorist - Pure Pwnage style with All in the Family overtones.  The story line is group of bumbling student "terrorist wannabe's" who are living in America.  They are documenting their adventures as they (unsuccessfully) attempt to create a terrorist cell.  I can now officially say that this would be a flop since I'm having trouble describing it in a few sentences, but I assure you the movie reel that's running in my head is pretty funny.  Picture a head shot of the leader describing how the "evils of materialistic capitalism are being unleashed on the world by godless American dogs"  as the camera pans and he orders his Grande no-foam latte.  Tack in bits from the real world to provide a ladder between funny and frightfully thought provoking
  • Pointless Counter-Pointless - This doesn't really translate to YouTube easily but does fall nicely into a podcast format.  As a registered user you choose Pointless or Counter-Pointless.  You are then given a madlibs style script to follow (this could be presented in a variety of ways)  You video tape your responses and then upload them to the site.  The video is then "mashed" together with a randomly chosen counter argument and fixed host reel.  The host, topic and scripts are changed daily and the previous days results are made available.  So  a quick script may say something like "Fake an orgasm", "Tell a story about your first pet", "What are the colors of a rainbow?"  A counter script my be something like "Explain how to change a diaper", "Pretend Thanksgiving dinner is being served", and "Give one reason why you shouldn't use drugs"  The host as well as various images and clips would then be added to direct the "debate."  Comedy and merriment ensue.

Don't worry, I'm not going to quit my day job... or my night job. ;-}

 

TTFN

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Fake it `til you make it

by Administrator 27. November 2006 17:12

As I mentioned in my last post, I want to talk a little about domains.  Problem is I haven't seemed to be able to finish putting it all together yet.  Between my normal over-scheduling issues and added adventures of the holidays I haven't had a chance (or the mental capacity) to put together a coherent entry.  In an attempt to rectify the noticeable absence of new words I've decided to throw together a "Holiday Inventions" post.

 

  • Shrink-wrap wrapping paper - This was one of my early "I hate the holidays" inventions.  It's pretty self explanatory and probably exists by now.  The difficulty isn't in making pretty shrink-wrap but in giving it similar properties to paper.  After all the whole point in wrapping a present is the joy of watching someone unwrap it.
  • Ice Sculpture Decorations - The market here is limited to cold climates but in all fairness Christmas isn't Christmas without snow.  The idea is to make large molds which can be filled with water (possibly slowly via some sort of low flow spray head)  Different temperatures of water could be used to create clear or cracked looks to the ice.  Food coloring could be added to help them stand out and a couple of well positioned holes could allow lights to be placed inside the blocks of ice.  There are some nice benefits to this including easy cleanup (let them melt) and small storage space (assuming the molds are flexible).
  • Curtain Rod Lights - I dread putting up and taking down the outdoor Christmas lights.  Maybe it's because I'm terrified of heights or maybe I'm just a scrooge.  The thought is to create a retractable pole similar to a curtain rod but with clips on it (lights sold separately ;-})  You take your favorite set of lights and string them along the retractable pole, extend the pole and hang it on your gutter.  You can check all the lights in the comfort of your living room.  They will all be evenly spaced when you hang them up and depending on the mechanism for attaching them to the roof (magnets, hooks, pre-installed clips?), you may be able throw up a few dozen linear feet of lighting in just a few seconds from the comfort of terra firma!
  • Fiber Optic Lights - Again with the lights!  This approach has some different benefits.  While installation is still a bitch the "lights" remain up all year `round (that's my white trash roots showing through)  Since the actual lights would likely be placed indoors it would make it easy to change the color, intensity and even which of the "lights" would be visible.  A well thought out layout would give you very nice landscape mood lighting in the summer and "flip of the switch" holiday lighting in the winter.
  • Projected Decorations - By now I'm sure you've seen the somewhat cheesy (IMHO) spot light decorations.  I've never been a fan of those despite having had the idea myself many years earlier.  What I don't like about them is they are so localized and so out of place with the rest of their surroundings.  It just screams "I'm tired of listening to my wife bitch about the damn Christmas decorations!"  But what if you could take it up a notch or two?  Go that extra mile and all.  What about doing something similar to a very large video projector?  You could take a picture from the spot you plan on placing the projector and then use that picture to adapt canned animations naturally into the surroundings.  For example, you could have elves scurrying about on the roof of your house or coming and going from a doorway that appears to be hidden behind a bush.  Loop it through a PC and maybe a couple of speakers to add sound effects.  Add some detection equipment to make the whole thing crudely interactive.  Now decorating for any holiday becomes little more than downloading a new theme ;-}
  • Micro Radio - Why should decorations only be visual?  Why not add a personalized audio stream to your festive decor?  You could stream your favorite holiday music or maybe send out a "best wishes" message for everyone who passes by (with a radio tuned to a particular frequency that is ;-}) 

As usual I'm pressed for time and have to cut things short.  Hopefully my brain will rejoin me so I can get back to my not so normal life.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

What's in a Domain?

by Administrator 10. November 2006 14:06

I want to talk about domains and how and why they are the holy grail of development and why it is that we are reasonably close to starting to implement them, but first let me unload a few miscellaneous issues:

  • RIAA take notice.  Google Music Trends has Weird Al Yankovic as the top 20.  Not in the top 20, the whole top 20!  His most recent album "Straight Outta Lynwood" made it to Billboard's top 10, the first of his albums to do so.  "White & Nerdy" hit #9 on the singles charts and has been in iTunes top 10 downloads for over a month!  So, how does a has been 80's parody song writer reach these heights in such a competitive market?  Easy really, just Don't Sue Your Customers!!!   It's the kind of advise that just seems so obvious after you've heard it. 
  • My boy Freddie clued me into the release of the .NET Framework 3.0  I have been dutifully ignoring 3.0 for months because I just don't have the bandwidth to investigate.  Guess I'm screwed now.
  • I've switched my son to Linux.  Ubuntu to be exact.  I got sick and tired of the problems with Windows and WGA.  It's not like I was trying to rip off M$.  I have a valid OEM version of XP for the machine, but it's an older machine and as we all know, XP just isn't capable of working for years without an occasional re-install.  In the end the lack of compressive updates coupled with the spyware, BHO, poor performance on the older hardware etc... made me bite the bullet.  I will say this, MS has nothing to worry about in the short term.  It took me hours (and that's being generous!) to get the wireless networking setup.  The help on the forums is phenomenal!  The community is fantastic!  The OS is robust and clean.  Once they get a better handle on some of the PnP details (don't get me wrong, they handle most hardware very well!) the only remaining hurdle will be games....

There is more I want to say, but I have to go now.  I'll post this as a draft where it will probably remain ;-}

 

TTFN

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Powered by BlogEngine.NET 1.4.5.0
Theme by Mads Kristensen