Coffeehouse Thread

14 posts

C# is convincing me...

Back to Forum: Coffeehouse
  • User profile image
    pwzeus

    As I have been reading different articles and stuff
    I am start to beliving that c# is important to learn.
    Basically I was VB developer so I moved to VB.NET
    but is this enough. I mean as I was discussing in my
    longhorn topic, they may have used c# to build some part of avalon and indigo.

    I know some of the basci difference between c# and vb.net but I m confuse now about which way to go.

    Can some one help?


  • User profile image
    pwzeus

    good suggetion but do u think c# is really important then vb.net

  • User profile image
    rhm

    The best thing about .NET is that it really doesn't matter which language you write your code in, so feel free to stick with VB.NET - there's no intrinsic advantage to code in C#.

    I would suggest though that every VB.NET programmer should have a passing familiarity with C# for the simple reason that there is far more example code written in C# and if you can understand it you can save yourself a lot of time.

  • User profile image
    Maurits

    The jump from any flavor of Basic to any flavor of C is a large one.  But the gap between VB.NET and C# is the smallest gap of any between a flavor of Basic and a flavor of C.  In a very real sense, you'll just have to grasp a new syntax... the common language runtime is the same.

    Try porting some of your VB.NET apps to C# - use the C# application wizards to start off with.

  • User profile image
    androidi

    rhm wrote:
    I would suggest though that every VB.NET programmer should have a passing familiarity with C# for the simple reason that there is far more example code written in C# and if you can understand it you can save yourself a lot of time.


    I think this is a very good point!

    However there is bad examples around as well of course and whether you learn faster by going through others examples or trying to write your own - I can only say copy pasting does not really help in learning, but having some good well done examples and analyzing what exactly they do can be helpful.

    I know it's a HUGE temptation to do WinForms stuff at first - but I really suggest you avoid this at first if you want to learn the language stuff.

    Essentially the point here is, currently you have the option to go with VB.NET or C# - the learning curve will be 100% the same. But when you start to be more proficient, and want to write some application that does something - you want to know C# for the reason rhm mentioned. If you only know VB and find interesting (there's a lot) stuff written in C#, you'll have hard time telling whether those examples etc are well written and how to fix possible issues. Running a c# to vb.net converted may only make things worse in terms of bugs introduced in already buggy examples.

    So my point? Go with C#. If you still believe VB.NET is easier, do some research on the net and you'll see people saying that it was just like learning entirely new language.

  • User profile image
    harumscarum

    I really dont think it is a choice as a vb.net developer to understand c#. It seems that a majority of samples on the net is in c#. I think many people do c# because it is teh oober Tongue Out

    poor penguin Sad

  • User profile image
    Minh

    pwzeus wrote:
    I know some of the basci difference between c# and vb.net but I m confuse now about which way to go.

    I heard Dan Appleman made this argument. Learn both VB.net & C# if you're a VB developer. Because some day, somebody will pay you a lot of money to create a solution using C#. And the majority of your effort in learning a .NET language will be spent learning the base-class library. It's almost trivial to go to C# once you've mastered the BCL & VB.net.

  • User profile image
    JDanielSmith
  • User profile image
    androidi

    JDanielSmith wrote:
    Instead of C#, why not learn C++/CLI instead..



    Certainly, if you are into writing drivers or other close to kernel code. But if you do not care about the raw metal, I think it's enough if you can read C/C++ and be proficient in C#. Knowing a bit about how the machine works is always good, but I would not recommend going all C++ way unless you have interest in the areas it enables. A good C# dev can do everything a C++ developer can except for very very few cases. With the magic of /unsafe and interop, there is VERY very few limits to what you can do on future Windows platforms. And with smaller learning curve than that of going C++/CLI.

    And even if you do care about raw metal.. Like I said, it's possible in C# (more easily in future than now), but when you are that good in C# it should not be a huge leap to C++/CLI anymore.

  • User profile image
    pwzeus

    hummm really intresting

  • User profile image
    JDanielSmith

    androidi wrote:
    JDanielSmith wrote: Instead of C#, why not learn C++/CLI instead..



    Certainly, if you are into writing drivers or other close to kernel code. But if you do not care about the raw metal, I think it's enough if you can read C/C++ and be proficient in C#. Knowing a bit about how the machine works is always good, but I would not [...]



    My point (here and on my blog) is that if you're happy with VB.NET, learning C# isn't going to get you much more than a different syntax.  VB.NET and C# are pretty much interchangeable as far as features/functionality; syntax is the biggest reason to prefer one over the other.

    The biggest downside I see to C++/CLI instead of C# is less protection from yourself--it's easier to shoot yourself in the foot with C++/CLI than C#. 

    Notice I'm careful to always say C++/CLI - I'm talking about writing 100% managed code.  With managed code, you're no closer to the "raw metal" in C++/CLI than you are with C# or VB.NET.  And if you need to go there, IJW in C++ is even easier than interop, p-invoke or unsafe.

  • User profile image
    AndyC

    Learn both. AS many have said, it's fairly easy to switch between the two - 98% is just syntax.

    There are subtle advantages to each one, VB.NET is better for some things (late binding to COM objects springs to mind), C# is better for others (more UI samples, access to unsafe facilities)

  • User profile image
    Raj Tripathi

    For now there is no big difference in the 2 languages, Hey, I am not a Microsoft Employee and I dont know, but I believe that as time goes by this will change. It will be easier and more effective to use VB  to create applications with user interaction and C# will be optimized to be used in components and libraries development.
    I myself used VB in the past than moved to VB.NET. Now I am a C# Developer. I personally prefer C#.

  • User profile image
    Maurits

    The thing that bugs me about the .NET CLR is that VB.NET just doesn't taste like VB anymore, and C# just doesn't taste like C.  I understand the utility of common ground.  But I think there is still a place for C.  There may even still be a place for VB.  Thoughts?

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.