Categories
Motivation

Direction

So, I’ve previously discussed the problems with getting started.  It’s tough, and I still struggle with it, with my struggles taking the form of doing something else that may or may not be useful.

One thing is clear though: I need to pick some direction.  And by direction, I mean a technology stack.  And by pick, I mean “I know I want (need) to do a web-based software service, but I don’t know much about web programming.”

Don’t run for the hills yet.  I know my way around computers, software engineering and architecture.  I just don’t normally do “web stuff”.  I work mostly on embedded real-time systems.  The closest I come is the GUI interface into our software that monitors the system.  I can do complex client/server and n-tier relationship software.  I can do scalable.  I understand a lot of the problems and complexities.  I just haven’t done it via a browser.

I’m not naive enough to think that it all translates 1:1.  I don’t have such a simplistic view (or such hubris) that I believe that the “via a browser” is the easy part.  In fact, a lot of web stuff seems so kludgy that, frankly, it is a bit daunting.

So picking the technology stack also involves picking the stack I wish to learn.  And as they say, the devil is in the freaking details.

Disclaimer: I don’t pretend to be an expert evaluator or pretend that my observations are the One and Only Universal Truth. Your mileage may – and probably will – vary.

Ruby on Rails

Ruby on Rails, ah, the darling child of the micro-isv SAAS set.  The raison d’être for 37-Signals (and bully for them for pretty much turning a niche, internal (and dare I say enthusiast/hobbyist) approach into a hugely popular framework and a multi-million dollar business to boot.  It’s hard to argue with Gihub, Basecamp, Groupon…

However… I found the “Convention over Configuration” to be a bit too restrictive.  I fully acknowledge that a lot of this has to do with my particular background.  Given this and my general unfamiliarity with Ruby, I’m giving RoR a pass.

Yii

I read about Yii, a PHP-based framework,  in the comments on a Slashdot article regarding choosing a web/MVC framework.  The comment said something like “Yii allows you a lot of the convenience of CoC while focusing more on representing the data and giving hooks into the model rather than using the controller to define and restrict the model”.  This appealed to me, and I worked my way through a couple of tutorials.  However, there is something of  a lack of user base; this leads to a lack of interesting articles and how-to stuff.  This is a problem for me since, well, I’m kind of new at a lot of this.

This brings me to…

ASP.NET MVC

At first, I didn’t even consider using Microsoft.  I mean, who wants to deal with Silverlight and lots of layers of proprietary goo that just seems like extra confusion on top of a subject I’m not intimately familiar with.  However, at my job we’re looking to move our desktop GUI application to the web.

The desktop app is written in C#.  One thing that I think is difficult to argue with: Microsoft makes awesome development tools.  It always amuses me when people diss on Visual Studio or C# and such, because they sound like the same people who argued when I was a teenager over why it was totally more awesome to be a Thief instead of a Paladin. Always. No matter what.

I get why people don’t like Microsoft.  In fact, the desktop app is our only Microsoft-based technology.  Everything else in our stack is Linux/C++/Python and the database is Oracle (arguably just as inflammatory).  There’s plenty of things not to like.

However, their development tools and stacks simply aren’t one of them.  Sure, you can find advantages that LAMP or RoR or whatever your favorite flavor have over Microsoft.  Microsoft has not (IMO) done themselves any favors by having Web Forms, MVC, Silverlight, and that weird WPF-app-can-run-in-IE thingy to confuse things.  But most of those arguments are about particular points.  In general, Visual Studio and C# tend to freaking kick ass and both shorten development time and make it more delightful.

This brings up another important part for me: I am familiar writing GUI applications with C#.  This can both shorten my learning time as well as allow me to learn web-specific things more deeply, because I will spend less brain energy learning Ruby/PHP/Python (OK, Django didn’t even make the first cut).

So it would make sense to do ASP Web Forms, except…

I really like the MVC design pattern. [captionpix imgsrc=http://www.skaveo.com/home/wp-content/uploads/2012/04/asp-mvc.jpg captiontext=”And the winner is… ” align=left alt=”ASP.NET MVC” width=250]I like some of the flexibility, and how the Microsoft approach handles some of the stuff for me, and yet exposes other aspects for me to do.  I like how the URLs make sense, and correspond to “real world” actions.  It feels right, and I’m zipping along through a book and learning about the things I really need to learn about, and bypassing any (well, most any) language-related issues and hindrances.

I also like the fact that there are very active communities, tutorials, and books for ASP.NET and MVC.  I like that there are 3rd-party control packages available that look slick and like they play in the same sandbox.

While I’d like to be one of the Cool Kids and RoR my way to success, I just don’t see it happening, at least this time around.  I will be developing and releasing an MVC product.

What do you think?

PS: If you made your way to this blog via my product page, don’t be scared off by this “I’m a beginner at the InterWebz LULZ WITH ME” post… I promise, I have my shit down when it comes to engineering.

Leave a Reply

Your email address will not be published. Required fields are marked *