Is C# Better?

  • VB was originally meant to be a hobbiest language and as such attracted a lot of people who simply did it as a hobby. Because of all of this a lot of unprofessional code was written in VB,

    With old VB having 5 million+ programmers; of course a lot of un-professional code was written.

    But also a lot of professional.

    And still, most of the code running today is COBOL on mainframe.

    A friend of mine is working on these machines. Last week he found a program which was last compiled 1987.

    That is even before the times of Windows.

  • roger.plowman (11/13/2009)


    there's rumor a long time ago that part of it's fast engines were used for sql and access, though i wouldn't hold on to that rumor.

    It's not a rumor, it's true. I was on the beta-test of the first version of FoxPro for Windows back when FoxPro was owned by Fox Software...

    after close to 10 years, i now have closure over foxpro/vfoxpro. thanks for this info.

  • Ok, just to head off any flames about VB programmers as inferior, let me simply say good programming practices are language agnostic, and no language is inherently better or worse when it comes to implementing good practices--and I include my own personal whipping-boy LISP in that.

    Maintainability, clarity, simplicity, code reuse, profuse comments, all these are possible in any language. I should know because I've done it. 🙂 Hey, I even did in it ADVSYS and *that* was a nightmare language if ever one existed. Think LISP using Notepad...

    The reason Basic in all its many forms has gained a bad reputation is because it's easier to use. Which means programmer-wannabes can go hog-wild and actually do something useful. They write butchered code, follow no programming discipline known to man, write code that's unmaintainable, and is, by and large, pond scum, but it *works*. For a given value of "works" of course.

    Other languages weren't as easy for complete novices, so they were left to the professionals.

    Want to know the definition of "professional"? 🙂 It means "someone who is paid for it".

    Notice this does not imply any skill. We've all seen (and had to rewrite) horrific examples of code written by other programmers who wouldn't know a comment if it slapped their sister. And forget maintainability.

    Oh, and structured programming? They've heard of it...

    A good programmer is a good programmer, period. Even in LISP. The longer you do it for a living, the better your code--no matter which language(s) you prefer.

    Personally I don't like C-family languages, including Java, because of their syntax. Doesn't mean I don't know how to use them, one of my first co-op jobs in college was creating a custom bidding package for a warehouse construction company.

    So avoid the trap of elitism, folks. It makes you look silly and raises hackles.

    Leave that to the OS fanbois. We're professionals, right? 🙂

  • Each programming language has its advantages and disadvantages. Problems are found with a programming language, so another one is created. To a large degree, ones personal opinion about which programing language is a religious battle. Much like asking if a Ford better than a Chevy.

    One of the great innovations of Dot NET is it is CLR. This allows various parts of an application to be written in different languages. It allows a developing team to be more diverse in its development. A team could decide to write certain portions using C#, while other portions in VB.NET to take full advantage of the best features of each language.

  • I would just like to reinforce the posts by the wise individuals who say the following:

    C# & VB are NOT the same. There are distinct cases where one or the other is the Preferable language to use. The languages expose different capabilities. They implement certain aspects and structures differently.

    A very clear case-in-point is if your application intends to interact with VSTO. (VSTO exposes Microsoft Office object models to your .NET application.) As VSTO inherits strongly from old-fashioned VBA, you'll find it way easier to develop in VB. Why? Perhaps the biggest reason is that VB allows default arguments, while C# does not. VSTO method calls can easily have 20 or even 30 params of which all but one are optional. If you're developing in VB you can specify the one or two req'd params and only the others that you need, but if you're programming in C# you will have to correctly provide a value or special reference for each of the vars.

    There are clear cases where C# is the preferred language too, and other cases where it really would come down to programmer preference or workplace bias.

    Oh, and for those of you who feel that one or the other is easier to read (; or no ;, {} or no {}) TRUST ME...these differences fade into the background part way through your first project with the language you find 'offensive' 😉

    As Gary Istvan Varga and others have said: The right tool for the right job!

  • the two languages are being merged together soon so hopefully we can have the best of both worlds (or the worst of both - possibly)

    http://www.dreamincode.net/forums/showtopic90326.htm

  • Is C# better than VB?

    It really depends on your background. If you came up through VB6 to VB.Net, they I'd say with fairly high certainty, that you would have a preference for VB.Net over C#. On the other hand, for someone who came up through C, C++, C# is a much better fit. If you can't see that, you just haven't been programming long enough yet.

    When I was going through my .Net training, there were a handful of VB programmers in the class. I can tell you that each one of the VB programmers had trouble with the C# syntax that was being taught.

    I have worked on both C# projects and VB.Net project and I can tell you (as I told the manager) I am up to 50% faster when working with C# than I could ever be with VB.Net.

    VB.Net developers tend to mix sql statements in their code behind pages for ASP.Net. That is something that C# developers tend not to do, at not the C# developers trained at Set Focus LLC in Parsippany, NJ. I can't really speak for C# developers who were self trained or didn't get trained professionally.

    Sql statements belong in a DB class. Advanced C# developers even create classes to hold the data returned by the DB class. Until I see a VB.Net project using these standards, I will forever view VB.Net as an inferior programming langauge.

    - Eric

  • be careful how you write that, it sounds as if you're saying they'll become one.

    The are being made equal on features, not being merged.

    I quote from one of the comments on your link:

    "Converge features of languages, not languages themselves (like you implied in your fear-mongering twitter tongue.gif ). C# and VB will probably stay separate languages with their respective syntaxes and quirks, but I don't think they'll morph into some VCB# hybrid. "

    if you don't have the time to do it right, when will you have the time to do it over ?

  • I've used both, but lean toward VB.NET because I came from a VB6/VBA background. I find advantages and disadvantages to each (VS 2005 version) which I understand are being gradually evened out as the software moves forward. For example I find VB's case structure easier to work with and more flexible than that of C#, but the succinctness of C# is sometimes more convenient. I presently do a lot of work in Javascript so the similarity between the two has pulled me toward C# more lately, but I still find VB more intuitive (first language you learn, etc...)

  • I have never understood what, or how people affix the term "better" to a programming language. If "better" really applied than the best programming language ever created would be the XBase dialect (dBase, FoxBase, FoxPro, etc). The dialect was the most English-like, allowed novice and even non-programmers to write good efficient code, and had language structures that made good, easily understandable sense.

    However, people love to say that C# is "ultra wonderful" because you can do so much with it, and its powerful. But one must realize that this is not any award-winning set of measures. For example, the Space Shuttle is powerful and you can do a lot with it, but if you were trying to merely go one block down the street, the Space Shuttle would be the worst technology you could choose, and would be blown away by a skateboard!

    With VB.NET and C# as the only meals on the plate now from Microsoft (realistically speaking), choosing between the two has no measure of "better". Yes, C# has some features and can do some things VB.NET does not, but if you are a novice C# is intimidating, confusing, and the structure alone a pain in the neck compared to VB.NET.

    This is an area that Microsoft has a potential disaster waiting to happen: There are many non-programmers out there such as Actuaries, CPAs, and others who are great at VBA - which is shortly going away. These non-programmers will now have to learn VSTO and (likely) VB.NET or C#. Anyone who uses Visual Studio knows, its a complex IDE. Imagine an non-programmer trying to dive into that and then trying to manage VB.NET let alone C#.

    So part of your answer is this - the world is not made up of only programmers - historically many people program who don't consider themselves 'programmers'. When VSTO becomes the standard, to these people, comparing VB.NET versus C# will be like comparing death by firing squad to death by lethal injection. The end result is the same, they're dead.

    There's no such thing as dumb questions, only poorly thought-out answers...
  • Jeff Moden (11/12/2009)


    Heh... I have an odd personal preference... I don't like languages that require semi-colons or line continuation characters. It seems that they should all be smarter than that. 😉

    I'm there with you, and I'm slightly concerned with the optional additions in T-SQL that we are moving that way in the server.

  • XML Literals in VB.Net is significantly better than the C# implementation.

    Lambdas in C# are significantly better than the VB.Net implementation.

    Other than that, it is largely a matter of personal preference.

    I'm not a fan of the semi-colon. After years of programming in Pascal, Ada, C++, and Java, I enjoy that I don't need them in VB.Net. And with 2010, the line continuation character goes away.

    I'm not a fan of the 9 line simple properties in VB.Net, but come 2010, we are finally going to see single line get/set in VB.Net.

    I'm not a fan of the curly brackets. Sure, "end if" takes 4 more characters, but by the time I have "en" typed, auto-complete will finish the rest for me.

    And like the guy mentioned in the original article, I can code faster and more accurately in a property configured VB.Net environment than C#. Entirely due to the syntax changes. If I worked for a company that favored C#, I'm sure that performance difference would disappear.

    I do think however, that any remaining VB6 developers that are looking to make the jump DO NOT go directly to VB.Net. The change in fundamentals from ED to OO languages is huge. And with the syntactical similarities between VB6 and VB.Net, a VB6 developer would be prone to approaching problems in the same was as they had in the past. Much better to break out of the ED world by learning something different with out all the preconceived expectations (Like Java or C#), then coming back to VB.Net after having learned the new fundamentals.

    -Rick

  • First language I learned was Perl. Having gone from Perl to ASP / VBScript / VB felt awkward so it was a welcome change to go to C#. I always felt VB was too verbose for my taste. I love the semicolons, parentheses, and the brevity of C# over VB.

    As to semi-colons vs. line continuation characters, I'd choose the semi-colons. I never cared for the line continuation characters needed in VB.

  • OK, I've read through tons of comments here that amount to nothing more than opinions regarding syntax and have seen very little that answers the real question aside from the VB advantage with XML. My boss has been talking about making us change to C# even though every developer here already knows VB because he is under the impression that C# is somehow superior. I've been trying to explain that it truly is just a preference. In my opinion, VB is much easier to read so I prefer it, but like most people have said there is no real advantage to using C#. I find C syntax generally just as annoying now as I did back in college in 1994. That's why I became a VB developer in the first place. I write business apps that are mainly just doing data entry and reports, but I've done my share of web development and had to use some javascript and C#. All I know is that if you put the same piece of code side by side, the VB looks a lot cleaner and it reads like more like a book. You basically have to train yourself to read the C syntax to remove all of those extra curly braces, semicolons, etc.. I like the fact that VB is verbose and easily read because I've actually taken code from my VB apps to meetings before with nontechnical users and they can even read through it and understand the logic for the most part. Try that with any flavor of C and see what you get!

  • Its not a matter of technology. Its the target audience. I'm old enough to remember the "software backlog". All the Basic language flavors were targeted toward biz analysts who are semi-technical enough to write programs to make their OWN job easier and take the pressure off the "professional" devs so they can concentrate on bigger/harder problems. Just is just like PHP is targeted to creative but semi-technical people who want a website and the perl/tkl/ruby languages take good care of sys admin tasks. C# would be difficult for the 2 later groups to use.

Viewing 15 posts - 76 through 90 (of 176 total)

You must be logged in to reply to this topic. Login to reply