I have been a Microsoft Visual Basic developer since learning VB6 in 1999 and I have come to the conclusion that learning VB6 started me on a path which now see’s me backed into a bit of a corner with nowhere left to go.

My first introduction to ‘coding’ was writing batch scripts and HTML pages but then when I started my first job I was introduced to the world of ‘programming’ and VB6. This lead me to buy the book ‘Learn to Program with Visual Basic’ by John Smiley. This book walked you through the process of building a desktop application as if you where part of a class of students. From what I remember it focused on defining the User Interface & Requirements first before writing a single line of code.

This was a great book for me, it got me up and running with ‘Event Driven Programming’ and helped me get a position as a Web Developer at the company I was working at. So all is well…

Object Orientated What..?!?!##

The one thing this book did not teach me was about Objects, not a fault of the book but because Objects where not a big part of Visual Basic 6 and you could get on just fine without them. Unfortunately at the time I also did not have anyone else around me to teach me Object Orientated Programming so I blissfully went on with my career without taking too much notice of them.

With my career progressing further into Web Development and Classic ASP, SQL Server, HTML, JavaScript. I managed just fine without objects and even managed to land a few more job roles.

Our saviour that is VB.Net##

Then came along the .Net Framework, with the promise that Visual Basic will be seen as a fully Object Orientated Language and finally put us on par with those pesky C++/C# developers. This gave me a bit of renewed hope for Visual Basic and I continued down that path and set about learning .Net 2.0 (I was fortunate enough to skip 1.0)

Although I started using Visual Basic .Net it was all too easy to continue along the same path of VB6 and use the old functions such as ISNOTHING, ISNUMERIC etc.. and you could get along fine without Objects…

Learning .NET still opened up many opportunities for me with further career progression as a Senior Developer and starting my own Web Development Agency. Although I tried to use objects within my code, I still had no reason to use Inheritance, Interfaces, Polymorphism etc.. as my employers / customers did not care about such things. What I did have a knack of doing was delivering what the my customers wanted which worked well for everyone.

Where are all the VB.Net Developers##

When I decided to go back into full time employment, I noticed that the jobs market was a little bit dry for VB.Net developers. For every 1 VB.Net Developer job there where at least 2 C# developer jobs. Taking a look today that ratio seems to have changed to about 1:10.

More worryingly you will be hard pressed to find any Microsoft staff or events where Visual Basic is ever used in demo code. Even the Microsoft Visual Basic Team have gone quiet.

Being exclusively a Visual Basic developer is a difficult way to live. You are afraid to tell anyone you language of choice and god forbid anyone ever see’s your code…

You can’t blame the language##

I appreciate that I cannot fully blame the language for some of the choices I have made in the past, and the language used is only one part of a programmers skillset. But I do believe that some of those early choices have held me back over the years.

Nowhere left to go##

So Visual Basic might not quite have ruined my developer life as I am happy in the job I have today but I am confident that it has limited my options in the past and my career would have been different if I started with C++ those many years ago.

I think it is the last job I will ever be employed in as a VB.Net Developer. My future lies in C#, Becoming better acquainted with the SOLID Principles and generally improving my development skills. The primary resource to do that is Pluralsight Developer Training but that is another blog post.