Aquarium Blog

Friday, March 05, 2004

About the hobbyist and professional .NET programmer

Rory Blyth blogs here about the low priority Microsoft should give to the hobbist programmer (and Scoble's answer is here).

The first thing I would like to say is that Microsoft's responsibility is not to hobbyist programmers. As someone who makes his living by working with Microsoft technologies, I would be rather ticked off if MS were catering to people who weren't professional coders. I'm not saying that hobbyists shouldn't have a way to code their own apps, but there are many alternatives to .NET that would allow them to do that. Off the top of my head, and just for an example, I could wholeheartedly recommend Python. It's easy to get going with it, and it's pretty forgiving.

Even when Rory softened his entry, I still disagree with him. In my view, it makes a lot of business sense for Microsoft to keep supporting and enabling causal programmers. And in my view, much of what is good for casual programers is also good for the pros.

Unfortunately, Visual Basic .NET took the "beginner's" part out of the language forever. There is now a big void gap that nobody is filling, and I think Microsoft should try to do it.

As a professional developer, I like programming in the Visual Studio .NET environment. I like seeing more and more new development tools being integrated in Visual Studio. For the casual developer, however, Visual Studio doesn't cut it. No matter how great the add-ins are, sometimes you have to dig. And once you start to dig, the rabbit hole goes too deep, too fast for a beginner.

Yeah, I am getting older and more of a pragmatic programmer every day. I can only say in my favor that I enjoy looking under the hood too. I just want to use the best tool for each task and the result to be of professional quality. I am happy to use RAD tools as long as I can reasonably understand what's going on. So, I love the feeling of being a pro, but whenever I see the casual programmer gets something better than me, I feel green with envy.

Take the Microsoft Access + SQL Server combo. And please, don’t get the wrong impression, I don’t love it. Access used to provide a good tool for prototyping, a grid that kicked the ass of any ActiveX grid out there and a simple but predictable reporting tool. Having SQL Server as a backend also kicks ass. I still use the combination for some simple data cleaning screens, but I am sure I would use it more if it were better.

The things that makes you hate Access as a professional programmer is its inconsistencies, its instability, its deployment nightmares, and so on. If Microsoft had tailored it to being more of a pro tool, with more diverse backend database capabilities, I think it would have displaced every other database fronted in the market, including Oracle forms. But now, Access time has gone and the only major feature of Microsoft Access 2003 is backward compatibility. The product is almost as dead as Paintbrush.

My point is that I am not interested in being called a professional developer for making things that economically doesn’t make sense. It probably doesn’t make sense to write GUI code in MSIL (it sounds cool, though) and that I don’t want to type each angle bracket myself (even when it is so cool to claim you build your site using notead). This just reminds me of the time I used PC Tools to type more than 10KB in hex codes of a program just because nobody else got 3½" disks drives in town.

For the casual programmers out there, I see in my crystal ball Microsoft handing out something of a .NET framework based Infopath. Infopath is more of a constrained tool than Access, but in a good way. Constrains in a programming environment are a good thing if you want something built by a casual programmer to work well. I would like Microsoft to solve the deployment problem by allowing the outputting of some "gracefully degraded" ASP.NET applications from that kind of tool.

For the professional developers out there, more and better pro tools, and hopefully, Whitehorse will change it all.


Post a Comment

Links to this post:

Create a Link

<< Home