My Thoughts on .NET (11/12/2005)
I first learned GUI programming using GEM on an Atari ST (1986). When PC’s finally got a graphics capability better than CGA/EGA I started programming on Windows. That means I got serious on the PC in the Windows 3.0 time frame (1990). I learned Windows programming by going through Charles Petzold’s book, so I learned Windows programming in C. I hated laying out a GUI for GEM or Windows using resource files, so I tried out VB 1.0 when it first came out. I liked the concept but it didn’t have much capabilities. I tried it again when VB 2.0 came out, when I picked up a shrink wrapped copy for $20.00 at a Doctor’s yard sale at our local hospital. It showed even more promise but it still didn’t do all that I needed it to do. When VB 3.0 came out it pushed me over the edge. I found I could prototype my interface quickly and get things done very fast. With VB 3.0’s database capabilities it got to the point where I had to do very little in C or C++. By then I started drinking the Microsoft Kool-aid. I became an MSDN subscriber in 1994 and stopped using Borland tools.
I got lulled into the sweet spot of VB productivity through VB 6.0. I wrote a few DLL’s in C++ but there wasn’t much you couldn’t do in VB.
When the first .NET tools were in Beta I played with them and really liked C#. I thought it would be nice to have C++ without the memory management worry. I started to notice playing with simple command line programs that I could write a functional program in C++ that would run to completion faster than a C# “Hello World” program would take to start up. Because of that I have avoided using .NET for simple command line type of utilities.
Microsoft blew me away when they abandoned the VB that I love. What about my productivity! I soon discovered that the new VB .NET was a completely different language and that migrating applications was an exercise in futility. So I resigned myself to VB 6 as long as it lasts and using C# if I wanted to do something in .NET.
Fast forward 6 years or so and I’m still having to support VB 6 apps that will never get rewritten to .NET. I have tried each new release of Visual Studio and have yet to find the same level of productivity that VB 6 gave me.
My peak frustration happened when I was playing with the beta of Visual Studio 2005 and finally realizing that I will never convert the VB 6 apps to .NET. Along about that time I started researching alternatives and I found PowerBasic and RealBasic. RealBasic offered a free license to existing VB 6 owners and I picked up PowerBasic on sale. PowerBasic is amazing. It is a straight forward Basic without the VB GUI tools. There is a GUI designer that gets you started and it has the feel of programming in C back in the 1990’s. It creates small EXE’s that require no runtime, making it extremely useful to create utility programs and small applications that require no or minimal installs. It is compact enough that I carry the complete PowerBasic compilers, form designer, and editor on my USB flash drive.
RealBasic is a more modern basic that does a better job of accepting your VB 6 code than .NET does and provides you with some nice capabilities. It has a better implementation of classes than VB and it has cross platform capabilities (Windows, Linux, and MAC).
I still haven’t found a productivity boost with .NET that makes me want to use it for anything that I work on. I may change my opinion shortly as I have just started looking at XNA Studio. Anyway I’ll never be a VB .NET programmer. When I do .NET I use C#.
