• 0

C++, C# or VB.net ?


Question

I've been developing apps for VB6 and various macros for VBA for years now and I feel that now is the time to move on and invest some time learning a new language, the question being... which one?

Is C# going to take over from C++ in the future as language of choice for employers? is it worth bothering with VB.net?

Which do you recommend is worth the time invested in it?

Link to comment
Share on other sites

Recommended Posts

  • 0

I've really enjoyed c# so far. Vb and vb.net are close enough, that i don't think you'd be learning something "new."

I learned programming using c++, but i hate low level programming anymore, so dealing with pointers seems like a waste of time (you should know how they work, but I just don't bother using it anymore).

i'd go for c#, and there's a lot of reference material too.

Link to comment
Share on other sites

  • 0

C, then C++, then C#

C is common to both C# and C++. C++ is widely used and a not that much complicated. C# have a nice future and worth learning too. Once you know C, C++/C# are going to be easy to learn.

VB.net is easy, but limited and cpu intensive. You don't have to know 2 VB. C# is .NET anyway, so you will be able to use VB.NET.

/opinion

Link to comment
Share on other sites

  • 0

IMO, i think you should start learning C++. It is considered as an updated version of C (correct me if i am wrong :)) and it is the most used language these days. I am starting to learn it but i will have to wait a couple of weeks due to the exams.

Link to comment
Share on other sites

  • 0

It all depends one what you are going to do with it, I am learning C# to use ASP.NET and silverlight. Plus it can be used for other technologies like PowerShell.

Link to comment
Share on other sites

  • 0
I've been developing apps for VB6 and various macros for VBA for years now and I feel that now is the time to move on and invest some time learning a new language, the question being... which one?

Is C# going to take over from C++ in the future as language of choice for employers? is it worth bothering with VB.net?

Which do you recommend is worth the time invested in it?

Depends on what you want to do. C++ is not always the language of choice for employers. Writing applications in C++ takes more time than their C# counterparts. When you need the benefits of C++, then that's something employers will accept. However, if you don't need the advanced features of C++ and you're targeting Windows machines, then C# is the way to go.

It just depends on what you want to do.

Games? C/C++

Business applications for a company not in the software industry? Probably C#

Working for a software company creating complex applications such as Photoshop, Office, etc..? C++

So, yeah, what's your goal behind this switch? Blindly recommending you a language without knowing what you're trying to do would be the same as giving you a tool without asking you what you need.

C is common to both C# and C++.

Outside of basic syntax and case, no, it's not.

C++ is widely used and a not that much complicated.

It's much more complicated than C and C#.

Once you know C, C++/C# are going to be easy to learn.

Not really. C is not an object oriented language. C++ and C# are. C and C++ are not managed, while C# is managed. You can shoot yourself in the foot pretty easily with C/C++, while C#/.NET gives you a gun with blanks.

VB.net is easy, but limited and cpu intensive.

VB.NET applications get compiled down to IL just like C# applications are. There shouldn't be a measurable difference in runtime performance between the two.

Link to comment
Share on other sites

  • 0

C# and VB.NET are extremely similar. If you come from a VB environment, then VB.NET makes the most sense. I'd argue that there's more the learn going from VB6 to VB.NET than from VB.NET to C#. Once you made the transition to VB.NET, it's very easy to learn C#, in fact it's mainly a matter of getting used to curly braces.

C++ is another world completely, you're not targeting the same kind of software development at all.

Link to comment
Share on other sites

  • 0

My vote is for C#. It's not the best choice for consumer software, but it is big in the business world. Add on some ASP.NET, and you can venture into the web world as well.

