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.