Whither VB to C#?

Whither VB to C#?

Old forum URL: forums.lhotka.net/forums/t/5608.aspx


jemmer posted on Thursday, October 16, 2008

In light of Rocky's recent post about his decision to support C# exclusively going forward, we are starting to see the handwriting on the wall and are considering converting our app to C#.

We are old-time VB programmers.  Our company has invested a significant amount in the application, and we are continually extending and enhancing it.  We'll probably be doing that forever.  Our application consists of both Web and desktop components, as well as a random collection of services, daemons, and the like.  It is based on CSLA (VB version), and we have been and still are quite happy with the environment, the performance, and our productivity.

When we engaged in preliminary discussions with management about the possibility of moving to C#, of course their first reaction was "Why should we do this? What's it going to cost?".

I'm looking for some answers to the "why should we do this" part.  There are non-trivial costs, which I think we can reasonably identify, and those reasons to convert need to somehow be perceived as offsetting those costs.  There's a lot of app to convert, we need to learn the language, and I would expect some sort of productivity hit for a while as we come up to speed.

I see that there are any number of VB to C# converters out there (can anyone recommend a good one?), but I'm sure we'll still have a non-trivial amount of work addressing things a converter can't convert.

Can any help me with some reasons why it makes sense to undergo the conversion and learning curve?  Or not??

Thanks.

Michael Hildner replied on Thursday, October 16, 2008

jemmer:

I'm looking for some answers to the "why should we do this" part.

Just my opinion of course, but I don't see any benefit - I wouldn't spend a bunch of time just to have an app in a different language. At the risk of pointing out the obvious, VB.NET apps can use a .dll written in C#.

Mike

cclark replied on Thursday, October 16, 2008

By VB, do you mean VB.NET or VB 6?

jemmer replied on Thursday, October 16, 2008

cclark:
By VB, do you mean VB.NET or VB 6?

VB.NET

jemmer replied on Thursday, October 16, 2008

Thanks for the reply.

I guess the question is that the future of VB seems pretty clear to me - there isn't one.  Obviously it will be a long time before VB completely disappears, but what to do to minimize the impact when that day does eventually arrive?

I mentioned that we are continually adding to and enhancing our app. It now consists of a bazillion lines of code in several dll's, and it just doesn't seem reasonable and practical from a development (and maintenance) standpoint to mix the languages and end up with part of the app in VB and part in C#.  I'm not speaking strictly about CSLA, but rather in the broader scope of the application itself.  This is why we're considering a conversion of our application (CSLA notwithstanding) - having everything in a single language just seems to make sense from a number of perspectives.

Surely it will be easier to hire new developers with C# expertise.  Also, I don't mind learning a new language - increasing my skills is always a good thing.  But I doubt management would be too sympathetic to my desires to enhance my resume; they are hardly interested that increasing my knowledge makes me more marketable Wink [;)]

Is there any benefit to moving to C# beyond the broader availability of programming resources, and the fact that we are now programming in what may very well become a dead language?

sergeyb replied on Thursday, October 16, 2008

I would not be so sure labeling VB.Net a deal language.  Granted C# has slightly more developers, but not much more.  According to the last numbers I saw there was only about 10% difference.  VB is still under active development in Microsoft, even though this may change – but not in the near future.  My guess is that you will have many more reasons to re-write your app besides VB way before VB truly goes off the market.

 

 

Sergey Barskiy

Principal Consultant

office: 678.405.0687 | mobile: 404.388.1899

cid:_2_0648EA840648E85C001BBCB886257279
Microsoft Worldwide Partner of the Year | Custom Development Solutions, Technical Innovation

 

From: jemmer [mailto:cslanet@lhotka.net]
Sent: Thursday, October 16, 2008 5:10 PM
To: Sergey Barskiy
Subject: Re: [CSLA .NET] Whither VB to C#?

 

Thanks for the reply.

I guess the question is that the future of VB seems pretty clear to me - there isn't one.  Obviously it will be a long time before VB completely disappears, but what to do to minimize the impact when that day does eventually arrive?

I mentioned that we are continually adding to and enhancing our app. It now consists of a bazillion lines of code in several dll's, and it just doesn't seem reasonable and practical from a development (and maintenance) standpoint to mix the languages and end up with part of the app in VB and part in C#.  I'm not speaking strictly about CSLA, but rather in the broader scope of the application itself.  This is why we're considering a conversion of our application (CSLA notwithstanding) - having everything in a single language just seems to make sense from a number of perspectives.

Surely it will be easier to hire new developers with C# expertise.  Also, I don't mind learning a new language - increasing my skills is always a good thing.  But I doubt management would be too sympathetic to my desires to enhance my resume; they are hardly interested that increasing my knowledge makes me more marketable Wink <img src=">

Is there any benefit to moving to C# beyond the broader availability of programming resources, and the fact that we are now programming in what may very well become a dead language?



cclark replied on Thursday, October 16, 2008

VB.NET is not going away anytime soon, and regardless of the trends for programmers in the various .net languages, it is a very shallow learning curve to transition from C# to VB.NET and vice versa. The base class libraries, MSIL, the CLR, etc. are all the same amoung the various languages. So improvement to the core platform will always be available to any language.

C# will always have a few rarely used capabilities that VB.NET won't, such as unsafe code (and who here has used the venerable stackalloc keyword?). These are not usually needed for business application development, which is the point of these forums.

In the end, I think its whatever language speaks to you; go with whatever syntax you prefer. If you like writing inline XML, go w/ VB. If you just have to have your brackets, then C# is for you.

ajj3085 replied on Friday, October 17, 2008

I wouldn't bother converting existing code.  If you want to switch, then build new assemblies in C#.  If you have newer asp.net sites, build new pages in C# and leave existing pages in vb.net, since you can mix languages.

The concepts for each language are similar; I find C# easier just because it requires so many less keywords, but that could be because I started with C# when .Net first appeared.  Also, Classic Asp  VBScript may have put a sore taste for VB in my mouth.. Smile [:)]

JoeFallon1 replied on Friday, October 17, 2008

I agree that there is no need or reason to re-write existing code from VB.Net to C#. I would bet a lot of money that there is no valid argument that Management would ever accept to do this. It is a huge drain for "no gain".

I wish Microsoft did a better job of promoting VB.Net - it is my preferred language. But it is going to die any time soon - if ever. I think you are premature in trying to head off this coming "disaster".

VB.Net is being actively developed - look at the XML literal feature in the latest version. Awesome! VB.Net also has a lot of future potential with other initiatives that MS is developing in regards to late binding and dynamic languages. I wouldn't be in such a hurry to write off VB.Net as a dead language!

You could always write new code on C# but then you will have a mixed code base. I am not sure you would gain much by that - other than making your existing staff want to leave for a C# job somewhere.

IMO - you are worrying about something that is not a real issue right now. I would stay focused on the app instead. Or look for a C# job in a different company.

Joe

 

 

Copyright (c) Marimer LLC