Also, the book being linked to here is pirated (in fact, the whole site it's on is a warez site). If you like it you should at least consider buying it after sampling it illegally.

Link to comment
Share on other sites

  • 0
Depends on what you want to do. C++ is not always the language of choice for employers. Writing applications in C++ takes more time than their C# counterparts. When you need the benefits of C++, then that's something employers will accept. However, if you don't need the advanced features of C++ and you're targeting Windows machines, then C# is the way to go.

It just depends on what you want to do.

Games? C/C++

Business applications for a company not in the software industry? Probably C#

Working for a software company creating complex applications such as Photoshop, Office, etc..? C++

So, yeah, what's your goal behind this switch? Blindly recommending you a language without knowing what you're trying to do would be the same as giving you a tool without asking you what you need.

Outside of basic syntax and case, no, it's not.

It's much more complicated than C and C#.

Not really. C is not an object oriented language. C++ and C# are. C and C++ are not managed, while C# is managed. You can shoot yourself in the foot pretty easily with C/C++, while C#/.NET gives you a gun with blanks.

VB.NET applications get compiled down to IL just like C# applications are. There shouldn't be a measurable difference in runtime performance between the two.

+1

Link to comment
Share on other sites

  • 0
VB.NET applications get compiled down to IL just like C# applications are. There shouldn't be a measurable difference in runtime performance between the two.

VB.net load some library for nothing, it impact performanced, even both use CLR at the end.

And C# work fine in Linux too, not just in windows (OSX is supported too, but I never tried on it).

Link to comment
Share on other sites

  • 0
VB.net load some library for nothing, it impact performanced

Not really.

And C# work fine in Linux too, not just in windows (OSX is supported too, but I never tried on it).

Mono != .NET Framework

Mono will usually be behind whatever Microsoft is developing. The idea of develop once and deploy everywhere is good on paper, but there will be differences.

Link to comment
Share on other sites

  • 0
Point is that JAVA is dead. I predict JAVA will die and stopped being used in the next 5 years.
It's still the most popular programming language. It's on a steady decline, but that doesn't mean it's dead, far from it.
Link to comment
Share on other sites

  • 0
VB.net load some library for nothing, it impact performanced, even both use CLR at the end.

And C# work fine in Linux too, not just in windows (OSX is supported too, but I never tried on it).

The VisualBasic.dll library is pretty much pass-through. It contains the features like automatic typecasting that VB has always had. It doesn't cost any more processor time than explicit or implicit casting in C#.

And C# is fine for commercial software. Once you get used to how it and the CLR works you can optimize your programming to fit. It's not hard to write inefficient code in C++ either.

Link to comment
Share on other sites

  • 0
Point is that JAVA is dead. I predict JAVA will die and stopped being used in the next 5 years.

ya i doubt that, oracle now owns java and oracle has a huge huge investment in that framework since their app platform is based on it

Link to comment
Share on other sites

  • 0

Not a major difference between VB.NET and C# as they both get compiled to IL anyways. If you are coming from VB6 background then go with VB.NET and learn proper object orientation while using it.

After that moving to C# if you wish is absolutely no big deal. I learned C, C++ then used FoxPro for a while. Then off to VB6, then Delphi, then VB.NET and now C#.

If anyone claims that C# is better than VB.NET then they are mistaken. VB6 was crap but not the VB.NET.

Link to comment
Share on other sites

  • 0
...snip...

If anyone claims that C# is better than VB.NET then they are mistaken. VB6 was crap but not the VB.NET.

can't use unsafe code in vb.net :p

Link to comment
Share on other sites

  • 0
can't use unsafe code in vb.net :p

You can use pointers and such in VB.NET (again, same base runtime), it's just not as "nice" as C#.

Link to comment
Share on other sites

  • 0
Point is that JAVA is dead. I predict JAVA will die and stopped being used in the next 5 years.

May I ask why you think Java is/will be dead?

Link to comment
Share on other sites

  • 0

You can tell if someone is a real programmer by seeing whether they ask "what am I doing?" first or "what language should I use?" first. If you're going to work on an OS kernel, you had better know C and assembly like the back of your hand. If you're going to hack together an internal-use payroll system for your company, you'd probably want to shoot yourself if you were forced to use C.

From a learning perspective, I think it's better to start low and go up (C to C#) (start from a solid foundation), though most people seem to prefer going the other way (from C# to C) (because C# is a "softer" language).

BTW, Java died when JavaScript, Flash, and "Web 2.0" took the stole the cross-platform spotlight. Cross-platform was about all that Java had going for it anyway, and once that slipped away, it was a goner.

Link to comment
Share on other sites

  • 0
It's much more complicated than C and C#.

I'd have to disagree with this. If you can write C and can wrap your mind around object orientation, C++ is hardly a jump from C.

Link to comment
Share on other sites

  • 0
BTW, Java died when JavaScript, Flash, and "Web 2.0" took the stole the cross-platform spotlight. Cross-platform was about all that Java had going for it anyway, and once that slipped away, it was a goner.

If you're only talking about Java Applets, sure. There are still plenty of companies now that use Java for other uses. The software company I work at uses Java to do all of the work on their servers. Java is still a great alternative to the .NET platforms.

Link to comment
Share on other sites

  • 0
I'd have to disagree with this. If you can write C and can wrap your mind around object orientation, C++ is hardly a jump from C.

That's the hard part. Maybe it's not "much more" complicated, but it is more complicated. Just like VB.NET is more complicated than VB6. This original poster is coming from VB6 and VBA and said nothing about his OOP knowledge.

Link to comment
Share on other sites

  • 0
If anyone claims that C# is better than VB.NET then they are mistaken. VB6 was crap but not the VB.NET.
As a .NET, CLR language, C# is more pure. VB.NET carries over a lot of heritage that's not directly supported by the platform (late binding, special namespaces, legacy methods etc). Whether that makes C# "better" is of course subjective; VB.NET targets former VB6 developers and it's an easier transition to .NET for them.
Link to comment
Share on other sites

  • 0
If you're only talking about Java Applets, sure. There are still plenty of companies now that use Java for other uses. The software company I work at uses Java to do all of the work on their servers. Java is still a great alternative to the .NET platforms.

No, I was not. The big hubbub behind Java at its inception was the whole cross-platform thing. Applets were just one (poor) manifestation of that. In the consumer sphere, web/cloud apps are slowly displacing traditional apps and Java has no role in that. The big reason MS got scared about Java and decided to do .NET in response wasn't because Java was managed and took care of things like memory allocation. It was because Java could be a platform. Turns out that those fears were unfounded and that the rise of an alternative platform wouldn't be for another decade and take the form of web apps (in that sense, Microsoft was more correct about their fear--though wildly premature--of Netscape becoming a platform than of Java becoming a platform).

In the enterprise, Java still has some sway because it's a managed environment and because it caters well to the find-an-existing-class/library-to-do-this model of development, but in that arena, it's taking a beating from .NET, which is basically Microsoft's Java without the cross-platform element (if you discount curiosities like Mono or dotGNU).

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.