In a Few Good Men, Jack Nicholson’s character admonishes the public for not being able to handle the hard choices the military makes to protect the nation. As I dig deep into LightSwitch, as I prepare for my upcoming presentation, I have begun to feel as if LightSwitch is the packaging around the solution to a problem that is much bigger than many of us realize.
The truth that I think a lot of us may not be able to handle is, we don’t realize how bad our current situation really is. The truth may be that we programmers spend an incredible amount of time (and usually somebody's money) creating applications that are not as good as business applications will be in the near future.
After watching the video: Steve Anonsen and John Rivard: Inside LightSwitch. I have come to the conclusion that the LightSwitch team has solved a large number of thorny issues, and created a development platform that allows us to create applications that are not only faster, cheaper, but, are more stable, with consistent (though not necessarily faster) performance.
They put it all in a nice neat little package targeted at merely the “computer literate” (read: someone who knows how to use Microsoft Excel), yet, they appear to be glossing over the fact that LightSwitch is actually a revolutionary product that will probably set the bar for all software projects. When airports sprang up around the world, all transportation was then judged by that standard. A train ticket costs less when it is no longer the fastest way to get to New York.
It is not that great applications cannot be created without LightSwitch, but at what cost? Worst yet, the failure rate of big IT projects is way too high for comfort. When I say that LightSwitch can create good solid software cheap and fast, I back it up by pointing to a 3-part tutorial I did. I recently re created the entire tutorial in less than 3 hours. It would take a team of developers weeks to create the exact same functionality from scratch.
The book, The Pillars of the Earth, reminds me of the complexity in constructing Cathedrals out of stone. If Steve and John lived in those times, I can imagine Steve drawing on past experience, to intuitively know how to prevent the problems the builders have (can’t get the store from the quarry to the building site, the mortar doesn’t set properly, preventing the roof from caving in). John would delve into practical issues (the wagons carrying the stone can’t be too big or the wheels wont support the weight).
However at Microsoft, they are working on the problems we software builders are facing now (the more code we create the more bugs we create, we encounter performance problems when transforming data from one logical layer to the next.)
In the Microsoft video, Steve draws on his years of experience on several large projects, to explain why the LightSwitch team designed a framework that only requires you to “write the code only you could write”… and have LightSwitch, write the rest.
For example, they demonstrate how when creating a computed field in LightSwitch, you click a button to wire-up a method that asks you to simply provide the result. You do not indicate when that method will be called. LightSwitch takes care of “state management” and only calls a computed field to be computed when it is needed. It also knows when to call a computed field on client side code ,or server side code (or both).
This is like the difference between having a dial to control the coolant to your engine ,or having it automatically controlled. However, you have control of the gas pedal, because as the driver, you must make the decision on how fast to go.
This design eliminates the amount of code you need to write. This reduces bugs greatly. The speed of development means that a single developer can do the work of multiple developers.
In the Microsoft video, they were reluctant to go too far “down the rabbit hole” in explaining all the problems they had to solve. Toward the end of the video they cover the “asynchronous issue”. Basically, Silverlight uses only asynchronous calls to communicate with the rest of the application. However, the rest of the application needs to operate synchronously (If you put $10 in the bank account and remove $5, the application needs to stop you from making an additional $6 withdrawal).
Essentially, LightSwitch uses custom code that runs the UI on a thread and the business logic on another thread and manages the whole thing. That is a massive over simplification, a bit like saying a car is like your wagon but with an engine.
Rest assured, LightSwitch is not the best solution for every project. The rule of thumb that I use is, “it is not for applications where the UI is the point”. LightSwitch is like a reliable economy car with great gas mileage, but when the point of the trip is to ride in luxury you should leave the Hyundai at home.
My Open Source project, ADefHelpDesk is a fully functioning program that allows you to manage Help Desk Tickets.
We are creating a new Silverlight version that uses a carefull constructed UI for maximum efficiency. The entire page no longer has to refresh, and each ticket opens in a separate tab that stays open as long as you need it to (yes LightSwitch also has tabs – they are very efficient). The back end is designed for maximum speed (remember LightSwitch provides consistent performance, not necessarily always the best performance possible).
Using a ton of custom controls, we probably could get LightSwitch to come close to our target design, however when you customize your VW Bug to be as fast as a Maserati, you have to ask yourself if you are trying to fit a square peg in a round hole.
However, had LightSwitch been around when we created the initial version, we would have probably used it instead of the standard ASP.NET technology.
As this point I can’t say exactly what the future will bring, I just have a feeling that we are about to have a VisiCalc moment, a piece of software that changes the way we do business. Are you ready for it? Can you handle it?
Also, I will be speaking at Visual Studio Live about LightSwitch. If you click on the icon below and use the code VLSPK29, you will save $400 (and I will receive a small kick-back )
Great post Michael!<br>Once this product is under a go live license, direct competition with other methodologies will occur. For light UI applications, quickly developed LightSwitch prototypes, will compare favorably with end users to some over-budget, buggy, slow applications using more complex methodologies, particularly when consolidating data sources. Those concerned with their careers should focus on performance. If there is a working prototype with reasonable performance there may be less patience with traditional development cycles.<br>Mike<br>
@Nathan - God points, but unlike FoxPro, Access ect, the framework is more tightly designed for unprecedented productivity. It really is not the same old thing again. Most of the code that caused problems with other frameworks you cannot put inside LightSwitch. You only get to write the code that only you can write.
So this is basically the new incarnation of what foxpro or access was for desktop applications?<br><br>I don't have an issue with these tools. In fact, as a freelance developer, I suspect business will be very good in a few years after Lightswitch comes out. Folks with no real understanding of software development will start to crank out line of business apps using Lightswitch. Then, in a few years when businesses need "more" or when the app starts to collapse under its own weight, they'll call people like me - real software developers.<br><br>People should relax. If you're a great software developer, Lightswitch poses no more danger to your career than previous microsoft attempts to solve this problem.<br><br>Also, learn a couple of other languages like Ruby or PHP. There are a lot of companies that operate outside the microsoft bubble who won't notice or care about lightswitch.<br>
@John Oleg - You make valid points.
You might be right but I cannot stop thinking that I wrote a lot of similar applications in the same amount of time using any technology. The secret here is to follow this technology rules and to not push it beyond the limits of the technology.<br><br>But I cannot say that I can write any real application client wants in three hours with all its quirks in requirements and legacy considerations. And, what worse, I cannot predict the cost of the maintaining this application during the time.<br><br>So, excuse me for being little skeptical, but at least you article convinces me to look at Lightswitch more closely. Thank you.
@TimothyP - I plan to address the issue of why you still need an experience programmer. An experience programmer can do quite a lot with LightSwitch. In the tutorial at: <a href="http://lightswitch.adefwebserver.com/Blog/tabid/61/EntryId/10/LightSwitch-Student-Information-System-Part-3-Custom-Controls.aspx" rel="nofollow">lightswitch.adefwebserver.com/Blog/tabid/61/EntryId/10/LightSwitch-Student-Information-System-Part-3-Custom-Controls.aspx</a> I create a control that is not a control that a beginner is able to create.
LightSwitch is great,<br>but one thing is certain... now we'll have to try even harder to explain to the men in suits why they should hire people like us instead of the guy who took a 2 week programming course and is 10 times cheaper...<br><br>Good thing LoB apps are not my primary focus :p