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. Visual Basic needs more credit

Visual Basic needs more credit

Scheduled Pinned Locked Moved The Lounge
206 Posts 32 Posters 515 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.
  • J Jorgen Andersson

    PIEBALDconsult wrote:

    Try writing an event that returns a value in VB

    How do you do that in C# that you can't do in VB?

    Wrong is evil and must be defeated. - Jeff Ello[^]

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

    Consider these two C# statements:

    public delegate bool IsItSafe() ;
    public event IsItSafe Probe ;

    they compile just fine and actually work as they should, but the VB.net equivalent:

    Delegate Function IsItSafe() as Boolean
    Event Probe As IsItSafe

    yields:

    C:\Projects\Template.vb(26) : error BC31084: Events cannot be declared with a delegate type that has a return type.

    Event Probe As IsItSafe
          ~~~~~            
    

    Not that it's something that is common, but I do use a few events that return bool values in an unusual project of mine.

    You'll never get very far if all you do is follow instructions.

    J 1 Reply Last reply
    0
    • C Colborne_Greg

      I would not hire you sorry. The reason you can not use the with operator in such a fashion is scope

      T Offline
      T Offline
      thequux
      wrote on last edited by
      #144

      And this, in turn, is why I wouldn't hire you: you don't look past what is and see what could be. See, a simple rule that ambiguous member references within a With statement are not allowed (and are a compiler error) would sort out the scoping issues, produce something that has significantly more expressive power, and not make the language any more complicated. The fact that this is not part of the language is irrelevant: there are open-source visual basic compilers (eg, as part of the Mono project) that would be easily extended to support whatever extensions you like. This is not, of course, to say that I would advocate for such a feature to be added. It wouldn't result in any increase in code readability (rather, it would significantly decrease readability), and any given piece of code is likely going to be read far more times than it will be written.

      C 1 Reply Last reply
      0
      • D dave dolan

        I sincerely wish you all the best. I just think you're still wrong about VB.

        C Offline
        C Offline
        Colborne_Greg
        wrote on last edited by
        #145

        What that it needs more credit? There are practically no differences between the two, and opinions for and against it being a better language then others suggest that I am right.

        1 Reply Last reply
        0
        • C Colborne_Greg

          As I have learned but there is no period before either height so now the reader of the code has to guess at the scope of the object Real genius

          B Offline
          B Offline
          BobJanova
          wrote on last edited by
          #146

          It's pretty obvious from context that one of those is a property name on the object you're setting, and one is a name in the local scope, and that's all the . tells you. It's no different from public Form Form (or Dim Form As Form or whatever you write in VB) and other places where you have the same word in two different contexts.

          C 1 Reply Last reply
          0
          • T thequux

            And this, in turn, is why I wouldn't hire you: you don't look past what is and see what could be. See, a simple rule that ambiguous member references within a With statement are not allowed (and are a compiler error) would sort out the scoping issues, produce something that has significantly more expressive power, and not make the language any more complicated. The fact that this is not part of the language is irrelevant: there are open-source visual basic compilers (eg, as part of the Mono project) that would be easily extended to support whatever extensions you like. This is not, of course, to say that I would advocate for such a feature to be added. It wouldn't result in any increase in code readability (rather, it would significantly decrease readability), and any given piece of code is likely going to be read far more times than it will be written.

            C Offline
            C Offline
            Colborne_Greg
            wrote on last edited by
            #147

            I own 3 companies - do you own any? In order to get C# lines to fit into the viewable area of the screen it is common practice to use a short variable notation, in visual basic it is common to use full words like PictureNameTextBlock - so when variables are that long the lines of code stretch far out off the screen - making the with block extremely important, once we compare the differences at a management stand point we saw reading visual basic was like reading English while reading C# code in general was impossible and had to rely on comments. Visual basic saves a lot of money.

            T 1 Reply Last reply
            0
            • B BobJanova

              It's pretty obvious from context that one of those is a property name on the object you're setting, and one is a name in the local scope, and that's all the . tells you. It's no different from public Form Form (or Dim Form As Form or whatever you write in VB) and other places where you have the same word in two different contexts.

              C Offline
              C Offline
              Colborne_Greg
              wrote on last edited by
              #148

              When dealing with multiple languages from multiple teams anything that makes you think twice about it has to go.

              1 Reply Last reply
              0
              • C Colborne_Greg

                I have a habit of avoiding case sensitive languages as it creates more problems, then the advantage you gave

                R Offline
                R Offline
                richard_k
                wrote on last edited by
                #149

                The way you are making this statement is theological, not theoretical. In this audience, if you want that statement to actually stand, you'll have to go into great detail as to WHY you think that. I've been working in case sensitive languages for 30 years, without any problems I can think of regarding the language itself. Humans can mess up any language, regardless of syntactic richness, protections, etc. That is because the language only enforces syntactic correctness.. and most issues with code lie in either algorithm design or overall architectural design, which no language can protect you from no matter how rich.

                C 1 Reply Last reply
                0
                • R richard_k

                  The way you are making this statement is theological, not theoretical. In this audience, if you want that statement to actually stand, you'll have to go into great detail as to WHY you think that. I've been working in case sensitive languages for 30 years, without any problems I can think of regarding the language itself. Humans can mess up any language, regardless of syntactic richness, protections, etc. That is because the language only enforces syntactic correctness.. and most issues with code lie in either algorithm design or overall architectural design, which no language can protect you from no matter how rich.

                  C Offline
                  C Offline
                  Colborne_Greg
                  wrote on last edited by
                  #150

                  If you studied languages you would know that opinions are not religion but thanks. Here is am example a large amount of new programmers make int64 Height = 150; int64 width = 150; When the programmer uses Height and Width, the Width has a underline, and because of the number of lines in the file the programmer creates a new variable int64 Width = 150; While this one programmer is using the uppercase Width his peers are using the lowercase width. Is that clear enough for you, Sorry I assumed you had enough experience to know the issues with dealing with case sensitive variables.

                  R 1 Reply Last reply
                  0
                  • C Colborne_Greg

                    I came from Cobol and JCL, with 25 years of experience. I own a start up software company. Anyone that has C experience or web experience I find are bad employees, they make great leaders, not great employees, unless your business in devoted to C and C type languages, then you probably have 20 programmers to my one.

                    R Offline
                    R Offline
                    richard_k
                    wrote on last edited by
                    #151

                    Correlation is not causation. Maybe the reason the C programmers are necessary is the nature of the problem that cause C to be picked as the implementation language in the first place. I've spent most of the last 30 years programming very near the hardware level. VB would have been a huge inconvenience for the types of problems I was solving. This doesn't make C/C++ inherently better or worse then VB.. only suited to a different problem domain. As to good vs. bad employees.. there are lots of ways to get those.. I've seen my share of good VB programmers and bad C programmers.. and VICE VERSA. Again.. correlation does not equal causation.

                    C 1 Reply Last reply
                    0
                    • C Colborne_Greg

                      Considering the missing connection between me knowing C# can get away without using the with word, proves its problems. The with keyword gets the coder in a mindset.

                      R Offline
                      R Offline
                      richard_k
                      wrote on last edited by
                      #152

                      Nonsense. Mindsets in programming are about how we handle abstractions. Expression syntax is just that.. expression syntax. I find I use the same mindset for programming no matter what language I use.. and I've used a lot over the years. Basic, C, C++, Algol, Perl, Forth, 8086 assembler, 6502 assembler (yes.. I'm that old). I find this statement highly unconvincing.

                      C 1 Reply Last reply
                      0
                      • C Colborne_Greg

                        Advertising your other post is spam

                        R Offline
                        R Offline
                        richard_k
                        wrote on last edited by
                        #153

                        Claiming spam doesn't make it so.. and arguing with folks like this only detracts from your position, it doesn't add to it.

                        C 1 Reply Last reply
                        0
                        • C Colborne_Greg

                          No better way to learn. I was told that C# and visual basic are the same language but I can find things in Visual Basic that are not in C# and things in C# that are not in Visual Basic

                          R Offline
                          R Offline
                          richard_k
                          wrote on last edited by
                          #154

                          They use the same underlying IL machine. I don't think its said anywhere that they are exactly the same.. If you read the book on the IL assembler the author talks in great detail on the differences between VB and C# and how the IL abstractions express them both. That qualifies this argument as a strawman.

                          C 1 Reply Last reply
                          0
                          • C Colborne_Greg

                            I own 3 companies - do you own any? In order to get C# lines to fit into the viewable area of the screen it is common practice to use a short variable notation, in visual basic it is common to use full words like PictureNameTextBlock - so when variables are that long the lines of code stretch far out off the screen - making the with block extremely important, once we compare the differences at a management stand point we saw reading visual basic was like reading English while reading C# code in general was impossible and had to rely on comments. Visual basic saves a lot of money.

                            T Offline
                            T Offline
                            thequux
                            wrote on last edited by
                            #155

                            Yes. Two, in fact, one of which has developers in 3 different countries, and produces provably secure software. I am also chief architect at a third. It has been some years since I've looked for a job, but you can look at an old CV of mine if you like. I program in many languages; I even speak BASIC as a native language, by linguistics standards (I learned it when I was 3, during the critical language acquisition period). Further, I regularly program in C#, Java, Python, Go, Postscript, Bourne shell, Prolog, Ocaml, Haskell, and Lisp, and have at other points been paid to program in everything from Brainfuck to VHDL. I could keep going, but I think you get the picture. Also, it turns out that, from a human processing perspective, our brains are far better equipped to handle things like tb_pic_name than PictureNameTextBlock; we recognize words by their shapes and so the shorter the word, the more efficient it is to read. Finally, management tends to like things like VB because they look like English... but they are not in so many critical ways that this is in fact a negative feature. At the end of the day, management doesn't need to read code. They only need somebody that they trust to review the code quality of their developers' code, and to make sure that they're getting good value for their money. VB may seem to save a lot of money, but really it's costing you far more than you can imagine.

                            C 1 Reply Last reply
                            0
                            • T thequux

                              Yes. Two, in fact, one of which has developers in 3 different countries, and produces provably secure software. I am also chief architect at a third. It has been some years since I've looked for a job, but you can look at an old CV of mine if you like. I program in many languages; I even speak BASIC as a native language, by linguistics standards (I learned it when I was 3, during the critical language acquisition period). Further, I regularly program in C#, Java, Python, Go, Postscript, Bourne shell, Prolog, Ocaml, Haskell, and Lisp, and have at other points been paid to program in everything from Brainfuck to VHDL. I could keep going, but I think you get the picture. Also, it turns out that, from a human processing perspective, our brains are far better equipped to handle things like tb_pic_name than PictureNameTextBlock; we recognize words by their shapes and so the shorter the word, the more efficient it is to read. Finally, management tends to like things like VB because they look like English... but they are not in so many critical ways that this is in fact a negative feature. At the end of the day, management doesn't need to read code. They only need somebody that they trust to review the code quality of their developers' code, and to make sure that they're getting good value for their money. VB may seem to save a lot of money, but really it's costing you far more than you can imagine.

                              C Offline
                              C Offline
                              Colborne_Greg
                              wrote on last edited by
                              #156

                              A project lead is management. Accounting does not lie about the costs. The picture you gave a psychologist is that you are a lair.

                              T 1 Reply Last reply
                              0
                              • R richard_k

                                They use the same underlying IL machine. I don't think its said anywhere that they are exactly the same.. If you read the book on the IL assembler the author talks in great detail on the differences between VB and C# and how the IL abstractions express them both. That qualifies this argument as a strawman.

                                C Offline
                                C Offline
                                Colborne_Greg
                                wrote on last edited by
                                #157

                                Wrong. You just gave the exact details of the situation reinforcing their similarities.

                                R 1 Reply Last reply
                                0
                                • R richard_k

                                  Claiming spam doesn't make it so.. and arguing with folks like this only detracts from your position, it doesn't add to it.

                                  C Offline
                                  C Offline
                                  Colborne_Greg
                                  wrote on last edited by
                                  #158

                                  Thanks for your opinion, do you have a diploma in sociology by any chance?

                                  S 1 Reply Last reply
                                  0
                                  • R richard_k

                                    Nonsense. Mindsets in programming are about how we handle abstractions. Expression syntax is just that.. expression syntax. I find I use the same mindset for programming no matter what language I use.. and I've used a lot over the years. Basic, C, C++, Algol, Perl, Forth, 8086 assembler, 6502 assembler (yes.. I'm that old). I find this statement highly unconvincing.

                                    C Offline
                                    C Offline
                                    Colborne_Greg
                                    wrote on last edited by
                                    #159

                                    Do you have a diploma in psychology by any chance?

                                    1 Reply Last reply
                                    0
                                    • R richard_k

                                      Correlation is not causation. Maybe the reason the C programmers are necessary is the nature of the problem that cause C to be picked as the implementation language in the first place. I've spent most of the last 30 years programming very near the hardware level. VB would have been a huge inconvenience for the types of problems I was solving. This doesn't make C/C++ inherently better or worse then VB.. only suited to a different problem domain. As to good vs. bad employees.. there are lots of ways to get those.. I've seen my share of good VB programmers and bad C programmers.. and VICE VERSA. Again.. correlation does not equal causation.

                                      C Offline
                                      C Offline
                                      Colborne_Greg
                                      wrote on last edited by
                                      #160

                                      25 years here, came up from cobol and JCL, and worked on switching systems for northern telecom. We are in the cell phone era, not the hardware layer. Anyways the topic is that VB needs more credit. I have seen my share of both as well, and when training people to program how I want them to program its easier to employ people that are not programmers and teach them what I need them to know in VB, if I tried this in C# it would not be possible.

                                      R 1 Reply Last reply
                                      0
                                      • P PIEBALDconsult

                                        Consider these two C# statements:

                                        public delegate bool IsItSafe() ;
                                        public event IsItSafe Probe ;

                                        they compile just fine and actually work as they should, but the VB.net equivalent:

                                        Delegate Function IsItSafe() as Boolean
                                        Event Probe As IsItSafe

                                        yields:

                                        C:\Projects\Template.vb(26) : error BC31084: Events cannot be declared with a delegate type that has a return type.

                                        Event Probe As IsItSafe
                                              ~~~~~            
                                        

                                        Not that it's something that is common, but I do use a few events that return bool values in an unusual project of mine.

                                        You'll never get very far if all you do is follow instructions.

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

                                        Interesting.

                                        Wrong is evil and must be defeated. - Jeff Ello[^]

                                        1 Reply Last reply
                                        0
                                        • C Colborne_Greg

                                          The entire difference between C# and VB are involved in that factoring, suppressing exceptions is not an acceptable thing for my employee's to do, suppressing exceptions happens by my efficiency team; who decided that at this moment didn't need to know the error. In visual basic with block

                                                  With CameraControl.LastKnownTaken
                                                      DateTakenBlock.Text = .DateTaken
                                                      FileNameBlock.Text = .FileName
                                                      LatitudeBlock.Text = .Latitude
                                                      LongitudeBlock.Text = .Longitude 
                                                  End With 
                                          

                                          notice the period, if you cant figure out that the words with a period before them belong to the with block I wouldn't hire you

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

                                          Re: suppressing exceptions. Your "efficiency team" are amateurs ... led by an even bigger one. You're "hiding" exceptions; not "suppressing" them.

                                          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