The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.
I got a free copy of Visual Studio .NET 2003 from my work and I intend to use it to develop some skills beyond the VBA work I've done for the last few years (10+ years, actually, but it was always a casual, diversionary thing -- I didn't get too deep and I'd still consider myself a novice programmer) -- both for my current position and to bolster my resume.
I know that asking a vague question tends to yield vague answers, but it's OK, I'd just like to hear some nerds argue about programming languages. If the only choices (yes, the only choices) are between Visual Basic, Visual C++, Visual C#, and something called Visual J#, which would be the best to get some experience with? What are the strengths and weaknesses? Which will have the best chance of still being relevant 10 years from now? Any comments are welcome, I just ask that you stick to those four choices -- if nothing else, then just for the sake of simplicity.
vb.net or vc#.net, imo. Of those two, I personally prefer vc#.net. They both have all the same libraries available and compile to the same code, and really, if you can develop in one you can develop in the other. It just a matter of syntax, and I prefer the c-like syntax of c# over the vb based syntax of vb.net That said, I tend to see more vb.net jobs posted locally than vc#.net. Imo, having worked more with vc# than vb.net shouldn't matter, but you never know what those crazy guys who end up as hiring managers are going to think.
I am a big fan of Visual C#. I am not a fan of VB syntax and it does not have some of the functionality C# does in 2008, but overall you can do pretty much the same things with both. For job purposes, C# is the most desired programming language right now, at least in my area.
Really though, if you get a good understanding of the .NET platform itself, you'll be in good shape. The .NET languages all compile into the same intermediate language, so at the core of it going with either VB or C# will be good. They both abstract away a lot of memory management and pointer manipulation that can be very difficult for new programmers to pick up in C++.
They both abstract away a lot of memory management and pointer manipulation that can be very difficult for new programmers to pick up in C++.
Stuff like this, is it the kind of 'fundamentals' stuff that could hurt me in the long term if I'm used to having it done for me? Or is it not that important to know the ins and outs of things that C# tends to abstract away from C++?
I personally prefer C#. Now granted, I've never used J# at all, so can't comment on that, and I've never programmed C++ using the .NET framework, so I'm really just saying that C# is better than VB.NET.
Also, I don't know how different it is, but you could download free versions of VS 2005 or 2008 Express editions instead of using 2003.... (though actually after looking the 2005 edition may be gone, it may be 2008 only now).
They both abstract away a lot of memory management and pointer manipulation that can be very difficult for new programmers to pick up in C++.
Stuff like this, is it the kind of 'fundamentals' stuff that could hurt me in the long term if I'm used to having it done for me? Or is it not that important to know the ins and outs of things that C# tends to abstract away from C++?
If you plan to become a professional software developer, it is definitely important to understand how memory management works along with some other things the CLR handles for you. However, when you're just starting out it's much easier to "ignore" them and watch how they work, and as your skill grows you can increase your overall understanding.
I'd say go with C#. It's going to give you the most versatile skillset (it's almost identical to Java), and it's Microsoft's "flagship" .net language. That means that anything Microsoft does with .NET will have C# support (at least it should). An example was Silverlight, their new Flash killer, could only be developed with C# in the pre-release versions. Also, .net developer conferences like VSLive use all C# examples.
If you go to university for software eng or comp sci, you'll almost certainly learn C or C++. You will also probably learn Assembly. There is merit to learning lower-level languages so you understand what's going on, but you can definately survive - professionally - without knowing them.
I agree, go with C#. And I would check out the free VS 2008 Express edition. It's drastically improved over 2003 and you might not need the additional features of the paid version quite yet.
RandomEngy on
Profile -> Signature Settings -> Hide signatures always. Then you don't have to read this worthless text anymore.
0
Nova_CI have the needThe need for speedRegistered Userregular
edited May 2008
Definitely C#. If you ever have to learn another language, C#'s syntax is more closely related to Java and C++ than VB, while C++ can be a cruel mistress and has a steep learning curve for a first language.
I just started working C# on PocketPC devices and it's pretty nice.
A millionth vote for C#, as far as I have read, VB.NET is pretty much only around for legacy purposes (ex: supporting the massive horde of veteran programmers who have been doing VB all their lives). C# is Microsoft's baby and its not going anywhere plus the C# syntax will translate well to many other languages.
You won't suffer by learning VB.NET or C# first these days. They literally only differ in syntax. Learn either one of those that you want first, and when the time comes to learn the other you'll pretty much only have to learn small differences (such as how code blocks start and end in VB.NET versus C#).
Definitely don't go with J#, however. And I'd personally say that VC++ isn't worth it anymore unless you're going into a specific field where it's still used heavily. It's nice to learn what VC++ has to teach you, but it's not utterly necessary. And if you're just jumping into programming from the world of scripting languages, C# or VB.NET will be a nice transition (or a good place to call home).
I think J# has been discontinued (it didn't get an 08 version like the other versions) so don't climb on this sinking ship.
C++ is far too complicated for your level most likely.
That leaves C# and VB - there are a lot of debates on this comparison. Microsoft seems to be pushing C# foward but both of the languages are similiar in what they can accomplish. I say use C#, the syntax mirrors many other popular languages (such as Java, one of the most commonly used languages.) There are slight differences in potential, but nothing major last time I checked.
All the .NET stuff ends up compiling to the same stuff in the end though.
C# while significantly different from C++ also has a very similar syntax so it certainly wouldn't hurt to know C# if you decide to pick up C++ at some point. (I came at it from the other direction, as I'd learned C++ first and C# was a piece of cake to pick up because of the similarities).
All the .NET stuff ends up compiling to the same stuff in the end though.
C# while significantly different from C++ also has a very similar syntax so it certainly wouldn't hurt to know C# if you decide to pick up C++ at some point. (I came at it from the other direction, as I'd learned C++ first and C# was a piece of cake to pick up because of the similarities).
This.
bowen on
not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
C# and VB.Net are interchangeable. You can have a project with files from both languages seamlessly. They share all of the same libraries, so once you learn how to use an API in one, you can use it in the other with rarely any differences (beyond syntax) So, by that point, you can really learn both at once. However, I agree with the thread that you want to learn C# specifically. It is not as syntactically simple as VB.Net, but it won't let you be as lazy either (case sensitivity and {} and ; and so on).
On another note, saying you are a VB.Net developer has a stigma attached to it from back in the old VB days. C# developers are considered to be more technical and computer science types thatn VB.Net developers. Several people at my work (primarily VB.Net) want to switch the hiring reqs to say C# so that a better class of applicants will appear (furthermore, some C# developers wouldn't bother with such lowly things as VB.Net due to, again, stigma).
MurphysParadox on
Murphy's Law: Whatever can go wrong will go wrong.
Murphy's Paradox: The more you plan, the more that can go wrong. The less you plan, the less likely your plan will succeed.
Like Murphy said, the languages are near equal, but VB.NET has a bad reputation attached to it - the one that its programmers are unskilled newbies. I think this came about due to the previous version of VB being incredibly easy, but I don't have any first hand experience there.
So in a pool of about 100 VB developers, you get a population who migrated from the nerf environment of the prior VB language. Whereas in a pool fo C# developers, you find more experienced people who in many cases came from C++ or Java - languages with a good reputation.
Now, one might think that knowing C# means more jobs as per the above paragraph. Somewhat correct. Unfortunately the senior members of staff haven't understood the new (about 3 years I think) C# language and thus are unfamiliar with it. They do know good ol' VB though, so they employ VBers. I'm not sure which is best in this regard, but I think C# will be in the future if it isn't now.
Posts
I am a big fan of Visual C#. I am not a fan of VB syntax and it does not have some of the functionality C# does in 2008, but overall you can do pretty much the same things with both. For job purposes, C# is the most desired programming language right now, at least in my area.
Really though, if you get a good understanding of the .NET platform itself, you'll be in good shape. The .NET languages all compile into the same intermediate language, so at the core of it going with either VB or C# will be good. They both abstract away a lot of memory management and pointer manipulation that can be very difficult for new programmers to pick up in C++.
Stuff like this, is it the kind of 'fundamentals' stuff that could hurt me in the long term if I'm used to having it done for me? Or is it not that important to know the ins and outs of things that C# tends to abstract away from C++?
Also, I don't know how different it is, but you could download free versions of VS 2005 or 2008 Express editions instead of using 2003.... (though actually after looking the 2005 edition may be gone, it may be 2008 only now).
If you plan to become a professional software developer, it is definitely important to understand how memory management works along with some other things the CLR handles for you. However, when you're just starting out it's much easier to "ignore" them and watch how they work, and as your skill grows you can increase your overall understanding.
If you go to university for software eng or comp sci, you'll almost certainly learn C or C++. You will also probably learn Assembly. There is merit to learning lower-level languages so you understand what's going on, but you can definately survive - professionally - without knowing them.
I just started working C# on PocketPC devices and it's pretty nice.
we also talk about other random shit and clown upon each other
Definitely don't go with J#, however. And I'd personally say that VC++ isn't worth it anymore unless you're going into a specific field where it's still used heavily. It's nice to learn what VC++ has to teach you, but it's not utterly necessary. And if you're just jumping into programming from the world of scripting languages, C# or VB.NET will be a nice transition (or a good place to call home).
I think J# has been discontinued (it didn't get an 08 version like the other versions) so don't climb on this sinking ship.
C++ is far too complicated for your level most likely.
That leaves C# and VB - there are a lot of debates on this comparison. Microsoft seems to be pushing C# foward but both of the languages are similiar in what they can accomplish. I say use C#, the syntax mirrors many other popular languages (such as Java, one of the most commonly used languages.) There are slight differences in potential, but nothing major last time I checked.
In conclusion, C#.NET or VB.NET.
All the .NET stuff ends up compiling to the same stuff in the end though.
C# while significantly different from C++ also has a very similar syntax so it certainly wouldn't hurt to know C# if you decide to pick up C++ at some point. (I came at it from the other direction, as I'd learned C++ first and C# was a piece of cake to pick up because of the similarities).
This.
On another note, saying you are a VB.Net developer has a stigma attached to it from back in the old VB days. C# developers are considered to be more technical and computer science types thatn VB.Net developers. Several people at my work (primarily VB.Net) want to switch the hiring reqs to say C# so that a better class of applicants will appear (furthermore, some C# developers wouldn't bother with such lowly things as VB.Net due to, again, stigma).
Murphy's Paradox: The more you plan, the more that can go wrong. The less you plan, the less likely your plan will succeed.
So in a pool of about 100 VB developers, you get a population who migrated from the nerf environment of the prior VB language. Whereas in a pool fo C# developers, you find more experienced people who in many cases came from C++ or Java - languages with a good reputation.
Now, one might think that knowing C# means more jobs as per the above paragraph. Somewhat correct. Unfortunately the senior members of staff haven't understood the new (about 3 years I think) C# language and thus are unfamiliar with it. They do know good ol' VB though, so they employ VBers. I'm not sure which is best in this regard, but I think C# will be in the future if it isn't now.