Lightswitch – Where Does It Belong
Some like it…some like it not.
David C says:
I have been using Lightswitch for over a month now and it is a great RAD tool. We are using it for an in-house admin tool to allow the BAs to edit metadata for our own code generation tool. It works great until you have to do something special, but has enough hooks in it to write custom code if you can figure out where. The downside – it is written on top of Silverlight and is somewhat restricted on what code you can write (can’t reference other DLLs you have written unless they are Silverlight libraries).
On the plus side, it creates a well architected solution complete with the correct layers. If the boss does come up with an app, it will be fairly easy to implement in the enterprise with good architecture. By switching to RIA Services instead of the embedded context objects, it can even cross the tier boundaries easily.
David E says:
Let me preface this with the following disclaimer: helping good programmers become faster is a good thing, and reducing the barrier to entry for neophyte programmers can be a good thing. Lightswitch is not a good thing, nor is any code generation tool.
First: what is code generation? It’s a developer (or group of developers) seeing a commonly-repeated pattern and producing a tool that builds the code to follow that commonly-repeated pattern that other developers can modify to meet their particular needs.
Second: what is a function? It’s a block of code that can be executed many times, but (often) with different inputs to produce related but different results.
Now: what is code generation, really? It’s a sub-optimal solution to the problem of a poor API. If there’s a particular pattern that is used over and over with slight variations, it makes much more sense to add an abstraction layer on top of the existing lower-level API (or, if essentially no-one deviates from that pattern, modify the API directly to better support the needs of the application developers, though that’s more risky).
Not solving this problem speaks either of hubris (that the original API design was perfect, and the developers are just helping the lesser programmers out there), or foolishness.
By the way, you can replace my example of a function with whatever abstraction layer makes sense: an object, template, for loop; anything that reduces repetitive code while still instructing the computer to handle the repetitive nature of the task is a valid approach. Code generation never is.
I’m thinking there is a place for tools like this in the corporate world. Let me toss out my past experience with 4GL tools and let you provide feedback. Don’t worry, I have thick skin, and won’t mind even if you totally disagree.
My first corporate job decades ago was as a Decision Support Analyst. The company had an IT staff of 98, and a backlog for new software development of 5 years. If a department vice president needed a tool developed, they had to shuffle around their backlog in order to get anything done sooner.
As a result, I took the role of Decision Support Analyst, developing rapid applications that were designed to solve immediate problems. Of course this was a little step above working in Excel. The difference was that I was allowed to use RAD 4GL tools to solve problems that didn’t work well in a spreadsheet.
The work we did was so popular that my position became an entire department of 5 full time analyst/developers and 2 contract developers.
I think good software takes time. Sometimes, inferior software is required to meet business needs in a timely fashion. I’ll be the first one to tell you that there were LOTS of issues with the products we developed:
- Frequently Corrupted databases
- Lost data
- Lack of Version Control
- Multi-developer merge issues
- Performance
These kinds of problems were a nightmare and convinced me that this wasn’t the best way to write "Good" software. Looking back I find that the "Bad" software we developed ended up saving the company a LOT of money.
The first year I was doing this job I wrote the following systems:
- Railroad Train car scheduling system for reserving grain cars at grain elevators
- Seed Performance Data Warehouse for Recommending Seed according to farm conditions
- Hedge Management system for managing grain hedges on the commodities market
- Purchase Order Management System for all PC Purchases
These tools were great for small one or two user operations at the corporate office. They resulted in the reduction of three full time employees because the work could be done with less effort than the manual methods used before.
Was it the best solution? I would say “No Way!” However, it was the correct solution considering the cost of waiting and resources available.
To me, Lightswitch falls into this same category. It has less of the pitfalls than other previous 4GL tools. Therefore, products developed in Lightswitch may have a longer lifetime than those developed in other 4GL tools.
Don’t get me wrong, there are lots of holes in the product. But, and my question is, does that mean it doesn’t have a place in the corporate world?
Most of us have had to spend time cleaning up the messes created by well meaning people using 4GL tools. Others of us never get to clean up what has become a boring maintenance nightmare because a 4GL product simply meets our business needs…we’re getting by.
Blast away! Send in your thoughts. What are you going to do when someone in your company wants to add this into their business so they can “Get things done quicker?” You may well be asked. What will your response be?
Drop me an email at btaylor@sswug.org.
Cheers,
Ben
$$SWYNK$$
Featured Article(s)
Reporting Services for the DBA (Part 3 of 3)
Take proactive DBA work to the next level. Put your administration queries to work in SSRS and have the answers to the hard questions at your finger tips. Identify, log, and summarize critical data sources on server performance and health. Learn how to plug in to historic data from the jobs, perform data, and app logs so you can analyze and trend over time. Provide easy access to important real time and semi-historic data from the DMVs. Provide access to data that was previously off limits to management, developers, and Jr. DBAs. You will also learn how to set up access to critical real-time performance indicators through the Web, e-mail, and mobile devices. All demos will be done on SQL Server 2008. Most will be compatible with SQL Server 2005.
Featured White Paper(s)
Query Tuning Strategies for Microsoft SQL Server
Written by Quest Software
When you’re looking for a reliable tool to diagnose … (read more)