“Reports of my death…”

Ok, so another article claiming that “VB is dead” (or, at least, will be one of these days). Nothing particularly new. What was interesting about the article, though, was a pair of quotes from Uttam Narsu from Forrester Research. In the middle of the article he says:


[developers] ask if VB is the best language to do OO development. And generally the answer is no.

Then the same guy who gave the above quote later says:


[…] developers can produce programs faster with VB than with C#.

So… C# is a better language to do OO in, even though it takes longer to write an OO program in C# than it does in VB. That seems contradictory to me. (There also a statement by another analyst in the article about all the “baggage” that VB carries, which I also wonder about, given where the “C” in “C#” comes from…)

8 thoughts on ““Reports of my death…”

  1. HumanCompiler

    Gotta love that stuff! Or not! πŸ˜› Good points you’ve got…glad you posted that! πŸ™‚

    Better RAD development is souly what’s kept me in VB.NET over C# and it’s worth it! πŸ™‚

    Reply
  2. Martin Spedding

    The article is interesting as it says that VB.Net brings a lot of VB baggage. Funny thing is that the biggest complaint from the VB supporters was that VB.Net changed too much i.e. did not have enough baggage. I loved programming in VB, especially from VB4 onwards. However, I always created classes and developed my projects as a set of components.

    So am I programming in VB.Net or C# ? Well I decided to go with C#. Why you may ask. I got sick of having defend VB as a " real" language. I had been programming in Java and it seemed closer in style to the Base Component Libraries. I can read VB.Net but I just find it too verbose.

    Reply
  3. Slobodan

    "There also a statement by another analyst in the article about all the "baggage" that VB carries, which I also wonder about, given where the "C" in "C#" comes from…) "

    C# take some syntax from C by they didn’t make printf like you do with VB
    Left and all other stuff.
    I decompiled with Reflector Left from Microsoft.VisualBasic namespace
    class String
    [return: DefaultMember]
    public static string Left(string str, int Length)
    { string text1;
    if (Length < 0)
    {
    throw new ArgumentException(Utils.GetResourceString("Argument_GEZero1", "Length"));

    }
    if ((Length == 0) || (str == null))
    {
    return "";
    }
    if (Length >= str.Length)
    {
    return str;
    }
    return str.Substring(0, Length);
    }
    Can you explain me while you
    declare
    string text1;
    when it is not used.
    Can you fix that in next service pack?
    This code in C# would not compile (by default ).
    One more reason why C# is mutch better than VB.NET.
    C# is designed for .NET and is the best language for that
    programming .NET apps.
    Maybe sombody is more productive with VB.NET. but that is his problem not
    mine.

    Reply
  4. paulvick

    Warning users about unused local variables (and unassigned local variables and unassigned return values) is definitely something we’ve gotten requests for and are considering for a future release. On the other hand, I’m not sure what that has to do with .NET, per se…

    Reply
  5. slobodanfilipovic

    My point is that C# is new language, designed for .NET.
    They took all good things from
    Java, Delphi, VB (for each), C++…
    They didn’t need to care about legacy code and legacy programmers, and to make compromises between good design and legacy code.
    While you are planning to include “warning users about unused local variables”, which was option in Delphi 1.0.
    They (designers of c#) will include generics (templates in C++) and other cool staff.
    If you don’t have legacy code in VB use C#.

    Reply
  6. Mark Hurd

    I’ve made some comments for more recent entries in this blog why I believe VB.NET can produce more elegant code, but the important outcome of all the C# vs VB.NET "discussions" is that all professional programmers should be able to use the language that best suites the problem being solved.
    The explicit pre-condition tests for VB commands, as illustrated for Left above, /should/ be eliminated by the JIT when possible, due to inlining, as should the unused local variable.

    (Of course, I agree that the unused local variable shouldn’t have made it to the released build, but it is a minor priority, in itself — a number of code review documents do say they should be seen as flags for further review, as they’re often due to other mistakes.)

    Reply
  7. Me

    In the real world how often do any of us produce a well designed OO solution? I would say that 80% of the benefits of having OO in a language comes from making the framework easer to use. A lot of applications out there are form based, therefore having the best RAD support for forms can have a bigger effect then having the most clean OO support. How much time do you save by having errors underlined in red before you hit the compile buttons?

    In other words C# can be the best OO language at the some time as VB.NET is the most productive language for APPLICAION programmers.

    Reply
  8. Same Difference

    The difference between C# and VB.Net doesn’t even matter in .Net. The beauty is that we can use an assembly no matter what language it was written in. I prefer C# because I started in C++… However, I did learn VB.Net a year before I learned C#.

    As a side note, I do believe that Microsoft favors C#. For example, C# has all the refactoring support in 2005, but VB got left out…

    Also, when YELLING at least yell with correct spelling πŸ™‚

    Reply

Leave a Reply