I Love .Net

Wow, that's a ridiculous title. I sound like I drank the kool-aide. I guess I have, but I should give some background.

Like many test coders, I'm not interested in writing robust applications. That's one of the main reasons I'm a tester. Yeah, I have coding skills, but I get kind of bored once the thing works well enough for me to use it. And from that point there is still lots of work to do before it's good enough to be a commercial application. I like taking a problem, coming up with a possible solution, and implementing that solution as soon as possible with a minimum of pain and frustration for me.

I promise, eventually I'll get to why I love .net...

I first learned to program for real in college. I started in C++, then dabbled in C, Lisp, and a few other languages. But about halfway through I started using Java a lot. I loved Java. It was a wonderful experience to code in it. It stripped away all the silly pain of programming. I often had 500 line programs compile on the first try. If I did get compiler breaks they were usually silly things I could fix quickly and easily. But the best part was once programs were up and running they just worked. There were bugs, but not the kind of dramatic ugly crashes so often caused by screwing up with a pointer.

There's a theme here. Java allowed me to develop the way I like to develop. I could solve problems quickly with a minimum of pain and frustration. Sure, it wasn't very fast, and I didn't have as much control over what was really going on (memory management, pointer math, etc) - but I didn't care. When I was done writing it worked, and it worked well enough to solve the problem I needed solved.

I was really excited when we started using C# as our standard language for test development. As some of you may know, Java and C# are very similar, so my Java experience let me pick up C# very quickly. I've written some test code, and screwed around learning the ins and outs of the language. But yesterday I fell in love with the whole package.

I needed to write two test helper apps (I'll talk about what these are and why I chose to write them in a future post.) No big deal, my friend C# will allow me to do some rapid development. I had now idea how rapid. And in the end I credit some of the rapid development to the language, but most of it was my dev environment. It's the little things, like being able to use the Visual Studio form designer to drag and drop controls onto a window. Then easily write the code behind those controls. One of the apps I wrote yesterday has four buttons, a file open dialog, a display pane, and two list boxes. The whole thing took about four hours. That's insane! And now it just works. There was one bug a colleague found this morning, that's it so far. I tip my hat to the Visual Studio guys - the end to end system they've built is wonderful.

I couldn't believe as I was finishing up yesterday that I managed to finish both apps as quickly as I had. I'm still in a little shock about it. So I guess until I get over it, pass me some more kool-aide. I'm thirsty.

Chris

Comments

  • Anonymous
    June 09, 2004
    Chris, do you think that the more you use c# vs.net you would think about changing careers to a developer?

    If so, is it hard for a tester to switch roles to a developer in Microsoft?
  • Anonymous
    June 09, 2004
    Matt,

    I don't think I'll ever be a developer. It's a different mind set. I feel confident I could learn the skills I need, but the work wouldn't be interesting to me. I wouldn't be happy as a developer.

    As for making a career switch, it's doable - but not easy. My understanding (I'm not an expert) is that to switch careers here you need to demonstrate that you have the skills of the new career while working in your current job. This is tough since you'll almost certainly have to grow certain skills that you don't use a lot now. You end up trying to mold your job to use more of them, but will also have to kick in some spare time training to get everything to where it needs to be. I haven't tried a career switch yet though, so I can't report from first hand experience.
  • Anonymous
    June 09, 2004
    Thanks Chris for answering my questions.

    I think an elegant way for a tester to demonstrate developer skills is to design automated test programs (like the ones you mentioned in the blog entry). Is this enough evidence of developer skills, or do you need to do more?

    Does developer certification like MCAD make a difference in terms of demonstration of dev skills?
  • Anonymous
    June 09, 2004
    Just wanted to share with the rest of the readers that I feel exactely like Chris, only that I'm not a Tester, but an Application/Solution Developer.

    C# and .NET changed my life. Java was the first step of the change (I loved Java at that time, too), but with .NET you are able to develop very ROBUST applications, and VERY EASY (as Chris reports), even if you do not usually have all the control you may have in C++.

    My personal phylosophy at this time is like this: I'll try to use C#/.NET by default, and only if really needed use C++. The advantages of .NET over C# are, for the most applications I need to develop nowadays, are simply many more than the disadvantages.

    I love .NET!
  • Anonymous
    June 09, 2004
    Typo: of course I meant "advantages of .NET/C# over C++" instead of "advantages of .NET over C#".

    I applogize for trying to write in English with the same speed I usually write in C# (English does not protect you from such speed mistakes, C# does) :-)