I'm a newbie programmer of 4 yrs... Not just starting but pretty young compared to the company here. I started with VB 6 and have been woking with VB.net and ASP.net for about a year. I'm thinking about learning C#.Net simply because I see more jobs
that are requesting the C# skill set.
Can anyone provide me with a recomendation as to whether I should stick with VB.net for a while longer or go ahead and take the plunge into C#?
Thanks in advance,
I'm a newbie programmer of 4 yrs... Not just starting but pretty young compared to the company here. I started with VB 6 and have been woking with VB.net and ASP.net for about a year. I'm thinking about learning C#.Net simply because I see more jobs that are requesting the C# skill set.
Why not do both? I'm diving into C# myself at the moment, but as long as I'm not really experienced in it, I still code VB.NET for a living.
Also, don't fall into the "C# is for real programming and VB isn't" mentality. I work on Visual Studio and 90% of the work I do in managed code is in VB.
I mean Microsoft.VisualBasic.dll is written in VB! You'd be surprised how many VS components are...
Here is my take. My first language was basic (in the early 80's) on a TRS-80. Then I learned c, and c++; When VB came out I was in love, and I very much enjoyed the return to the syntax. I learned vb.net easily, and I was hesitant invest any more time in learning any more languages when c# came about. By this time I had something like 30 different languages in my arsenal, including Perl, PHP, and Java. The last thing I needed was another language.
That being said, a colleague encouraged me to look closer and so I did. C# is a dream! The symphony is a blend for me, all the benefits of C,C++,JAVA,VB, and PERL in a single language.
Every programmer is different. The CLR gives no bias to C#, and VB.NET is just as powerful as C# (if you do your homework), however your background and experience with tradition c languages will affect your learning curve.
Go with your gut, if its tempting you and you know "c" go for it, you won't be sorry. If you're doing it just to be in a different column on a list of programmers that know how to program in xyz, language, stay with what you know and build on that.
Why not learn both? Learning the constructs and syntax of either VB.NET or C# is not such a grand undertaking.
I think the the challenge with .NET lies in:
- coming to grips with the .NET Foundation Class Library (FCL).
- learning about the CLR
- learning about deployment strategies
- learning about applying design patterns to .NET apps using the right classes from the FCL
- learning about security in .NET
- web services
- and the list goes on...
If you have been using VB.NET for a year already, then I think you will find picking up on C# fairly academic.
Here is a good starting point:
Go for it! C# Language Specification
I agree with everything said above - both languages give you access to the full power of the framework. I did want to point you to the roadmap for VS: http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx#2005
This is the biggest challenge we seem to face at MSDN, "how" to present all the content. With everyone using everything differently, this has been a huge undertaking and we do hear from the frustrated customers, and ever more rare is the "satsified" customer...
This is mainly a usability issue IMHO, maybe if everyone would just start thinking and moving exactly the same
For my fellow VB users out there, the new My classes coming in Whidbey should be awesome when it comes to usability.
Check out what you have in the PDC drops as well as the Community Tech Preview (or whatever they're calling it now) and you can see some pretty amazing stuff. Like a file copy function that shows the windows standard animated flying file dialog or a printing mechanism that's actually sane and easy to use.
My is all about taking the power of the framework and making it usable (it's also amazingly extensible). I can forsee some C# devs trying to get their hands on it after we ship whidbey...
I never plan on using VB.Net. I am a hardcore BASIC fan and have been using it for years, but when Microsoft decided to mutate BASIC into a C look-alike they lost me. If I wanted to use C I would use C, nobody wants C with BASIC syntax that is completely useless.
I personally believe the people who designed VB.Net hate BASIC and BASIC programmers that is the only way to explain what they have done to a once effective and wonderful language.
If they have released VB 7.Net, so it followed the VB6 and BASIC language syntax but added more features it would have been a hit.
I personally feel I could have done a better job with VB.Net, just give me a copy of the BASIC ISO standard and borrow a few wonderful ideas from PowerBasic, C/C++ and you have an even better development system. When I say borrow, I don’t mean copy.. When you borrow ideas you adapt them, when you copy you just dump them in.
I would like to know if the Microsoft Management wanted VB.Net to fail. I mean I can understand a C/C++ programming team trying to sabotage VB.Net but shouldn’t the management have stepped in and say, “No wait! We will lose customers with this.” I also wonder if Microsoft was trying to do something new with VB.Net for the sake of being new. Like “Well we have re-build C so why not BASIC?” There’s nothing wrong with that, except when you re-built C, you kept it with the same syntax and just moved a lot of language features over so the C programmers feel happy… but for BASIC it is not any of that.
I also wonder if Microsoft was trying to do something new with VB.Net for the sake of being new. Like “Well we have re-build C so why not BASIC?” There’s nothing wrong with that, except when you re-built C, you kept it with the same syntax and just moved a lot of language features over so the C programmers feel happy… but for BASIC it is not any of that.
I think that one of the reasons for such a structural change was the idea that they wanted to make VB truly object oriented, and unfortunately the BASIC syntax doesn't lend it to some of the higher OOP principles.
That being said, 90% of the programmers out there don't really need these OOP functionalities and don't want to deal with the issues that brings to the table, and in trying to turn VB into a "true and powerful" language I'm pretty sure they had to jump through quite a few hoops.
It's like taking a sports care and trying to make it into an amphibious vehicle. Sure you can do it, but it ruins the original intent and you're going to lose a lot of people who enjoy their sports cars.
If you are a sort of fellow who does not want any stigmas to be associated with their work than go with c#, If that sort of thing does not bother you then stick with VB.Net. I remember being at a convention a year ago where VB was characterized by the presenter of one session as being riddled with 'Taliban' programmers/programming. "His words not mine" I do remember being a bit put off by those comments, and while its generally accepted that todays VB is not your fathers VB, there are still some out there who might harbor that kind of "Flawed" thought.
It might come into play in an interview. Would you want to have to fight it in and interview?
Of course you could hedge your bets and get good at one and be conversant with the other. Remember its the API that give all this stuff its go-go juice. The rest is mostly syntactic sugar.
But VB 6 leads its self MORE towards OOP than C++ does. Because VB 6 uses COM as a basis for operation it is easier and more technically correct than C++ has ever been.
Just because 90% of VB programmers have no idea how to use it...
Once you get over the syntactical differences, there isn't much to worry about. My approach is this though, design patterns are important, language syntax can be looked up in ~2 minutes. If you know the functionality provided by the foundation classes, and when to use which, you can easily look up the syntax. As far as a real world reason why, the company I work for chose to standardize on C# because it mitigated the learning curve for both C++, and VB folk. That's not to say that we don't write any more C++ or VB code, just that we write more C# than either. So from that standpoint, I would agree with other posters here who have said, keep going with VB, become conversant with C#. You'll be suprised (I think) at how quickly you can implement something in C# (even though it's new to you) vs VB (even though you already know it) once you get over the sytactical differences. Hope this helps... sorry I couldn't add line feeds, this site doesn's support my browser very well
The only way to resolve this conflict aside from scholarly discourse is a mud wrestling match between swimsuit models.
Just a thought.
Manip wrote:But VB 6 leads its self MORE towards OOP than C++ does. Because VB 6 uses COM as a basis for operation it is easier and more technically correct than C++ has ever been.
I don't want to get sucked into another religious war regarding VB6 and VB.NET (I wasted far too much time over on the DevX newsgroups - before they dropped NNTP), but COM != OOP.
Just go on learning C#, nothing difficult and it's quiet simple.
More VB.Net vs. C# discussion? Just learn assembler.
Jorriss wrote:More VB.Net vs. C# discussion? Just learn assembler.
And it's working, I'm gallous of you already.