Tuesday, August 03, 2010

LightSwitch? Or “Bait-And-Switch”?

Microsoft has announced LightSwitch as the answer for those non-professional programmers who want to create .Net applications that focus on Data and Screens.  It is template-driven.  It can be programmed in C# or VB.Net.  It’s the icing without the cake.  Worst of all, it constitutes an act of condescension toward domain-expert developers.

The Good

The good includes:

  • Builder driven (it’s about productivity).
  • Template Driven (the professional developer on staff, or consultant, presumably can tweak or create templates that work to the domain-expert’s liking).
  • Functionally oriented (e.g., predefined data types with validation).
  • Works for Desktop, Web or Cloud.

The Bad

  • Generator-built (haven’t they heard of classes?  Oh, I forgot, everything is statically-typed, and this is the workaround).
  • Programmed in C# or VB.Net (the programming world is opening up to dynamic programming, but mainstream MS hasn’t gotten it yet).
  • Domain-experts create complex data models: because they know the domain, they know the complexity of the information.  As of yet, I don’t see any tools better than what VS has for handling this complexity (I am measuring this against the abilities of xCase).

And, Of Course,The Ugly

The idea that non-professional programmers create simple programs is rubbish.  I have consulted with, and worked for, non-professional programmers for 12 years now, and if anything, the programs they create are more complex, in terms of data needs and UI needs, than what professional developers create.  Oh, for sure, professional programmers can write complex algorithms, or wonderful feats of asynchronization communication over barriers of distance, protocol, and so forth.  But when it comes to the business-end of the horse, one has to know the domain to understand the complexity, and that’s where the domain experts shine.

LightSwitch makes simple the creation of simple apps.  And for many uses in business that will be just fine.  Except that moving beyond what is readily available represents a huge step, from visual builders to .Net statically-typed programming.  For domain experts to use their knowledge, they need the ability to easily program complexity, in code.  LightSwitch gives the message that “real programming is incredibly hard, so if you want anything real done, give it to someone who can program in .Net.”

Those domain experts who have, and continue to, develop business software in Visual FoxPro (VFP) know that LightSwitch is in fact “bait-and-switch,” and as such is built on a lie, namely that serious programming can only be done in a statically-typed language.  That those responsible would think that their tactics would go unnoticed by the great unwashed masses is ugly.  It is condescending and it is ugly.

All of that said, LightSwitch is a tour-de-force, regardless of its implications.  It does what Visual Studio has not done: proven how easy at least some parts of software development can be, when the tools are right.  If it had all the right tools (and I would have been happy with VBx, which has yet to be released, if VFP.Net was not to be), I would have been happy to forego most of the Bad, and all of the Ugly.

0 comments: