Microsoft WebMatrix – a tool for the lazy?

Microsoft realized it was unfair that children and wives were unable to experience the joy of creating web applications. So last week they introduced a brand new shinny toy in the market – WebMatrix. Sadly, they forgot about toy-safety which any toy manufacturer will tell you is a cardinal sin.

If you want to know what WebMatrix is, you can check Scott Guthrie’s blog post here that explains it in detail. To sum it up, in Scott Gu’s very own words…

WebMatrix is a task-focused tool that is designed to make it really easy to get started with web development. It minimizes the number of concepts someone needs to learn in order to get simple things done, and includes and integrates all of the pieces necessary to quickly build Web sites.

In 2003 when ASP.NET joined web development, it was great. There was nothing like it in the market that let you create web applications so easily. You didn’t exactly have to understand how the internet worked, you didn’t have to worry about POST or GET verbs, because when ViewState, Event Handlers and Page_Load got together all you had to do was party! Unfortunately, because the entry constraints were so low, some not-so-good developers joined the scene creating some not-so-good applications that resulted in not-so-good user experiences. But the party still went on, as there was a community of very good ASP.NET developers always ready to help. Not only did they provide answers to problems, but they also developed long term solutions and methodologies like TDD, SoC that would help you create beautiful and maintainable applications.

In Scott Gu’s post on WebMatrix, he lists an example where database, business logic and user interface code all sit hand in hand on the same page. Click here for a snapshot. A decade of web development has taught us one thing – not to write such code. Numerous tools and technologies, Microsoft’s very own ASP.NET MVC prevent us from doing so. Why then would we want to teach a failing technique to a bunch of fresh minds?

Just because a child cannot fully grasp the idea behind gravity does not mean we teach children the earth is flat.

I like the idea, to be able to create web applications without knowing everything there is to know. Visual Studio can be daunting and overwhelming and a simpler tool for the beginner is a great idea. However, since the users is naive, the onus lies on the product manufacturer (in this case Microsoft) to help you create a good product.

There should be no way to write the example code shown. A tool like WebMatrix should force constraints and restrict users from creating such a mess. Maybe a user might not understand why he is forced to write database code in one file and user interface code in another. He might even find it an inconvenience. But you the manufacturer know what is good for this child-developer. It is for the developers of WebMatrix and not its users to identify pitfalls and force constrains around them. This might reduce flexibility, but wan’t this tool meant for simple applications in the first place?

I’m still not sure who WebMatrix is for. Microsoft says it is not for professional web developers. So is it then for people who can write SQL queries, learn Razor (MS’s new MVC view engine), understand open source projects like BlogEngine.Net, purchase web domains and hosting, but simply cannot take the effort to create good applications, even if it was for their own good? The word that comes to mind is Lazy.


13 thoughts on “Microsoft WebMatrix – a tool for the lazy?

  1. Brilliant blog Preeti! I really like your gravity analogy.

    The word that comes to my mind is lack of passion for creating good software or just obsession with stock price. To rant more about why Microsoft sucks I need a full-size keyboard. ;) Wait until I get home.

    But you make a very cogent argument. Like it! :)

    Cheers! :)

  2. Really interesting post.. Keep writting. You are right about that’s why I think MVC and MVVM + Prism in WPF give developer a more control for coding rather than leave on technology.

  3. @Syed, Thanks Syed for dropping by :) I’m really beginning to like MVC, though I’m still trying to understand what MVVM is. Do let me know if there are some good MVVM resources out there.

  4. Pingback: ASP.NET MVC Archived Blog Posts, Page 1

  5. I don’t mind the concept of the tool however 100% agree that MS shouldn’t be pushing bad practices.

    Imagine if this tool generated proper layers and dependency injection out of the box … Our future devs would just assume that is how to build good web apps

  6. @Steve, my point exactly. I wish MS would invest effort in incorporating good programming practices in WebMatrix. Someone commented on the bad database code in Scott Gu’s example code and this is what he had to say – “The technology isn’t the thing that guarantees success of failure – it is the person using it who does.” Its like an artist-brush manufacturing company creating crappy brushes, simply because its the artist and not the “brush” that would create great works of art.

    It seems like a lost decade, if, after all this time new developers are still going to have to DISCOVER that database code and UI shouldn’t be coupled. Why isn’t that in the textbooks!

  7. @Pit, The idea behind WebMatrix is great, but I am not in love with its implementation.

    Its like DIY furniture. When IKEA sells DIY furniture for folks who are not carpentry experts, they make sure you don’t have to work with a wood saw, because a little knowledge can be dangerous. Microsoft should have done a better job of hiding the programming details for the non-programmer.

  8. …that children and wives ???

    It’s insulting to lump children and wives as if they were both to addle-minded to function as adults. Kids of course, but wives? Good heavens! This is mindless, LAZY writing that does women everywhere a huge disservice. Shame on you!

    • @Alethea, I am sorry that upset you. To clear things up…

      1. Just because someone does not know how to create a web site or program does not make him/her stupid.

      2. Just because I do not know how to build a vacuum cleaner and have to purchase it at a store does not make me stupid.

      3. If Hoover or Dirt Devil decided to sell BUILD-YOUR-OWN vacuum cleaners for a “wife” like “me” does not mean they think I am stupid. It simply means that it is not something I normally did – building vacuum cleaners.. and so they are helping me do it.

      4. Now, if the vacuum I built exploded, AGAIN that would not make ME stupid. That would make the company that built the kit stupid.

      Point being, kids and wives are not stupid. I thought that Microsoft was being stupid and WebMatrix for me was not a robust start up kit for someone new to the field. As for me, I am definitely stupid, and sometimes every lazy ! Sorry about that :)

  9. What MS are doing is facilitating what works, and is actually fine for a lot of small developments. Seprating tiers etc. comes later with bigger developments. Separation of elements can be positively negative (?) for small needs. A baby wears convenient all-in-one suit but the separation of clothing elements comes later. That doesn’t mean we should be dressing our babes in 3-piece suits or twinsets (!)

    • That is a very interesting analogy ! Well yes, I do agree… though I would have to say (from what I read in July, I haven’t followed up since) that web matrix expected you to know quite a bit of stuff.. Razor, Deployment, SQL queries… It is like an attempt at the baby all-in-one suit but with the tie left in!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s