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.
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:By VB, do you mean VB.NET or VB 6?
VB.NET
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
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?
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
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 ">
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?
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.
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