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. What is the longest programming misconception you've held (that you are aware of)?

What is the longest programming misconception you've held (that you are aware of)?

Scheduled Pinned Locked Moved The Lounge
questionc++com
55 Posts 31 Posters 0 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.
  • D David ONeil

    Until just now I believed negative integers were just a flip of the first bit. Wow, how wrong I was, for MANY years! Are there some architectures where that is the case, to make myself feel a little better?

    The forgotten roots of science | C++ Programming | DWinLib

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

    I'm unaware that I suffer from any. :~ But, related to "negative integers", one misconception which I have seen at least one person state is the idea that signed integers (twos complement) are lower level (more native to the hardware) than unsigned integers -- that the CPU has to work harder to perform unsigned math. I'm pretty sure that I saw someone state that you should avoid using unsigned integers because they're slower! :omg:

    R 1 Reply Last reply
    0
    • G Gary R Wheeler

      Note: The following is a personal statement of preference, not an invitation to a jihad. Not really a programming misconception, but a coding style choice. For a very long time, starting in the mid-1980's through about 2010 or so, I used K&R braces exclusively. When I started writing C#, I used Allman[^] braces, following the style recommended by Microsoft and a couple of the books I was using. As time has gone on Allman has become my preferred style. I have some vision problems due to age and glaucoma, so my code needs frequent blank lines to separate logical blocks. Allman braces provide white space that isn't merely cosmetic. I've even got an editor macro that converts K&R braces to Allman. I have a large body of C++ that I recently converted as part of a refactor and refresh effort on an old product that I'm maintaining.

      Software Zen: delete this;

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

      +5 for Allman.

      1 Reply Last reply
      0
      • Greg UtasG Greg Utas

        You don't need to fade it by saying it's personal preference when it's the Correct™️ way. Bring the jihad! :laugh: My rationale is that other coding styles often waste horizontal space but use vertical space miserly. The control statement before the { needs to stand out so that you don't have to squint to read its condition. It also aligns the {…} and reduces the number of broken lines, which is another thing I try to avoid (hence 3-space indentation instead of 4 or even 8, whose users should be forced to edit all their spaces manually.)

        Robust Services Core | Software Techniques for Lemmings | Articles
        The fox knows many things, but the hedgehog knows one big thing.

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

        Greg Utas wrote:

        edit all their spaces manually

        As on a VT100, with an eighty-character limit.

        Greg UtasG 1 Reply Last reply
        0
        • P PIEBALDconsult

          Greg Utas wrote:

          edit all their spaces manually

          As on a VT100, with an eighty-character limit.

          Greg UtasG Offline
          Greg UtasG Offline
          Greg Utas
          wrote on last edited by
          #18

          The arrival of VT100s in our university computing lab was momentous! Our DECwriters were then used mostly for printouts.

          Robust Services Core | Software Techniques for Lemmings | Articles
          The fox knows many things, but the hedgehog knows one big thing.

          <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
          <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

          P 1 Reply Last reply
          0
          • G Gary R Wheeler

            Note: The following is a personal statement of preference, not an invitation to a jihad. Not really a programming misconception, but a coding style choice. For a very long time, starting in the mid-1980's through about 2010 or so, I used K&R braces exclusively. When I started writing C#, I used Allman[^] braces, following the style recommended by Microsoft and a couple of the books I was using. As time has gone on Allman has become my preferred style. I have some vision problems due to age and glaucoma, so my code needs frequent blank lines to separate logical blocks. Allman braces provide white space that isn't merely cosmetic. I've even got an editor macro that converts K&R braces to Allman. I have a large body of C++ that I recently converted as part of a refactor and refresh effort on an old product that I'm maintaining.

            Software Zen: delete this;

            G Offline
            G Offline
            GuyThiebaut
            wrote on last edited by
            #19

            I use Allman for C# but for Javascript(mostly Typescript) is make use of K&R. I do this because it's the generally accepted style for both languages and I am used to swapping between them. It's also because working as part of a small team within a larger group(a team of 5 developers within a group of 20+ developers) it's easier to follow the generally accepted standards, or rather code doesn't get past code review if it doesn't follow those standards. At home I do the same, using Allman for C# and K&R for Typescript or any other form of Javascript - it just kind of 'feels' right.

            “That which can be asserted without evidence, can be dismissed without evidence.”

            ― Christopher Hitchens

            D 1 Reply Last reply
            0
            • OriginalGriffO OriginalGriff

              That depends, some systems have a "negative space" that is one larger than the positive space (or consider 0 to be a positive number, which is also an odd idea) We'd need to move away from binary computers to sort all this crap out! Can I suggest trinary? "True", "False", and "Dunno"? :laugh:

              "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 AntiTwitter: @DalekDave is now a follower!

              D Offline
              D Offline
              David ONeil
              wrote on last edited by
              #20

              Save us all our pain: just use a unary system of 'Dunno'! All our problems would be solved, and none of them could be! How very Schrödinger-ish! :laugh:

              The forgotten roots of science | C++ Programming | DWinLib

              1 Reply Last reply
              0
              • Greg UtasG Greg Utas

                My answer changed today because of the above post[^]. :-D I was about to reply to it saying that, unlike C++, it's interesting that C# doesn't insist that default be the last label in a switch statement. But I figured I should check this, and it turns out that C++ also allows it! I'd always believed otherwise since starting to use C++ about 20 years ago, perhaps because that's the way it is in the language I used for a long time, though it uses OUT instead of default. EDIT: That's the longest known misconception; there are probably tons of others!

                Robust Services Core | Software Techniques for Lemmings | Articles
                The fox knows many things, but the hedgehog knows one big thing.

                D Offline
                D Offline
                David ONeil
                wrote on last edited by
                #21

                I did not know C++ allowed default anywhere except the end, either, until your post. So that is my newest longest-running programming misconception! :laugh:

                The forgotten roots of science | C++ Programming | DWinLib

                M 1 Reply Last reply
                0
                • G Gary R Wheeler

                  Note: The following is a personal statement of preference, not an invitation to a jihad. Not really a programming misconception, but a coding style choice. For a very long time, starting in the mid-1980's through about 2010 or so, I used K&R braces exclusively. When I started writing C#, I used Allman[^] braces, following the style recommended by Microsoft and a couple of the books I was using. As time has gone on Allman has become my preferred style. I have some vision problems due to age and glaucoma, so my code needs frequent blank lines to separate logical blocks. Allman braces provide white space that isn't merely cosmetic. I've even got an editor macro that converts K&R braces to Allman. I have a large body of C++ that I recently converted as part of a refactor and refresh effort on an old product that I'm maintaining.

                  Software Zen: delete this;

                  D Offline
                  D Offline
                  David ONeil
                  wrote on last edited by
                  #22

                  I prefer Ratliff style, but can see why you would like Allman if your eyesight was failing.

                  The forgotten roots of science | C++ Programming | DWinLib

                  1 Reply Last reply
                  0
                  • Greg UtasG Greg Utas

                    The arrival of VT100s in our university computing lab was momentous! Our DECwriters were then used mostly for printouts.

                    Robust Services Core | Software Techniques for Lemmings | Articles
                    The fox knows many things, but the hedgehog knows one big thing.

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

                    When I started learning to program on the high school's PDP-11 in 1983, the lab had a mix of VT52s, one VT100, and a couple of Wyse VT100 clones. And one DECwriter "hard-copy terminal" we had to use when we needed to print out our work.

                    1 Reply Last reply
                    0
                    • P PIEBALDconsult

                      I'm unaware that I suffer from any. :~ But, related to "negative integers", one misconception which I have seen at least one person state is the idea that signed integers (twos complement) are lower level (more native to the hardware) than unsigned integers -- that the CPU has to work harder to perform unsigned math. I'm pretty sure that I saw someone state that you should avoid using unsigned integers because they're slower! :omg:

                      R Offline
                      R Offline
                      Rick York
                      wrote on last edited by
                      #24

                      Yes, I don't think that applies for most CPUs however, it is fairly well known that in programming GPUs with CUDA it is much better to use signed integers than unsigned because the overflow handling is much faster. Nvidia's GPU cores are known for having many odd limitations.

                      "They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"

                      1 Reply Last reply
                      0
                      • D David ONeil

                        I did not know C++ allowed default anywhere except the end, either, until your post. So that is my newest longest-running programming misconception! :laugh:

                        The forgotten roots of science | C++ Programming | DWinLib

                        M Offline
                        M Offline
                        MarkTJohnson
                        wrote on last edited by
                        #25

                        While not explicitly aware of it, my understanding of the switch statement is that all the case declarations (which includes default) were merely labels, so I am not surprised you can stick the default anywhere in the list, I've just never seen it done before. Kinda like the idea though.

                        1 Reply Last reply
                        0
                        • OriginalGriffO OriginalGriff

                          That depends, some systems have a "negative space" that is one larger than the positive space (or consider 0 to be a positive number, which is also an odd idea) We'd need to move away from binary computers to sort all this crap out! Can I suggest trinary? "True", "False", and "Dunno"? :laugh:

                          "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 AntiTwitter: @DalekDave is now a follower!

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

                          OriginalGriff wrote:

                          Can I suggest trinary? "True", "False", and "Dunno" "Null"?

                          As in SQL null, not C# null

                          Wrong is evil and must be defeated. - Jeff Ello Never stop dreaming - Freddie Kruger

                          1 Reply Last reply
                          0
                          • D David ONeil

                            Until just now I believed negative integers were just a flip of the first bit. Wow, how wrong I was, for MANY years! Are there some architectures where that is the case, to make myself feel a little better?

                            The forgotten roots of science | C++ Programming | DWinLib

                            U Offline
                            U Offline
                            User 13269747
                            wrote on last edited by
                            #27

                            1. That OO is a good idea. 2. That exceptions are a good way to handle errors.

                            1 Reply Last reply
                            0
                            • D David ONeil

                              Until just now I believed negative integers were just a flip of the first bit. Wow, how wrong I was, for MANY years! Are there some architectures where that is the case, to make myself feel a little better?

                              The forgotten roots of science | C++ Programming | DWinLib

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

                              That other programmers knew what they were doing :sigh:

                              Best, Sander sanderrossel.com Migrating Applications to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly

                              C 1 Reply Last reply
                              0
                              • D David ONeil

                                Until just now I believed negative integers were just a flip of the first bit. Wow, how wrong I was, for MANY years! Are there some architectures where that is the case, to make myself feel a little better?

                                The forgotten roots of science | C++ Programming | DWinLib

                                J Offline
                                J Offline
                                Josh Gray2
                                wrote on last edited by
                                #29

                                Here's an excellent explanation of two's compliment Twos complement: Negative numbers in binary - YouTube[^]

                                1 Reply Last reply
                                0
                                • G Gary R Wheeler

                                  Note: The following is a personal statement of preference, not an invitation to a jihad. Not really a programming misconception, but a coding style choice. For a very long time, starting in the mid-1980's through about 2010 or so, I used K&R braces exclusively. When I started writing C#, I used Allman[^] braces, following the style recommended by Microsoft and a couple of the books I was using. As time has gone on Allman has become my preferred style. I have some vision problems due to age and glaucoma, so my code needs frequent blank lines to separate logical blocks. Allman braces provide white space that isn't merely cosmetic. I've even got an editor macro that converts K&R braces to Allman. I have a large body of C++ that I recently converted as part of a refactor and refresh effort on an old product that I'm maintaining.

                                  Software Zen: delete this;

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

                                  I always used such a style. Now, I know it has a father.

                                  1 Reply Last reply
                                  0
                                  • Sander RosselS Sander Rossel

                                    That other programmers knew what they were doing :sigh:

                                    Best, Sander sanderrossel.com Migrating Applications to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly

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

                                    :-D

                                    1 Reply Last reply
                                    0
                                    • D David ONeil

                                      Until just now I believed negative integers were just a flip of the first bit. Wow, how wrong I was, for MANY years! Are there some architectures where that is the case, to make myself feel a little better?

                                      The forgotten roots of science | C++ Programming | DWinLib

                                      F Offline
                                      F Offline
                                      Fabio Franco
                                      wrote on last edited by
                                      #32

                                      That async execution does not mean it's parallel/threaded and it has varied behavior depending on the runtime.

                                      To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson ---- Our heads are round so our thoughts can change direction - Francis Picabia

                                      1 Reply Last reply
                                      0
                                      • G GuyThiebaut

                                        I use Allman for C# but for Javascript(mostly Typescript) is make use of K&R. I do this because it's the generally accepted style for both languages and I am used to swapping between them. It's also because working as part of a small team within a larger group(a team of 5 developers within a group of 20+ developers) it's easier to follow the generally accepted standards, or rather code doesn't get past code review if it doesn't follow those standards. At home I do the same, using Allman for C# and K&R for Typescript or any other form of Javascript - it just kind of 'feels' right.

                                        “That which can be asserted without evidence, can be dismissed without evidence.”

                                        ― Christopher Hitchens

                                        D Offline
                                        D Offline
                                        Dan Neely
                                        wrote on last edited by
                                        #33

                                        I try to do the same, but am working on a Java project that's using alman because the lead dev's brain locks up trying to do any other styles. He wanted to do C# capitalization rules too, but eventually yielded on that part because Android Studio's autocomplete is strictly case sensitive, and having to try and remember different casing styles for our code vs android code was blowing up everyone else's brains.

                                        Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

                                        1 Reply Last reply
                                        0
                                        • D David ONeil

                                          Until just now I believed negative integers were just a flip of the first bit. Wow, how wrong I was, for MANY years! Are there some architectures where that is the case, to make myself feel a little better?

                                          The forgotten roots of science | C++ Programming | DWinLib

                                          S Offline
                                          S Offline
                                          Shawn_Eary
                                          wrote on last edited by
                                          #34

                                          The longest programming misconception I've ever held is that JavaScript (ECMAScript) is "bad". It took me a long time to see JavaScript as (just another "assembly language") but I've finally made "peace" with JavaScript. I think...

                                          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