Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. 10 Reasons Why Visual Basic is Better Than C#

10 Reasons Why Visual Basic is Better Than C#

Scheduled Pinned Locked Moved The Lounge
csharpcomquestion
143 Posts 57 Posters 142 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Anthony Mushrow

    OriginalGriff wrote:

    1. And what do you think ReDim Preserve is doing behind the scenes? At least with the C# version it is obvious that this is going to consume time and memory...

    The whole point conveniently ignoring the obvious solution, which would be that if you want to go around resizing your arrays you should use something like List<T> and not a regular array in the first place.

    -SK Genius

    Vehicle Simulation Demo - New and Improved!

    OriginalGriffO Offline
    OriginalGriffO Offline
    OriginalGriff
    wrote on last edited by
    #64

    Yep. I almost never declate arrays these days - with the exception of byte[] and so forth to handle conversions between image and stream. But the existence of ReDim encourages the lazy to use an array - not thinking about the wasted memory and effort it involves behind the scenes.

    Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water

    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

    1 Reply Last reply
    0
    • J Johnny J

      VB has both is and output parameters...

      Why can't I be applicable like John? - Me, April 2011
      -----
      Beidh ceol, caint agus craic againn - Seán Bán Breathnach
      -----
      Da mihi sis crustum Etruscum cum omnibus in eo!
      -----
      Just because a thing is new don’t mean that it’s better - Will Rogers, September 4, 1932

      D Offline
      D Offline
      dan sh
      wrote on last edited by
      #65

      Thanks! Didn't knew that.

      "The worst code you'll come across is code you wrote last year.", wizardzz[^]

      A 1 Reply Last reply
      0
      • J Jorgen Andersson

        Here[^] Now, where was that bulletproof vest? <Takes cover under a fireproof blanket> A bulletproof vest can take at least one 45ACP, right?

        Light moves faster than sound. That is why some people appear bright, until you hear them speak. List of common misconceptions

        S Offline
        S Offline
        Simon_Whale
        wrote on last edited by
        #66

        I do love the fact that a bunch of developers including myself read this article and took it seriously, but upon reading it again I noticed this at the top of the article. Andy ‘Wise Owl’ Brown decided to write a tongue-in-cheek rant whilst he could still remember the pain-points.

        Lobster Thermidor aux crevettes with a Mornay sauce, served in a Provençale manner with shallots and aubergines, garnished with truffle pate, brandy and a fried egg on top and Spam - Monty Python Spam Sketch

        J 1 Reply Last reply
        0
        • J Jorgen Andersson

          Here[^] Now, where was that bulletproof vest? <Takes cover under a fireproof blanket> A bulletproof vest can take at least one 45ACP, right?

          Light moves faster than sound. That is why some people appear bright, until you hear them speak. List of common misconceptions

          G Offline
          G Offline
          Gary Wheeler
          wrote on last edited by
          #67

          I sincerely hope checked and the article is satire. If it isn't, the guy's I wrote the following because I'm an idiot: 1. Writing software well is a matter of attention to details. If you can't be arsed to even get the name of something right, you're probably going to screw up more important things. 2. If you're going to criticize a language, at least get your examples right. His C# code doesn't duplicate the logic in his VB. 3. Learn how your IDE works, moron. I can assign events in my C# code any time I like, and I'm using VS2008. 4. These are operators, which I would expect to be concise. Can you imagine writing this:

          proportion = openquantity openquantity a addto b addto c addto d closequantity dividedby e closequantity multipliedby 100

          instead of

          proportion = ((a + b + c + d) / e) * 100

          Secondly, programming is symbol manipulation. As in my response to #1, if you can't get this right, there are a whole bunch of other things you won't get right. 5. Sigh. Snippets in the IDE. The guy's like a carpenter who has to be told how to use a hammer every morning. 6. They's in the bloody CLR library. In 30 years of programming, not once have I needed to use the mortgage payment function. As far as 'is number' goes, I do localized applications. The library functions for validating localized numbers are usually inept. The .NET versions are actually pretty good, from what I've seen. They seem to work well for common number formats found in the U.S., Europe, and Asia. 7. VB's line continuation character is as annoying as Pascal's use of the semicolon as a statement separator. It's a special case you have to remember all of the time. At least with the C-style languages, you just put the semicolon at the end of every statement. Period. 8. To-may-toe, To-mah-toe. 9. VB encourages you to be sloppy. Once again, point #1. 10. C# gives you a whole lot more control over data structure transformations. With a language that encourages sloppiness, I wouldn't expect it to handle this kind of thing in a fashion that performed well.

          Software Zen: delete this;

          P J 2 Replies Last reply
          0
          • OriginalGriffO OriginalGriff

            To add to the above: 1) Case is case - and people use it for different things. Personnaly, I like case to be maintained as it ensures camelCase it not lost halfway through - and since Intellisense sorts it out for you, it is hardly a problem. 2) I will give them that one - but the case statement is not meant for things like that: if statements are. 3) Is it so much work to do this? Rename works to re-assign the handler in C# anyway... 4) If you can't work out symbols for operators, perhaps you would be better off with COBOL... 5) I prefer the C# snippet "prop":

            prop[TAB][TAB]

            public int MyProperty { get; set; }

            Ready to be filled in... 6) Char.IsNumber anyone? 7) For the same reason that most languages have a full stop at the end of the sentence. 8) Doctor Jones, anyone? Professor Plum? Constable Smith? Mr White? Mrs Black? 9) Strictness is a virtue of C# not a problem - hence the existance of type safe List<T> rather than ArrayList 10) And what do you think ReDim Preserve is doing behind the scenes? At least with the C# version it is obvious that this is going to consume time and memory... IMHO Andy Brown needs to get a bit more real-world experience before shooting his keyboard off...

            Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water

            P Offline
            P Offline
            Peter Adam
            wrote on last edited by
            #68
            1. type casting: one can save a pair of parentheses, compared to C#.
            OriginalGriffO S P 3 Replies Last reply
            0
            • OriginalGriffO OriginalGriff

              To add to the above: 1) Case is case - and people use it for different things. Personnaly, I like case to be maintained as it ensures camelCase it not lost halfway through - and since Intellisense sorts it out for you, it is hardly a problem. 2) I will give them that one - but the case statement is not meant for things like that: if statements are. 3) Is it so much work to do this? Rename works to re-assign the handler in C# anyway... 4) If you can't work out symbols for operators, perhaps you would be better off with COBOL... 5) I prefer the C# snippet "prop":

              prop[TAB][TAB]

              public int MyProperty { get; set; }

              Ready to be filled in... 6) Char.IsNumber anyone? 7) For the same reason that most languages have a full stop at the end of the sentence. 8) Doctor Jones, anyone? Professor Plum? Constable Smith? Mr White? Mrs Black? 9) Strictness is a virtue of C# not a problem - hence the existance of type safe List<T> rather than ArrayList 10) And what do you think ReDim Preserve is doing behind the scenes? At least with the C# version it is obvious that this is going to consume time and memory... IMHO Andy Brown needs to get a bit more real-world experience before shooting his keyboard off...

              Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water

              A Offline
              A Offline
              Aamir Butt
              wrote on last edited by
              #69

              For 2. he says that "It’s easy to forget to type in each of these Break statements!" conveniently ignoring that C# Compiler gives you an error saying that Control cannot fall through from one case label to another...

              A year spent in artificial intelligence is enough to make one believe in God

              S C 2 Replies Last reply
              0
              • P Peter Adam
                1. type casting: one can save a pair of parentheses, compared to C#.
                OriginalGriffO Offline
                OriginalGriffO Offline
                OriginalGriff
                wrote on last edited by
                #70

                And just think of the saving in wear and tear on the '[' and ']' keys! :laugh:

                Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water

                "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                1 Reply Last reply
                0
                • V V 0

                  Fully agree, I more had the impression: 10 reasons why this guy doesn't know sh*t and I wouldn't like to have him on my team. :-D

                  V.

                  S Offline
                  S Offline
                  sergiogarcianinja
                  wrote on last edited by
                  #71

                  Totally agreed.

                  1 Reply Last reply
                  0
                  • J Jorgen Andersson

                    Here[^] Now, where was that bulletproof vest? <Takes cover under a fireproof blanket> A bulletproof vest can take at least one 45ACP, right?

                    Light moves faster than sound. That is why some people appear bright, until you hear them speak. List of common misconceptions

                    J Offline
                    J Offline
                    Jeremy Hutchinson
                    wrote on last edited by
                    #72

                    I'm really surprised no one else caught this, but his example of "stupid symbols" is incorrect.

                                                        C#      VB.Net 
                    

                    Test if two conditions are both true && and
                    Test if one or other condition is true || or

                    The C# equivalent of "And" is "&", and the the VB.Net equivalent of "&&" is "AndAlso". For a guy who's worried about how often he's going to have to hit the shift key, I'd think he'd prefer these quick symbols to the verbosity of VB.

                    1 Reply Last reply
                    0
                    • L Lost User

                      They both the same for Mr.CLR

                      M Offline
                      M Offline
                      Michael Haines
                      wrote on last edited by
                      #73

                      Yes! "I am rarely happier than when spending entire day programming my computer to perform automatically a task that it would otherwise take me a good ten seconds to do by hand." - Douglas Adams

                      1 Reply Last reply
                      0
                      • C CPallini

                        They are _basic_ally the same, however VB syntax smells horribly.

                        Veni, vidi, vici.

                        S Offline
                        S Offline
                        sergiogarcianinja
                        wrote on last edited by
                        #74

                        Actually, they aren't the same. VB.net was created with backwards compatibility with VB 6.0, with in mind, some ugly things happens (some of these VB programmers like), like the automatic type conversion, the rounding of integers, the internal VB functions, and the list goes long. The first version of .net, come in times when the Java are becoming popular between desktops and Delphi are going to be the most used language to desktop programming. Microsoft created "a plus" for the VB 6 programmers and introduced its brand new language, the C#. As a experienced VB.net and C# programmer (and ok, Delphi too), I rather say that VB is one of the worst languages I know. His apparently easy syntax do any people think they can develop, and almost all programmers that use VB.net as his primary languages aren't good programmers at all. This is my opinions, you can start offending my mother now. :D

                        C C 2 Replies Last reply
                        0
                        • J Jorgen Andersson

                          Here[^] Now, where was that bulletproof vest? <Takes cover under a fireproof blanket> A bulletproof vest can take at least one 45ACP, right?

                          Light moves faster than sound. That is why some people appear bright, until you hear them speak. List of common misconceptions

                          A Offline
                          A Offline
                          Andrea Palmate
                          wrote on last edited by
                          #75

                          That's normal that C# developers thinks that VB is s*it.. it is like C/C++ and C#... C# developers thinks to be cool just because there is a "C" char in the name....

                          1 Reply Last reply
                          0
                          • P Peter Adam
                            1. type casting: one can save a pair of parentheses, compared to C#.
                            S Offline
                            S Offline
                            sergiogarcianinja
                            wrote on last edited by
                            #76

                            VB has a very useful typecasting.

                            Dim num As Integer = "one"

                            Very useful. Any VB programmer who thinks it can criticizes any other language, MUST use Option Strict.

                            P 1 Reply Last reply
                            0
                            • J Jorgen Andersson

                              Here[^] Now, where was that bulletproof vest? <Takes cover under a fireproof blanket> A bulletproof vest can take at least one 45ACP, right?

                              Light moves faster than sound. That is why some people appear bright, until you hear them speak. List of common misconceptions

                              P Offline
                              P Offline
                              Pascal Ganaye
                              wrote on last edited by
                              #77

                              I can write both languages equally. I just hate the snobbery that is displayed by some C# programmers. The differences between the languages is getting slimmer with every version. As I see it C# is much nearer to VB.Net than it is to C. There are many things that were in VB long before they appeared in C#. The article is right, the Visual Studio IDE recompile on the fly and show syntax errors faster in VB than it does in C#. This is not about the language but it can be taken into account when you choose a language. This days I work mainly in C# and I enjoy it. The one thing I miss is the ability to put a property in a ref our out parameter. VB can do that and C# (at least 3.5) can't.

                              P 1 Reply Last reply
                              0
                              • J Jorgen Andersson

                                Here[^] Now, where was that bulletproof vest? <Takes cover under a fireproof blanket> A bulletproof vest can take at least one 45ACP, right?

                                Light moves faster than sound. That is why some people appear bright, until you hear them speak. List of common misconceptions

                                L Offline
                                L Offline
                                Lost User
                                wrote on last edited by
                                #78

                                All of you are missing the main point: Both C# and VB are better than Java.

                                1 Reply Last reply
                                0
                                • S sergiogarcianinja

                                  VB has a very useful typecasting.

                                  Dim num As Integer = "one"

                                  Very useful. Any VB programmer who thinks it can criticizes any other language, MUST use Option Strict.

                                  P Offline
                                  P Offline
                                  Peter Adam
                                  wrote on last edited by
                                  #79

                                  Anything is more useful than the (type)object of C# beyond the most basic typecasting. Delphi's type(object) and VB's CType(object,type) leaves us something that can be followed by a dot at least.

                                  P S 2 Replies Last reply
                                  0
                                  • S sergiogarcianinja

                                    Actually, they aren't the same. VB.net was created with backwards compatibility with VB 6.0, with in mind, some ugly things happens (some of these VB programmers like), like the automatic type conversion, the rounding of integers, the internal VB functions, and the list goes long. The first version of .net, come in times when the Java are becoming popular between desktops and Delphi are going to be the most used language to desktop programming. Microsoft created "a plus" for the VB 6 programmers and introduced its brand new language, the C#. As a experienced VB.net and C# programmer (and ok, Delphi too), I rather say that VB is one of the worst languages I know. His apparently easy syntax do any people think they can develop, and almost all programmers that use VB.net as his primary languages aren't good programmers at all. This is my opinions, you can start offending my mother now. :D

                                    C Offline
                                    C Offline
                                    CPallini
                                    wrote on last edited by
                                    #80

                                    sergio_ykz wrote:

                                    VB.net was created with backwards compatibility with VB 6.0

                                    Nope. That's not true (at least in my opinion).

                                    sergio_ykz wrote:

                                    This is my opinions, you can start offending my mother now.

                                    I balanced the silly 1 you got.

                                    Veni, vidi, vici.

                                    1 Reply Last reply
                                    0
                                    • J Johnny J

                                      I really don't understand the C# vs VB antagonism. If you're a professional programmer, you should be able to code in both languages with same ease. When C# people roar out against VB, they're being plain childish. As are the VB people when they claim that they don't understand C#.... I code in both languages and like them both!

                                      Why can't I be applicable like John? - Me, April 2011
                                      -----
                                      Beidh ceol, caint agus craic againn - Seán Bán Breathnach
                                      -----
                                      Da mihi sis crustum Etruscum cum omnibus in eo!
                                      -----
                                      Just because a thing is new don’t mean that it’s better - Will Rogers, September 4, 1932

                                      P Offline
                                      P Offline
                                      Pete OHanlon
                                      wrote on last edited by
                                      #81

                                      Johnny J. wrote:

                                      If you're a professional programmer, you should be able to code in both languages with same ease.

                                      Why? While they both target the same CLR, the syntax of the two languages is sufficiently different that while you may be able to code in one fluently, you might find the other more complicated. This has nothing to do with being a professional programmer. I don't dislike VB.NET, nor do I particularly like it. I am ambivalent towards it - if it had never been created, I wouldn't have felt the need to bemoan it; but similarly I don't feel the need to bemoan its existence. As my background is C/C++, the syntax of C# feels more natural to me, but I fully appreciate that it feels alien to a VB.NET programmer. That doesn't mean they aren't of the same standard as me, it just means they are familiar with a different syntax.

                                      *pre-emptive celebratory nipple tassle jiggle* - Sean Ewington

                                      "Mind bleach! Send me mind bleach!" - Nagy Vilmos

                                      My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility

                                      1 Reply Last reply
                                      0
                                      • P Peter Adam

                                        Anything is more useful than the (type)object of C# beyond the most basic typecasting. Delphi's type(object) and VB's CType(object,type) leaves us something that can be followed by a dot at least.

                                        P Offline
                                        P Offline
                                        PIEBALDconsult
                                        wrote on last edited by
                                        #82

                                        s = ((string) o).Trim()

                                        P 2 Replies Last reply
                                        0
                                        • J Jorgen Andersson

                                          Here[^] Now, where was that bulletproof vest? <Takes cover under a fireproof blanket> A bulletproof vest can take at least one 45ACP, right?

                                          Light moves faster than sound. That is why some people appear bright, until you hear them speak. List of common misconceptions

                                          M Offline
                                          M Offline
                                          Matthew Graybosch
                                          wrote on last edited by
                                          #83

                                          The last reason, involving extending arrays, shouldn't be relevant. If you're wasting time extending arrays instead of manipulating a generic list, and then calling List.ToArray() (or List(of T).ToArray() if you insist on VB) when you're done manipulating the collection's contents and need to return the array, then you're probably doing it wrong.

                                          When posting here, I do not represent anybody but myself.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups