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 126 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 AspDotNetDev

    Most of that is garbage, and some of it is plain wrong. For example, all of this is valid in C#:

    double d = Microsoft.VisualBasic.Financial.Pmt(0, 0, 0);
    bool b = Microsoft.VisualBasic.Information.IsNumeric("0");
    int[] a = { 1, 2 };
    Array.Resize(ref a, 3);

    C# is nice because it doesn't pollute the main namespace with all that useless crud. Some quick replies to the rest of the garbage: 1) Intellisense will handle case for you, and case can be good anyway. 2) The switch statement is to optimize using a hash table, and the VB "extras" will not optimize. Use "if" instead. Alternatively, call functions until one meets condition... that could probably be adapted to act like a switch. 3) Learn how to use refactoring. 4) And if you don't know English? Not to mention VB allows for + in string concatenation as well... 5) I have had better experience with C# Intellisense. 6) See above. 7) Learn more about compiler design. This allows for faster compilation and better recovery from errors (such as during Intellisense compilation), which means the actual line with an error can be found more accurately by the compiler. 8) That has nothing to do with logic. That is a matter of preference. More often than not, I know the variable type before I have named that variable, so I prefer type first. And, again, if you don't know English? 9) Tie me up and whip me. The stricter, the better. 10) See above.

    Thou mewling ill-breeding pignut!

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

    AspDotNetDev wrote:

    Tie me up and whip me. The stricter, the better.

    I was sooooo tempted to make that my new sig...with the appropriate attribution, of course. It probably didn't help that Rihanna was singing "S&M" in the background when I read that.

    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

    A 1 Reply Last reply
    0
    • OriginalGriffO OriginalGriff

      AspDotNetDev wrote:

      Tie me up and whip me. The stricter, the better.

      I was sooooo tempted to make that my new sig...with the appropriate attribution, of course. It probably didn't help that Rihanna was singing "S&M" in the background when I read that.

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

      A Offline
      A Offline
      AspDotNetDev
      wrote on last edited by
      #19

      :laugh: Chains* and whips excite me! *LinkedList, of course...

      Thou mewling ill-breeding pignut!

      P 1 Reply Last reply
      0
      • A AspDotNetDev

        Most of that is garbage, and some of it is plain wrong. For example, all of this is valid in C#:

        double d = Microsoft.VisualBasic.Financial.Pmt(0, 0, 0);
        bool b = Microsoft.VisualBasic.Information.IsNumeric("0");
        int[] a = { 1, 2 };
        Array.Resize(ref a, 3);

        C# is nice because it doesn't pollute the main namespace with all that useless crud. Some quick replies to the rest of the garbage: 1) Intellisense will handle case for you, and case can be good anyway. 2) The switch statement is to optimize using a hash table, and the VB "extras" will not optimize. Use "if" instead. Alternatively, call functions until one meets condition... that could probably be adapted to act like a switch. 3) Learn how to use refactoring. 4) And if you don't know English? Not to mention VB allows for + in string concatenation as well... 5) I have had better experience with C# Intellisense. 6) See above. 7) Learn more about compiler design. This allows for faster compilation and better recovery from errors (such as during Intellisense compilation), which means the actual line with an error can be found more accurately by the compiler. 8) That has nothing to do with logic. That is a matter of preference. More often than not, I know the variable type before I have named that variable, so I prefer type first. And, again, if you don't know English? 9) Tie me up and whip me. The stricter, the better. 10) See above.

        Thou mewling ill-breeding pignut!

        J Offline
        J Offline
        Jorgen Andersson
        wrote on last edited by
        #20

        AspDotNetDev wrote:

        Most of that is garbage, and some of it is plain wrong. For example, all of this is valid in C#:

        double d = Microsoft.VisualBasic.Financial.Pmt(0, 0, 0);
        bool b = Microsoft.VisualBasic.Information.IsNumeric("0");
        int[] a = { 1, 2 };
        Array.Resize(ref a, 3);

        Now, that's funny. :thumbsup:

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

        1 Reply Last reply
        0
        • A AspDotNetDev

          :laugh: Chains* and whips excite me! *LinkedList, of course...

          Thou mewling ill-breeding pignut!

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

          Sean will be along shortly. See my sig.

          *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

          A 1 Reply Last reply
          0
          • P Pete OHanlon

            Sean will be along shortly. See my sig.

            *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

            A Offline
            A Offline
            AspDotNetDev
            wrote on last edited by
            #22

            Time for a new video.

            Thou mewling ill-breeding pignut!

            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

              K Offline
              K Offline
              Keith Barrow
              wrote on last edited by
              #23

              Let's take his argument apart: 1) Case sensitivity: Even at a basic level, A != a, otherwise they would have the same shape, and be called "just" a. OK, that isn't exactly what he is on about, but he does make the point that a word is a word no matter how it is capitalised. I wonder whether he'd prefer some RAM in his port, or some ram in his port. Allowing the user to use foo Foo fOo is just going to help make the code less readable. This is by far his weakest argument. 2)The Swicth clause. Syntactic Garbage. Not only are they best avoided, this feature in VB encourages them. The real syntactic badness comes when you consider (in his example) 17 matches all the case statements, but only evaluates the first. This is the real reason why is not implemented in c based langages. 3) Event Handling On the surface this is pretty neat. Now get the same method to handle two button clicks. Unless my VB knowledge is lacking (and it could be) not so neat now, having to use the AddHandler stuff. He is right about the re-naming: this is a PITA. 4)Stupid Symbols Which column looks like it was designed by a real person someone who knows something? FTFH! C# was written by academics. Aha! "In the real world arguments" are a near automatic fail in my book, I'm rarely convinced by them, it is also interesting to note academics are not real people. Perhaps they are dolphins, or imaginary. To flip this on its head, VB has the problem that, an and in an English sentence is often used to mean or and vice versa (if the temperature is 0K, 273K and 373K then it is a special temperature ). The symbols are unambiguous. He also leaves out the less "real person" operators such as AndAlso, the threatening OrElse and of course the very friendly XOR. Take this code:

              Dim x As Integer
              x = 3 And 5

              3 and 5? If a "real person" were to answer this 8. But it is now a bitwise op: so 1. WAT. Again the symbols disambiguate, and developers should be able to cope with the more mathematical symbols rather than baby language. 4 Autocorrection Technically this isn't a language thing. He fails here because c# has a snippet: type prop then hit tab and scaffold your property away. Much quicker than the V equivalent when you are used to it. 6 Lack of supported functions I already know if my value is numeric. If it isn't I will cast it. Do I really need a Mortgage calculation built in to my language? No, if I need it I will include Visua

              S 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
                PJ Arends
                wrote on last edited by
                #24

                Linked article wrote:

                Andy ‘Wise Owl’ Brown decided to write a tongue-in-cheek rant whilst he could still remember the pain-points. 'Convert to VB.NET! You have nothing to lose but your semi-colons! '>

                Seems most of you take yourselves way too seriously.

                Independent ACN Business Owner

                • Check out the possibilities for your future!
                • Financial independance
                • Full time or Part time
                • In more than 20 countries through North America, Europe, Asia and the Pacific
                • Featuring the ACN IRIS 5000 video phone. See the person you are talking to.

                Within you lies the power for good - Use it!

                P K 2 Replies Last reply
                0
                • P PJ Arends

                  Linked article wrote:

                  Andy ‘Wise Owl’ Brown decided to write a tongue-in-cheek rant whilst he could still remember the pain-points. 'Convert to VB.NET! You have nothing to lose but your semi-colons! '>

                  Seems most of you take yourselves way too seriously.

                  Independent ACN Business Owner

                  • Check out the possibilities for your future!
                  • Financial independance
                  • Full time or Part time
                  • In more than 20 countries through North America, Europe, Asia and the Pacific
                  • Featuring the ACN IRIS 5000 video phone. See the person you are talking to.

                  Within you lies the power for good - Use it!

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

                  I have deliberately avoided reading this article because I find any article that lays out any form of language x is better than language y is flawed.

                  *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 PJ Arends

                    Linked article wrote:

                    Andy ‘Wise Owl’ Brown decided to write a tongue-in-cheek rant whilst he could still remember the pain-points. 'Convert to VB.NET! You have nothing to lose but your semi-colons! '>

                    Seems most of you take yourselves way too seriously.

                    Independent ACN Business Owner

                    • Check out the possibilities for your future!
                    • Financial independance
                    • Full time or Part time
                    • In more than 20 countries through North America, Europe, Asia and the Pacific
                    • Featuring the ACN IRIS 5000 video phone. See the person you are talking to.

                    Within you lies the power for good - Use it!

                    K Offline
                    K Offline
                    Keith Barrow
                    wrote on last edited by
                    #26

                    Never pass up the opportunity for a good rant!

                    Sort of a cross between Lawrence of Arabia and Dilbert.[^]
                    -Or-
                    A Dead ringer for Kate Winslett[^]

                    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

                      C Offline
                      C Offline
                      Clifford Nelson
                      wrote on last edited by
                      #27

                      Many people are either gloating or being defensive. I think we can see this as areas that could possibly be used to improve C#, and maybe improving C# over VB. I like that people are talking about how the case statement in C# is optimize for performance when it would be easy enough to optimize if used effieciently. First the compiler should be able to optimize, and second, case statements are a bad small, and use should be limited.

                      P V 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

                        Sander RosselS Offline
                        Sander RosselS Offline
                        Sander Rossel
                        wrote on last edited by
                        #28

                        I love VB as a language. I also completely agree with the IntelliSense thing... C# IntelliSense is a disaster if you're used to VB. For example: Typing VB: Dim ex As ExcepR... Oops, backspace, tab and it's there. Typing C#: ExcepR... Oops, backspace, no IntelliSense window pops up, either four times backspace or Shift + Home + Delete/Backspace. If you're lucky you don't have to switch to a new line to get IntelliSense support again! This becomes really very frustrating when you got code like obj.Property1.Property2.Property3... However, one reason NOT to use VB...

                        Form1.Text = "What the? Since when is Text a Shared/static Property!?"

                        The answer to that question is: Since VB1. And it's still there for 'backwards compatibility' (the compiler does create an instance though) :) So much for Object Orientism. Another one is the default of Option Strict Off. I've seen 'modern' VB code that used the horrible Form1.Text thing and Option Strict Off... You'll never see that in C#. Of course bad code can be written in both languages and with that philosophy in mind I don't really care which language I write. I just slightly prefer VB for IntelliSense and Event Handling in WinForms (that guy is so right about that!) :)

                        It's an OO world.

                        public class Naerling : Lazy<Person>{
                        public void DoWork(){ throw new NotImplementedException(); }
                        }

                        C U P 3 Replies Last reply
                        0
                        • C Clifford Nelson

                          Many people are either gloating or being defensive. I think we can see this as areas that could possibly be used to improve C#, and maybe improving C# over VB. I like that people are talking about how the case statement in C# is optimize for performance when it would be easy enough to optimize if used effieciently. First the compiler should be able to optimize, and second, case statements are a bad small, and use should be limited.

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

                          Please revisit that statement. I have not gloated or been defensive.

                          *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
                          • 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

                            R Offline
                            R Offline
                            realJSOP
                            wrote on last edited by
                            #30

                            Jörgen Andersson wrote:

                            A bulletproof vest can take at least one 45ACP, right?

                            1. Not if you're shot where the vest is not. 1) A .45 will still knock you down and make you scream for your mommy. 2) Never just stand there and take the hit. If you didn't bring a firearm to the fight, your best strategy is to hide behind something.

                            ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                            -----
                            You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                            -----
                            "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997

                            1 Reply Last reply
                            0
                            • N Nelek

                              Jörgen Andersson wrote:

                              A bulletproof vest can take at least one 45ACP, right?

                              I would get more than one, JSOP has plenty of different ammo. For sure can find anything capable to hit you though ;P

                              Regards. -------- M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpfull answers is nice, but saying thanks can be even nicer.

                              R Offline
                              R Offline
                              realJSOP
                              wrote on last edited by
                              #31

                              Nelek wrote:

                              For sure can find anything capable to hit you though

                              I have ammo that will go completely through a piece of 1/4-inch steel. How it does on body armor has not yet been tested, but like I told someone else a few minutes ago, "it may not penetrate, but it *will* knock you down and make you scream for your mommy".

                              ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                              -----
                              You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                              -----
                              "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997

                              C V 2 Replies Last reply
                              0
                              • C CPallini

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

                                Veni, vidi, vici.

                                E Offline
                                E Offline
                                Espen Harlinn
                                wrote on last edited by
                                #32

                                :thumbsup: Basic was my first programming language - and I haven't used it since I wrote code for the Acorn BBC model B, I guess I'm partial to the c family of languages ...

                                Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS My LinkedIn Profile

                                1 Reply Last reply
                                0
                                • R realJSOP

                                  Nelek wrote:

                                  For sure can find anything capable to hit you though

                                  I have ammo that will go completely through a piece of 1/4-inch steel. How it does on body armor has not yet been tested, but like I told someone else a few minutes ago, "it may not penetrate, but it *will* knock you down and make you scream for your mommy".

                                  ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                                  -----
                                  You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                                  -----
                                  "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997

                                  C Offline
                                  C Offline
                                  Clifford Nelson
                                  wrote on last edited by
                                  #33

                                  I was not responding to your statement. I just wanted to make a statement that basically originates in the original statement. I reworded, and hopefully this make it acceptable.

                                  1 Reply 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
                                    Anthony Mushrow
                                    wrote on last edited by
                                    #34

                                    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 1 Reply Last reply
                                    0
                                    • Sander RosselS Sander Rossel

                                      I love VB as a language. I also completely agree with the IntelliSense thing... C# IntelliSense is a disaster if you're used to VB. For example: Typing VB: Dim ex As ExcepR... Oops, backspace, tab and it's there. Typing C#: ExcepR... Oops, backspace, no IntelliSense window pops up, either four times backspace or Shift + Home + Delete/Backspace. If you're lucky you don't have to switch to a new line to get IntelliSense support again! This becomes really very frustrating when you got code like obj.Property1.Property2.Property3... However, one reason NOT to use VB...

                                      Form1.Text = "What the? Since when is Text a Shared/static Property!?"

                                      The answer to that question is: Since VB1. And it's still there for 'backwards compatibility' (the compiler does create an instance though) :) So much for Object Orientism. Another one is the default of Option Strict Off. I've seen 'modern' VB code that used the horrible Form1.Text thing and Option Strict Off... You'll never see that in C#. Of course bad code can be written in both languages and with that philosophy in mind I don't really care which language I write. I just slightly prefer VB for IntelliSense and Event Handling in WinForms (that guy is so right about that!) :)

                                      It's an OO world.

                                      public class Naerling : Lazy<Person>{
                                      public void DoWork(){ throw new NotImplementedException(); }
                                      }

                                      C Offline
                                      C Offline
                                      Chris Losinger
                                      wrote on last edited by
                                      #35

                                      IntelliSense is not a part of either language.

                                      image processing toolkits | batch image processing

                                      Sander RosselS 1 Reply Last reply
                                      0
                                      • M Mladen Jankovic

                                        case-sensitivity alone is sufficient reason to ditch C#!

                                        If he meant it seriously, then he's a complete moron.

                                        M Offline
                                        M Offline
                                        Mycroft Holmes
                                        wrote on last edited by
                                        #36

                                        Actually that was the reason I rejected learning c# when .net first came out. Intellisense now makes the issue irrelevant but a VB dev loathes the fact that the IDE does not format the variable name after typing, it is a form of validation that was very useful.

                                        Never underestimate the power of human stupidity RAH

                                        E 1 Reply Last reply
                                        0
                                        • L Lost User

                                          That 'snobbery' comes from bad experiences, at least in my case. When someone like the guy who wrote that article claims to have many years of experience and then has nothing else to worry about than case sensitivity, switch/case statements, IDE support or array redimensioning, then something is seriously wrong. It may just be my perception, but thst kind of extremely narrow view and VB often come together. Let them sit in their little world and think they are the best, I don't care. But if I have any choice, I avoid having to work with such people.

                                          I'm invincible, I can't be vinced

                                          V Offline
                                          V Offline
                                          Vivi Chellappa
                                          wrote on last edited by
                                          #37

                                          CDP1802 wrote:

                                          thst kind of extremely narrow view and VB often come together. Let them sit in their little world and think they are the best, I don't care. But if I have any choice, I avoid having to work with such people.

                                          I suppose the C++/C# people are just oozing with love for, say, COBOL, Fortran, Pascal, and VB programmers! Edit: Just read the next post by OriginalGriff with a comment about Cobol! :laugh:

                                          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