Tuesday, January 27, 2009

Drinking the Kool-ade

I had a conversation the other day that really made me think afterwords, "Have I drank the kool-ade?" and if so, how deep am I drinking it.

Speaking with a fellow developer the other day about system administration and I found myself talking up power shell vs him saying to use php. Now as a UNIX/Linux guy at heart I found myself in a really weird spot of talking up a Microsoft scripting language. This is a really weird spot for me, I don't like windows as an OS, the file system is lacking, and the lackluster/non-existing scripting.

VB is horrible and bat is limited at best, you can install cygen or UNIX services for windows to use bash, awk, sed, php, perl, etc. these are ok, but your still limited in how well you can access system level stuff.

Of all of the scripting languages you can install on windows perl and php (yes i know there is ruby and python, but I'm talking well established old school languages) are the most robust, I like php, I used it a lot back in my java days to do the light front end stuff and then used the java servlets to do the Hervey work (I have never liked jsp), but like perl I think php is being used for stuff it was never intended, system scripting being one. Php is a web language and for simple web applications it's a really good one. Just like perl is a really good system scripting language, it never should have been used to do web programing, yes a lot of people did it, myself included. And now here comes power shell, a real shell environment, with a very powerful programing environment, including the ability to use system .net objects and dlls, and has a very perl like syntax. now there is the ability to do system scripting and easily integrate into anything on your computer including Office apps like Word, outlook, etc. if you really wanted to, and it would be wrong if you did, you could create a Word doc, from a scripting language. For me this is really cool, finally windows is moving in the right direction.

This got me thinking about other kool-ade as well, having worked with both java and .net to be honest, I like c# .net more, java is a really great language, solid OO and very versatile with it's platform independent design. On the other side the first c# development I did was on Linux using the mono project and it's also a solid OO language. It may not be as platform independent, but using the LAMA stack you can run asp.net web apps on Linux servers, and yes I have done this, .net has it's short falls, the GAC is not a comparable to java class path. It's a pain to administrate, things never update like they should, it really is horrible. On the other side .net may be a managed code, but it doesn't have the oppressive wait of the java virtual machine around it's neck. Java may have a lot better/more frameworks, but .net is moving that direction very fast. In the end they both have there strong points and there week points, so it comes down to personal preference, and to be honest there very similar to work in, I like c# better, on Linux or windows. the language syntax is very similar, but where it's different, I generally like c# better.

Have I drank the kool-ade? maybe, but keep in mind, Microsoft isn't the only one selling Kool-ade, the java community has there own stands, and all the ruby developers seem to want to do is sell it. In the end I would like to think if I am drinking the kool-ade, at least I'm trying a little bit from everyone.

Wednesday, January 7, 2009

Becomeing a better Developer

Listing to a Hanselminutes a while ago the subject came up of how to become a better developer and this got me thinking, what am I doing to become a better developer? I read blogs, listen to Dot net rocks and Hansel minutes, I go to the occasional Netdug (Boise .NET developers group) , read Visual Studio magazine (mostly skimming it), I went to code camp, and I started a weekly training session at work where every Wednesday we watch video tutorials, but is any of this really making me a better developer?

At this point the question would really have to be is how do you tell if your becoming a better developer? So I look at some of the things I have done in the passed and what I'm doing right now
  • running asp.net application in Linux with mod mono and using mod_aspdotnet with Apache, but this is more operations stuff.
  • using Ghost doc and Sandcastle to document my code, and using Component One's free spellchecker
  • using Resharper and the VS refactor tools to make my code better
  • creating unit tests and sort of doing test driven development
  • playing with IOC and DI, and just using interfaces
  • refactoring existing projects to make them more maintainable and better performing
  • using tools like FXCop and Style cop to do code review
At the end of the day the real question is am I doing better work today then yesterday, I think so, I hope so? only time will tell.