LightSwitchThe Return Of The Secretary
Microsoft LightSwitch is a new 4GL tool from Microsoft, this is another in the series of “you don’t have to write any code” tools that I have seen.
Those are the tools that will give the secretary the ability to create applications and eliminate the need for coders. The industry has been chasing those tools since the 80s (does anyone remember the promises of the CASE tools?). We have seen many attempts at doing this, and all of them have run into a wall pretty quickly.
Oh, you can build a tool that gives you UI on top of a data store pretty easily. And you can go pretty far with it, but eventually your ability to point & click hit the limit, and you have to write code. And that is things totally breaks down.
LightSwitch is not yet publically available, so I have to rely on the presentation that Microsoft published. And I can tell you that I am filled with dread, based on what I have seen.
First of all, I strongly object to the following slide. Because I have the experience to know that working with a tool like that is akin to do back flips with a straightjacket on.
The capabilities of the tools that were shown in the presentation have strongly underwhelmed me in terms of newness, complexity or applicability.
Yeah, a meta data driven UI. Yeah, it can do validation on a phone number automatically (really, what happen with my Israeli based phone number?), etc. What is worse, even through the demo, I get the very strong feeling that the whole things is incredibly slow, you can see in the presentation multi second delays between screen repaints.
Then there are things like “it just works as a web app or windows app” which is another pipe dream that the industry has been chasing for a while. And the only piece of code that I have seen is this guy:
Which makes me want to break down and cry.
Do you know why? Because this is going to be the essence of a SELECT N+1 in any system, because this code is going to run once per each row in the grid. And when I can find bugs from watching a presentation, you know that there are going to be more issues.
So, just for fun sake, since I don’t have the bits and I can rely only on the presentation, I decided to make a list of all the things that are likely to be wrong with LightSwitch.
I’ll review it when it comes out, and if it does manage to do everything that it does and still be a tool usable by developers, I’ll have to eat crow (well, Raven :-) ), but I am not overly worried.
Here are a few areas where I am feeling certain things will not work right:
- Source control – how do I diff two versions of the app to see what changes? Are all changes diffable?
- Programmatic modifications:
- what happen when I want to write some code to do custom validation of property (for instance, calling a web service)?
- what happen when I want to put a custom control on the screen (for instance, a google maps widget)?
- Upsizing – when it gets to a 1,000 users and we need a full blown app, how hard it is to do?
- Performance – as I said, I think it is slow from the demo.
- Data access behavior – from what I have seen so far, I am willing to be that it hits its data store pretty heavily.
I fully recognize that there is a need for such a tool, make no mistake. And giving users the ability to do that is important. What I strongly object to is the notion that it would be useful for developers writing real apps, not forms over data. To put it simply, simple forms over data is a solved problem. There is a large number of tools out there to do that. From Access to Oracle Apex to FoxPro. Hell, most CRM solutions will give you just that.
My concern is that there seems to be an emphasis on that being useful for developers as well, and I strongly doubt that.
More posts in "LightSwitch" series:
- (25 Aug 2010) Initial thoughts
- (05 Aug 2010) The Return Of The Secretary
Comments
Even the only piece of code is bad, it's not something a secretary would write.
Thanks!
I've been refreshing your blog start page waiting for your reaction to LightSwitch, so that I would have somewhere to express my opinions (I really should start blogging....)
I was completely amazed by Microsofts presentation. It completely wreaks of the "great for demos - a PITA in real life" syndrome that also gave us so much of the junk that is part of WebForms etc. The time you save when doing super basic tasks is eaten up X 1000 when real life demands come into play. And don't expect us to believe that transparently aggregating data from multiple sources will be painless. It can't be.
LightSwitch seems a bit like what Access should be (merging the two would make some sense), but it's not a developers tool. Please Microsoft, stop shooting us with silver coated lead bullets!
That said, creating CRUD code and interfaces takes up too much of many/most developers time, but I've yet to find any tool that solves that satisfyingly.
PS. The part about that “it just works as a web app or windows app” was at least about deploying it using Silverlight or as a desktop app. Not trying to create an HTML version. So it's not the WebForms mistake all over again. DS
Microsoft wants business analysts to create the applications and not developers. This has been their continual plan.
Look at workflow, SSIS, MOSS etc. They want BA's clicking boxes and dragging shapes and joining them together which magically creates an app.
You only have to look at an SSIS .dtsx file to see the reality of this approach.
They seem very against developers writing code to create applications.
I don't think they will ever change.
This might be down to the success of excel.
Great rant Ayende! You certainly saw this at blogs.msdn.com/.../...sual-studio-lightswitch.aspx
Your sceptic has injected some cold water in my exited soul. All my professional life I have waited for some "Holy Grail" that just implement my ideas. There are however some small changes that Lightspeed can give something if they do it right...
/mortjac
The problem with tools like this is that they make the easy problems trivial but the hard problems impossible. Are there products that cannot come to market because of a lack of a tool like this?
A kitten just died. A tribe of kittens. In fact, felines are suddenly on the endangered listed :(
Like @robconery said (badly quoting) When you have A Salesman (Balmer) running the show, then you get this shit.
It's like when you first see something shocking like goatse or 1g2cup, a part of your soul is forever .. -ever- ... lost. Innocence. Gone.
This is what Lightswich/Access2010 just did for me.
QQ sigh
I think the comments in Jason Zanders Blog ( blogs.msdn.com/.../...sual-studio-lightswitch.aspx) that announced this says it all.
There are a few very few negative comments. Unfortunately the people commenting are a much more accurate representation of the .NET ecosystem that those that read this site. That's pretty frightening.
Can I ask a question?
How is this mentality any different than a startup?
Everything I read startup wise, is just get the product done, rather than over-engineering an architecture before you even have a userbase?
This is done all the time with developers, especially in startups.
So what's the difference... instead of a developer it's an analyst, business user, etc. creating an app they need now, and who knows what the resultant size may be. Maybe it won't result to anything, maybe it will. Maybe if they get a good idea on business workflow, they can take that system as a prototype when creating a real system.
What I'm saying is... why this... oh my oh my.. attitude, rather than thinking practically about it.
Filemaker is huge, and it's addressing real business problems now.
What's the problem?
And to make it worst, I will be part of Visual Studio, so in this regards, anyone can say, I built it using VS ....
Hi Access!
Where does this LightSpeed fit into the Visual Studio roadmap?
Eric,
Doing something right doesn't necessarily mean it takes a long time. I think we all know that beyond the most trivial applications, this product is going to create more problems than it solves.
Your personal contact list? Great. Your companies account payable system? Not so great. And I think we also all know that cheap and/or uniformed management will do it too.
I have no problem with business analysts becoming developers. In fact I think it should be encouraged. In an ideal world MBAs would go through a mini-CS bootcamp. I'm a business analyst with a CS degree and my colleagues are woefully behind the times, always getting sold out by overzealous software salesman. They know technology is important, and that software is the key to efficient business processes, but they are like architects who don't understand that studs go behind drywall.
I have disagree with everyone here that this is Bad for Developers. In my experience applications like this usually have the following lifecycle:
Business analyst with a technical bent sees a need, sees how software can fill that need but doesn't have the necessary background to make it happen like we do.
They use this or Access or any of the other myriad of drag & drop GUI software builders to get a rough cut done. Warts and all this gets used with some business process. These can usually evolve to be somewhat sophisticated programs, as Ayende notes.
Unless it is just a secretary or similar using this, these programs will always hit dead ends as the fundamentals of concurrency and scalability catch up with the original designer.
The developer comes in, designs a proper application and everyone is happy. These are my favorite projects because the workflow is generally already defined. The way the user interacts with the application is familiar. I'm not fighting to get information out of the end user, and I'm not fighting impossible expectations of what the application can possibly do.
Personally, I don't find myself being supplanted by this. Quite the opposite, I find that users find applications they wouldn't thought possible or were otherwise unable to express the need or business case to me. Instead I find it as a tool that's often the first step in generating more work for me, which is really only a good thing.
There might be a time when a shitty program created by this might get by long enough to where managers decide they don't want to charge a developer's time to the project. This happens anyway, and these aren't mission critical applications. Besides who wants to work for someone who is constantly evaluating you against a GUI tool?
I agree that Microsoft could do a lot better in improving the code and make more explicit the limitations. I would love to see where each application were given a set number of points, say like 5,000 and every control is assigned a point based on how much work it does (data access, 10, doing data access per row? it begins to show why you have no more points left). Probably a pipe dream, but would be nice.
g,
Just by using my work experience as a guide, there's no way this system will be just used for prototypes. I used to work at a bank whose entire backbone was build on FoxPro that one developer knocked together years before. Every night systems failed and things blew up as the file sizes were too large and the archiving process designed to hold the wolves at bay failed right, left and center.
Tools rarely get used for only what they are intended for.
Here's an idea, if making websites is "too hard", then make it easier. I think you probably already know what road I'm going down, but Rails has shown that designing, testing, deploying and (with git) storing websites is really freak'n easy.
Rails and the Web Matrix/Microsoft.Data/Light Switch trinity both had the same goal, but they took radically different approaches at getting there.
g isn't saying they'd be used only for prototypes. He's saying business people could use this to put together something that solves some of their requirements crudely. When that solution hits the wall, then there is the opportunity to build a real solution with requirements already fleshed out.
I think I agree with g on this. Trying to make tools foolproof is a fools errand I wouldn't pursue, but I don't see these tools as ruining the ecosystem for the rest of us. If it keeps more people on the Microsoft stack then its a bonus for me as a .net developer.
Yes the business people paying for the efforts are going to have some sticker shock comparing LightHouse development versus a real development effort. I don't think thats any difference from the past. There's always been people hawking tools supporting the illusion that rich custom software development can be shrinkwrapped. Even without those products, non-developers typically underappreciate the time and effort required.
That said, if Visual Studio ever stalls on me updating the Lightswitch toolbox or some nonsense like that I'm going to go apeshit.
@fschwiet: "When that solution hits the wall, then there is the opportunity to build a real solution with requirements already fleshed out."
And therein lies my objection. In that case you are not talking about requirements, but choices that already have been made about the user interface/interaction. Things in which business people are not qualified to do. Otherwise they would have had a software related job.
And we all know how hard it is to talk such people out of bad interface/interaction choices.
fschwiet,
I guess I'll use the "old guy" card here, but the idea that when a crap system "hits the wall" that they'll then gleefully upgrade to real development isn't steeped in reality. Generally management types (and I know because I am one now), don't think that way.
Personally, developers who read blogs like this aren't really in danger of losing their jobs over it or anything, I think what Ayende and others are upset about is .NET is already an environment where bad habits are practically encouraged by Microsoft, and this just makes it worse.
Again, if the idea was to make development easier, make it easier but in the right ways. I don't think anyone can argue that Microsoft.Data is easier than the ActiveRecord baked into Rails, but I think everyone will agree that Microsoft.Data is a lot more open to abuse (both of the hacker and just horrible SQL kind).
"Other Data, Including SharePoint" lmao
Looking forward to become "certified LightSwitch technology specialist" for sure.
MOAR GUID`s!!!111eleven
Anyway - good luck Microsoft. You will need it. It's not enough with shouting "cloud computing" 24/7.
And how is this tool any different than Webforms ?
@Steve - re: "And how is this tool any different than Webforms?"
2000 versus 2010, but that's about it and it makes the whole thing that much more depressing.
I disagree with most of the sentiments in this post and the comments that follow. There are multiple factual inaccuracies and prejudicial arguments that are wholly without foundation here. Watch the video demos and read the information released on official blogs more carefully. LightSwitch is definitely NOT a 4GL in the traditional sense. The rest of the assumptions and ill informed criticisms here poorly represent the stature you have achieved in the .NET developer community as an informed and thoughtful professional.
@g
get some real world experience under your belt and come back in 15 years. sounds like a great plan but that's not how it works. as soon as mgr sees the screen he thinks the app is done, turns it on, and leaves it on. no one ever re-writes anything - what planet are you from?
@Tyler
Hey, you posted the exact same reply here as you did on my blog. Interesting, as Oren and I wrote different articles.
As I replied there: you don't know what we saw of LightSwitch, as we're MVPs and MS might have shown us more than you have seen so far on the internet. Sure there are assumptions going on as the real bits are still not released, but that's besides the point: what MS communicated to us might have given us more insight in what the tool is all about than what you have read so far in the web.
Indeed it's an unfortunate idea the MS is still tring to promote this kind of "app. builders" which mare very easy to create CRUD applications.
Indeed, similar software (Access, 4'th Dimension, Filemaker) has been very successful and to some extent still is, and such products have grown into very complex products.
The problem is that people have developed very complex business applications using them, which are now very difficult to maintain and extend, and usually, after 10 - 15 years of changes the product is too expensive to be rewritten.
LightSwitch Profiler! :P
Mark,
Actually, it sits on EF already, so I got that market :-)
Most system I have worked on have had lots of tables of “config” data, that only gets changed a few times a year once the system is up and running. E.g Adding a new doctor in a patient admin system.
I see LightSwich as being a quick way to get the “admin” app up and running. The fact that I can add validation checks for changes in the data source means it can be safe as well (“once a doctor has patients the doctor cannot be deleted”)
The fact that as a .net programmer I don’t have to learn many new skills to extent a LightSwich application is great!
I don’t see LightSwich being used for high transaction volume, but in most systems, most forms edit low volume data.
@Ian I think what you mean is "MS Access should be like this", not "Visual Studio should have this". It's not that the tool is of bad quality, it's about the target and purpose of the tool. If you read about Microsoft.Data, you should see the same reaction.
I think that this is their way to fight OSS by dumping. I see it more as act of desperation that as a strategy. Another companies have tried and failed.
Back in the 80's I went to IBM Boca Raton with "my degree under the belt" :-) and I was told that they were not hiring developers since they were training secretaries to do programming. Several years later they closed their shop here in Boca.
Microsoft was founded by a guy that "borrowed" an OS and made billions but if they can not continue to "borrow" they have to dump.
@Frans: definitely not the same comments. Jeez, Frans are you interested in facts or just want to throw around blustering opinions and brag about being an MVP? Disagreed with both of you yes. MS showing you more than the rest of us because you're and MVP. Total BS. And you know it. Called you on you're BS assumptions. Sure! Embarrassed? I would be too.
@Tyler
err... I just wanted to say that it might have been the case that us MVPs was shown more than non-MVPs was shown. I don't brag about being an MVP, why should I?
But I don't know what your problem is, it looks like you have some kind of hate towards either people who got some title from MS or who disagree with you on some amateur targeted toolkit. So be it. If you want to write posts on blogs about who wrong we are, go ahead. Personally I'd invest that energy in something productive...
@Frans, clearly I've touched a raw nerve, so I apologize. My comments were perhaps unfair and I've clearly offended you. No, I don't hate anyone with a title from MS, not even you. I am disappointed in what appears to me to be a lack of objective and dispassionate analysis from you and Ayende with respect to a product that none of us has actually used or evaluated with any kind of real professional effort. We're professionals. Let's act like it. What do you say?
Dont worry about Frans, he's a grouchy, short-fuse type of a guy. I would love to know if the coyness about his hearing the Secret Details of Lightswitch is based on actually hearing any Secret Details. Either way, it doesnt really help the discussion.
If it's a part of Visual Studio, then its going to EVEN harder to separate the wheat from the chaff when reviewing CVs and resumes: I have seriously lost count of the number of people who claim ASP.NET skills when all they have done it written/consumed a web service!
Tried leaving comment on Jason Zanders blog bugbhe seems to ge only letting through positive comments. My worry isn't micorsoft.data, lightswitch, web matrix. They have thieir place perhaps even if they are overhyped. My worry is that microsoft have ogoe myopic again, focussing way too much on crud/rad and almost no effort on things like IronRuby. If they don't change that I don't see the .net sphere being a good place to be in a few years.
@Colin Jack,
Ruby programmers in general and RoR programmers in particular do not need IronRuby (because they do not need Windows in the first place). .NET programmers do not need IronRuby except maybe as a second class scripting language. Unless IronRuby gets some community it is dead.
@Tyler said: "There are multiple factual inaccuracies and prejudicial arguments that are wholly without foundation here..."
" The rest of the assumptions and ill informed criticisms here..."
Please name 1 or more and continue the discussion. Accusations without any basis are not useful.
Might work for non trivial applications but the moment you hit something even slightly complex you will have to revert back to code. Why even bother as most useful real life applications are really non trivial.
Couple this with the fact that a secretary probably has no idea about designing for maintainability, testability, interpreting requirements and validating requirements and i think you are creating a whole new set of problems.
It might have a use for individuals who want 'Macro' like functionality (a bit like automator workflows on mac) but i'm not sure of its other uses.
Dude, it is pretty obvious that you have not had access to the product, as just about everything you say here is factually wrong. I recommend you check out the product when it becomes available in a few days...
Markus,
I would have actually believed you if you bothered to leave any sort of identifying information.
For me LightSwitch looks like a future Access replacement.
And from that perspective it seems to be a step forward.
I am not a programmer and I am not a secretary. I work at a university but not in the central IT department. I help support one of the largest departments on campus as part of a small (3 person) IT team to take care of the network in the building, several labs, the large departmental website and tech solutions for faculty and staff. There is an enterprise system for campus but departmental folks are not allowed to touch it (which in general is probably a good thing). When I started working there in 1999 everything departmentally was done in a spreadsheet or in Word. EVERYTHING.
What have we done then? We HAD to create Access databases. We used Infopath. We used whatever we could. I convinced them to get SQL 2005 when it came out. We've built small apps on top of data. The amount of time that can be spent per week on application development work? About 10 hours. Not per person. Total. Our apps are as well designed as we can make them. The Access databases cannot go away entirely because our 3 person team cannot make every new report the user wants. But they sit on top of a SQL database and they do the job they need to do.
I have a beautiful master data plan designed that I sigh over once in a while. We are slowly moving towards that goal. I incorporate as many good design features as I can. I read blogs of experts to make sure I am aware of shortcomings of different technologies.
Today I am disappointed in my reading. I HAVE played with Lightswitch. It has promise in my world. As with some of the Access databases I inherited, some poorly designed apps WILL get developed. But even with the poorly designed apps, at least somebody attempted to be more efficient in these times of layoffs, vacancy management and job combining so they can work only an hour extra off the clock instead of two or three.
So what would YOU do with only 10 hours of development time per week? Maybe look for a solution that is built on MVVM and entity framework, has easy deployment (web or desktop), plays nice with Sharepoint and is already part of the Microsoft technology stack.
Yes, Lightswitch will likely work in my situation. The point is, there are probably thousands of people in my situation.
From my short time playing with Lightswitch, I can see people will have to do SOME coding. The secretary will not be using this tool. Most people on this blog will not be using this tool. But I and the thousands out there like me will so the secretary doesn't have to work so hard.
@Laurie
Exactly. LS implements best practices (they can even evolve) at system level, where every developer tries to repeat again and again (not always at best, experience matters) allowing to free hands and mind for real business model problems. Sure it is for some class of applications (scalability matters in huge webapps, but this is different world). Business persons may scratch only surface of model, starting with validation/navigation real developer is needed even in LS, no doubt. Those very experienced developers (but not so much of it) might retarget itself to extensions/components/providers/integration design at system level again. Its the same idea as separation of logic and UI design, where themes/shells fall. Similary as CLR/JIT compiler might do smarter decisions than AOT using real data, runtime model execution might even smarter decide at higher level HOW to do WHAT is declared. Runtime models execution is the future for multicore world. Things like LightSwitch (not itself) will start really new perspective for all of us, IMHO.
Laurie,
There ya go!
You are not alone in the world, and there are MILLIONS, not thousands of people like you. Small companies trying to get off the ground. TOTAL budgets of thousands of dollars not millions. They use Word, Excel (more than ANYTHING ELSE!!!), Access and anything else they can use to do SOMETHING to tame the tiger.
And yep, all of the "professional" developers, who are of course completely unable to help this ecosystem, complain bitterly about how the "secretary screwed things up".
So I read all these comments and smile. All these people commenting in this thread have their jobs, and their work to do, and it is important work (really, it is!) but they just don't see, know or understand the "small business" ecosystem.
And that ecosystem is HUGE. There are more people employed by small business in the US than is employed by the fortune 500. Furthermore, the "small business ecosystem" (as you point out) all too often exists inside of huge companies because of the arrogance of the IT departments where "write a spec and we'll try and fit it in our busy schedule" is all to often the norm.
I specialize in that ecosystem. It is what I love to do. I help that small company bootstrap itself and grow. And I can't come in and present a "sticker shock" estimate because it won't get me anywhere. These people don't have "sticker shock" budgets.
So I use the tools that let me do a good job quickly. Access is a fine tool. Hitting SQL Server it can be the FE for extremely large data sets. It can report better than most other tools, and get the reports done quickly. It can work bound or unbound, it has a programming language behind it. I can design tables and forms and entire small systems in hours or days. And yes I understand (and always hit) 3rd normal form and can go further when required. And I understand when NOT to go further.
I am writing C# code (for my own business - for a specific client) to automate importation of 60 million record lists into SQL Server, normalize naming of the fields, export back out for third party processing, import back in and then using the data, all C# against SQL Server. I use SMO to get database lists, table lists, field lists, displayed in combos to let me make choices...
I have been writing code since the 80s, I am no lightweight.
But I use the tools that work for the job being done, and for the small business ecosystem, getting their core application up in days or weeks, some tools are better than others. If that is Access, so be it.
I am taking a serious look at LightSwitch as a replacement for Access in those places. I can't say yet whether it will be the "Access replacement" but I can say that having the power of .Net available when I need it could make all the difference.
So there ya go. Use what works, be professional, do a good job within the parameters that we work in, and do your best to ignore the "professional" developers who haven't a clue about the other 90% of the world.
And oh, by the way, I DO get jobs replacing the secretary's crude attempt to get the job done. It happens all the time. But I DON'T come in with a "sticker shock" estimate.
Gravatar,
With regard to spending too much time doing CRUD, perhaps you would feel differently after using NHibernate (with fluent), LINQ to NHibernate and a good Repository framework such as Sharp Architecture. The CRUD problem, like forms over data, is also a "solved" problem. For a really first-class experience, combine these with a dependency injection framework such as Castle Windsor or Structure Map. These are the sorts of tools that real professionals are using for serious work as compared to something like Light Switch which seems to be more toy than tool at this point.
Any update on opinion from Ayende (or anyeone else) since the product has been released for preview?
I guess you missed my series on it: http://ayende.com/Blog/archive/2010/08/25.aspx
thanks - yep, came in through a search result and didn't notice it
nice set of posts, thanks for the updated POV - do you think the scalability issues with the dal are just some missing hints to the entity framework or something more intrinsic?
Do you have an opinion on the extensibility model?
Something very intrinsic, the core architecture is flawed.
It has an extension model? I didn't notice
I think MS LightSwitch still need time to compete with Oracle Application Express. APEX far more superior...
Comment preview