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. Other Discussions
  3. The Weird and The Wonderful
  4. Thats why i hate c++

Thats why i hate c++

Scheduled Pinned Locked Moved The Weird and The Wonderful
c++helplearning
77 Posts 32 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.
  • V Vasily Tserekh

    When i was beggining to make some programs i had to make a small ellectronic book in c++. It started ok, i managed to make a reader and an editor and then came the worst error a programmer can have. When I compiled the program it went smoothly but when i openned it from windows it showed and internal error message whit no message. I suspected it was an I/O error because when i copied the program to c: or d: didnt showed the error but when i placed in other folder that wasnt the root it showed the error message

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

    There is nothing to hate about C++. C++ doesn't written for winning prize for "Standards". It came to solve real world problem and solving it very well, since long time.

    Happy Programming

    W 1 Reply Last reply
    0
    • V Vasily Tserekh

      yes i know that but imagine that you cant trace an error because when you debug the executable it doesnt show up, what would you do?

      M Offline
      M Offline
      Mike Winiberg
      wrote on last edited by
      #27

      That's happened to me a few times (occasionally with C++ Builder too!). In each case it has been a variation on: Different memory (especially heap space) allocations between the debug and live environment (even on the same machine). Debugger initialising memory to something sensible, thus hiding an uninitialised variable somewhere in my code, debugger locating the program in a different area of physical memory, thus avoiding a faulty patch of RAM that - by coincidence - wasn't used by the OS normally either, and so on In other words, this type of problem is almost always memory related in some way, or possibly due to uninitialised use of a physical device or internal queue in some that way the debugger covers up when it sets up the debug environment. One technique that can sometimes help catch this is to use a remote debugging session run from a second machine - often the remote debug stub will not do as much pre-execution setup as an integrated debugger, thus leaving the problem undisturbed, or at least different. I remember one particular problem porting a program from C++ builder to Linux, where the C++ Builder program loader initialised class memory to 0 before starting the program, whereas GNU C++ didn't - took me a while to spot that, as the program only failed when loaded without gdb (which placed it in an area of memory that was, by chance, all 0s!) Oh, happy days... 8)

      1 Reply Last reply
      0
      • M Mohibur Rashid

        do you think i spent all day? not at all, i found it right away. but can i blame micro-controller for this?

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

        Yes, of course you can. It will not help very much and you will not find out very much that way, but if it makes you feel better...

        At least artificial intelligence already is superior to natural stupidity

        1 Reply Last reply
        0
        • V Vasily Tserekh

          hello, thanks for the help but that was five years ago that was the ultimate reason to select C# as main language, I have not any plans to fix that code i dont need it. Now i remember the error message: a popup window with this: external exception and no more, somewhat i located the error message in a simply i/o read but i couldnt do anything because the SAME code worked in other projects and I wasnt able to tell what was wrong i had to drop the project. now c++ fans how many times where you stucked because an error that have you haunted for weeks- a LOT since i use c# i never ever had an uncomprehensive stupid error again and please this is not a question forum i post it here to see if anyone had that kind of error once in their lives to feel that i am not alone

          R Offline
          R Offline
          Rob Grainger
          wrote on last edited by
          #29

          Please, please, please stick to C# programming. It sounds like you're not cut out for C++ development.

          1 Reply Last reply
          0
          • V Vasily Tserekh

            the ide was c++ builder 6

            G Offline
            G Offline
            glennPattonWork3
            wrote on last edited by
            #30

            Not really a C++ myself but I was under the impression Borland Builders were one the best. I was under the impression that the Microsoft versions were created and then Microsoft created the standards to fit, my experience of VC++ is you type a quick test program spend an age trying to figure out why it wont compile, get fed up use Builder6 load the code press F9 away you go!

            1 Reply Last reply
            0
            • V Vasily Tserekh

              yes I know but at least in managed languages you get a nice error message not a blank error messsage, thats why I hate c++

              C Offline
              C Offline
              Charles Oppermann
              wrote on last edited by
              #31

              Vasily Tserekh wrote:

              yes I know but at least in managed languages you get a nice error message not a blank error messsage, thats why I hate c++

              You "hate" C++ because you don't understand it. To be clear, in .NET languages like C# and VB.NET (and similarly in Java), when there is a unhandled fault, the end user is presented with a exception that includes a stack trace. Generally you would never want a end-user to see a stack-trace. You can get exactly the same thing in C++ if you choose to, but it requires additional work that is done for you in a managed environment. Generally stack traces are available in a debugger.

              /* Charles Oppermann */ http://weblogs.asp.net/chuckop

              K 1 Reply Last reply
              0
              • V Vasily Tserekh

                yes i know that but imagine that you cant trace an error because when you debug the executable it doesnt show up, what would you do?

                M Offline
                M Offline
                Michael Kingsford Gray
                wrote on last edited by
                #32

                Switch to VB?

                1 Reply Last reply
                0
                • L Lost User

                  Step 7a: Read the code and try to locate the problem by analysis Step 7b: (only if 7a fails) Try to shorten the code to rule out as much of it as possible as source of the problem Step 7c: Identify potentially problematic code in what is left over and monitor it by logging Step 7d: Draw conclusions from the logged values, go back to 7b if the results are not conclusive Step 8: Fix the problem Step 9: Restore all the code that has been commented out during troubleshooting And now repeat 500 times 'I WILL NOT SHOUT AT THOSE WHO TRY TO HELP ME'. Edit: And there is also the tiny possibility that the compiler is a little antiquated and has a little problem with newer windows versions. Edit^2: Borland C++ Builder is from 2002. 10 years old, meaning it's probably a rare item in computer museums :)

                  At least artificial intelligence already is superior to natural stupidity

                  G Offline
                  G Offline
                  Gary Huck
                  wrote on last edited by
                  #33

                  Thanks for brightening up my morning! Such things make me :)

                  1 Reply Last reply
                  0
                  • J Jorgen Andersson

                    I remember fixing unstable hardware by putting a probe onto the right place.

                    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 Huck
                    wrote on last edited by
                    #34

                    All you guys let that one go?!

                    1 Reply Last reply
                    0
                    • V Vasily Tserekh

                      I surely know what i am talking about, HOW TO CLEAN A CODE THAT YOU CANT DEBUG. and surely you have ever worked with c++ builder 6, c++ builder doesnt have a debug and release version it only has a single output, instead of giving new ideas you talk about how good you are and how ignorant i am. I will make it simple so your mind can understand!!! step one -you write code step two -you compile that code step tree your ide launches the .exe and you try it step four you test your program and i does just fine step five you go to the application folder and make double click on the executable step six the application show and erro message with no error at all now you get it, how CAN YOU ISOLATE THE PROBLEM and when you isolate it what will you do if you can trace what is wrong

                      K Offline
                      K Offline
                      krsmichael
                      wrote on last edited by
                      #35

                      I promise you that you surely don't know what you are talking about. The symptom you are describing is an operating system issue. You are: step one - missing dlls. C++ Builder will alter the environment variables to account for any dlls you are dependent on. step two - when your code is in the wild, it needs the dependent dlls. That includes any dlls that you have written and the C++ Builder C/C++ runtime dlls. step three - if you were using Visual Studio, you would need to install vcredist when running wild. step four - Java, C#, Python... all have their issue that correspond to this one. step five - Don't post here and ask for help and then argue with the people who are trying to help you. You come off arrogant and based on your first post, you don't have the right to be that arrogant. If you hate C++, try C#. If you know C#, stick with C#. Just know that you won't be able to do anything outside the sandbox.

                      V 1 Reply Last reply
                      0
                      • V Vasily Tserekh

                        hello, thanks for the help but that was five years ago that was the ultimate reason to select C# as main language, I have not any plans to fix that code i dont need it. Now i remember the error message: a popup window with this: external exception and no more, somewhat i located the error message in a simply i/o read but i couldnt do anything because the SAME code worked in other projects and I wasnt able to tell what was wrong i had to drop the project. now c++ fans how many times where you stucked because an error that have you haunted for weeks- a LOT since i use c# i never ever had an uncomprehensive stupid error again and please this is not a question forum i post it here to see if anyone had that kind of error once in their lives to feel that i am not alone

                        K Offline
                        K Offline
                        krsmichael
                        wrote on last edited by
                        #36

                        I have never had a problem haunt me for weeks. Post your code here for review. I'm certain I could fix it in a few minutes. I can write C# code that would haunt you for weeks. As far a feeling alone. I'm certain that you are not alone. I work with other engineers who are stuck a Perl. When they try Python or C#, there are too many problems to solve. They will tell you that Perl is easy and doesn't have any problems. Take an assembly language class. I think it will illuminate just what computers do.

                        V 1 Reply Last reply
                        0
                        • L Lost User

                          Step 7a: Read the code and try to locate the problem by analysis Step 7b: (only if 7a fails) Try to shorten the code to rule out as much of it as possible as source of the problem Step 7c: Identify potentially problematic code in what is left over and monitor it by logging Step 7d: Draw conclusions from the logged values, go back to 7b if the results are not conclusive Step 8: Fix the problem Step 9: Restore all the code that has been commented out during troubleshooting And now repeat 500 times 'I WILL NOT SHOUT AT THOSE WHO TRY TO HELP ME'. Edit: And there is also the tiny possibility that the compiler is a little antiquated and has a little problem with newer windows versions. Edit^2: Borland C++ Builder is from 2002. 10 years old, meaning it's probably a rare item in computer museums :)

                          At least artificial intelligence already is superior to natural stupidity

                          E Offline
                          E Offline
                          exegetor
                          wrote on last edited by
                          #37

                          Everybody hold on one minute and take a deep breath. True: the HoS is not for questions. So look closely at the title of this thread and the original post. Vasily did not ask a question, he told a story from long ago (C++ builder 6 came out in 2002) when he was "beginning to make some programs" and ended up hating C++. He was not asking for help, and he reasonably responded to unsolicited advice by reasserting his reasons for hating C++. You may not share or understand the bad taste the experience left in his mouth, but do not slam his competence (he was a beginner ten years ago, remember?) and drag him into a screaming match then bitch-slap him for getting frusterated. Get a GRIP. Now... I learned to program as a kid in the early 80's and was good at it until I tried to learn OOP and windows programming simultaneously without a teacher, using Borland OWL on Win3.1. With no internet. The documentation was...terse. My code was corrupting the bitmaps used for drawing the minimize/maximize/close buttons. My code crashed. Then my code crashed WINDOWS and dumped out to the command prompt. Not kidding. Bad taste in mouth. For Windows, lParam, wParam, C++, Borland, the whole mess. It was definately HoS experience. I still hate C++ on a deep emotional level that will not be mollified by any appeal to reason. Today I program command line apps in ANSI C and couldn't be happier.

                          V S 2 Replies Last reply
                          0
                          • V Vasily Tserekh

                            a price that you wont notice on core i processors

                            S Offline
                            S Offline
                            Stefan_Lang
                            wrote on last edited by
                            #38

                            In case you didn't realize: the reason Vista was so bad was that it was mostly programmed in C#. The result was a shabby, unstable, and unreliable system that was unusable to thousands of users all over the world. The reason Windows 7 is a lot more stable is that MS reprogrammed much of the OS in C++. Also, the error message you got most certainly wasn't related to what programming language you used. If you had done the same in C#, most likely the only difference would have been that you might have been given a hunch of what library or subsystem was at fault. A short question on a user forum like this likely would have provided you with the means of that same info as well, and on top of that with some advice how to fix it. You had an unlucky experience at a time when you were experimenting with C++, but that doesn't mean that C++ at fault anymore than your car manufacturer is at fault when a meteor hits your car.

                            1 Reply Last reply
                            0
                            • L Lost User

                              Vasily Tserekh wrote:

                              now c++ fans how many times where you stucked because an error that have you haunted for weeks- a LOT
                              since i use c# i never ever had an uncomprehensive stupid error again

                              Sounds like a case of selective perception to me. I would also like to have that version of the .Net framework that never does strange things :) C++ has two faces. It allows low level programming close to the computer's hardware, down to supporting writing assembly directly. On the other side it allows to go to a very high level, not dissimilar from what you do in C#. What makes C++ so scary? It can't be strange behavior, because you will encounter that in some form everywhere. C++ libraries are not perfect and the .Net framework also is not. The scary part must actually be low level programming where you must know what you are doing but also get very fine control over what's going on in return. Don't you know that the nice safe .Net world has a price?

                              At least artificial intelligence already is superior to natural stupidity

                              A Offline
                              A Offline
                              Alan Balkany
                              wrote on last edited by
                              #39

                              Yes, the .NET framework DOES sometimes malfunction and do strange things. But I have to agree with VT that it's much more common in C++.

                              "Microsoft -- Adding unnecessary complexity to your work since 1987!"

                              L 1 Reply Last reply
                              0
                              • V Vasily Tserekh

                                When i was beggining to make some programs i had to make a small ellectronic book in c++. It started ok, i managed to make a reader and an editor and then came the worst error a programmer can have. When I compiled the program it went smoothly but when i openned it from windows it showed and internal error message whit no message. I suspected it was an I/O error because when i copied the program to c: or d: didnt showed the error but when i placed in other folder that wasnt the root it showed the error message

                                C Offline
                                C Offline
                                code_junkie
                                wrote on last edited by
                                #40

                                If you wanted to teach a monkey how to code you wouldn't use C/C++. You'd use VB or C# ;P

                                K 1 Reply Last reply
                                0
                                • E exegetor

                                  Everybody hold on one minute and take a deep breath. True: the HoS is not for questions. So look closely at the title of this thread and the original post. Vasily did not ask a question, he told a story from long ago (C++ builder 6 came out in 2002) when he was "beginning to make some programs" and ended up hating C++. He was not asking for help, and he reasonably responded to unsolicited advice by reasserting his reasons for hating C++. You may not share or understand the bad taste the experience left in his mouth, but do not slam his competence (he was a beginner ten years ago, remember?) and drag him into a screaming match then bitch-slap him for getting frusterated. Get a GRIP. Now... I learned to program as a kid in the early 80's and was good at it until I tried to learn OOP and windows programming simultaneously without a teacher, using Borland OWL on Win3.1. With no internet. The documentation was...terse. My code was corrupting the bitmaps used for drawing the minimize/maximize/close buttons. My code crashed. Then my code crashed WINDOWS and dumped out to the command prompt. Not kidding. Bad taste in mouth. For Windows, lParam, wParam, C++, Borland, the whole mess. It was definately HoS experience. I still hate C++ on a deep emotional level that will not be mollified by any appeal to reason. Today I program command line apps in ANSI C and couldn't be happier.

                                  V Offline
                                  V Offline
                                  Vasily Tserekh
                                  wrote on last edited by
                                  #41

                                  great, at least someone got my message, a lot of great programmers had their bad days with c++ at least i was lucky to live in a time were you have plenty other options, i was only geting out an old frustration and everyone that didnt had a bad time with c++ cant call himself a good programmer

                                  exegetor wrote:

                                  I still hate C++ on a deep emotional level that will not be mollified by any appeal to reason.

                                  I really enjoyed that quote it made me laught

                                  1 Reply Last reply
                                  0
                                  • K krsmichael

                                    I have never had a problem haunt me for weeks. Post your code here for review. I'm certain I could fix it in a few minutes. I can write C# code that would haunt you for weeks. As far a feeling alone. I'm certain that you are not alone. I work with other engineers who are stuck a Perl. When they try Python or C#, there are too many problems to solve. They will tell you that Perl is easy and doesn't have any problems. Take an assembly language class. I think it will illuminate just what computers do.

                                    V Offline
                                    V Offline
                                    Vasily Tserekh
                                    wrote on last edited by
                                    #42

                                    I am an informatic engineer i do know how computers work, and I have made several programs in asm

                                    1 Reply Last reply
                                    0
                                    • K krsmichael

                                      I promise you that you surely don't know what you are talking about. The symptom you are describing is an operating system issue. You are: step one - missing dlls. C++ Builder will alter the environment variables to account for any dlls you are dependent on. step two - when your code is in the wild, it needs the dependent dlls. That includes any dlls that you have written and the C++ Builder C/C++ runtime dlls. step three - if you were using Visual Studio, you would need to install vcredist when running wild. step four - Java, C#, Python... all have their issue that correspond to this one. step five - Don't post here and ask for help and then argue with the people who are trying to help you. You come off arrogant and based on your first post, you don't have the right to be that arrogant. If you hate C++, try C#. If you know C#, stick with C#. Just know that you won't be able to do anything outside the sandbox.

                                      V Offline
                                      V Offline
                                      Vasily Tserekh
                                      wrote on last edited by
                                      #43

                                      I have seen a lot of guys here that doesnt have a clue of what they are talking about. C# its not a sandbox, after passsing an enormous amount of time porting C lines to C# (ak NEHE lessons to my game engine) i realized that there are almost anything that c\c++ can do that c# doesnt you can use pointers(althought not encouraged) you can system make dll calls, working with data streams is a wonder, if you havent tryed try it. The only thing is that you lose control not in doing a task you lose control in how is done. Just tell me one thing that c/c++ can do that c# dont(please dont tell me inline asm)

                                      K L 2 Replies Last reply
                                      0
                                      • V Vasily Tserekh

                                        a price that you wont notice on core i processors

                                        S Offline
                                        S Offline
                                        Stephen Dycus
                                        wrote on last edited by
                                        #44

                                        Do you only develop for yourself? Saying that performance is fine on YOUR computer doesn't mean it's good for your users. Also, no I've never been stuck for weeks on a problem with C++ code... I've been stuck getting libraries to work (opengl, sfml, etc) but I know how to properly debug... In fact if you are hiding behind C# instead of learning to debug with unmanged languages, you are hurting yourself in the long run... Those skills are relevent in all languages and will help you the next time C# throws you a fancy error message that you can't make heads or tales of.

                                        L 1 Reply Last reply
                                        0
                                        • V Vasily Tserekh

                                          I have seen a lot of guys here that doesnt have a clue of what they are talking about. C# its not a sandbox, after passsing an enormous amount of time porting C lines to C# (ak NEHE lessons to my game engine) i realized that there are almost anything that c\c++ can do that c# doesnt you can use pointers(althought not encouraged) you can system make dll calls, working with data streams is a wonder, if you havent tryed try it. The only thing is that you lose control not in doing a task you lose control in how is done. Just tell me one thing that c/c++ can do that c# dont(please dont tell me inline asm)

                                          K Offline
                                          K Offline
                                          krsmichael
                                          wrote on last edited by
                                          #45

                                          Vasily, by definition, C# is a sandbox. That is what managed code means. You run in a sandbox and don't have access to the process space. Sandbox. Got it? So, you want one thing? Write me a device driver in C#. Another? Write me an HTTP server that can handle 100,000+ simultaneous connections. I can do that in C++ using overlapped IO and completion ports. I hear the same arguments from the Java guys. My Grails on Groovy on Java framework can handle 200 simultaneous connections and it doesn't matter because I can throw more hardware at it. Do you have any idea how many machines you will need to replace the 1 C++ machine? You talk about making system DLL calls. What do you think those DLLs are written in? And, BTW, if you don't have the C/C++ run-times installed, those DLLs will not load either. I gave you the solution to your problem. I use QT. QT's streams are a wonder as well. And you know what, they are a lot faster too. QT and C# with WPF gives you declarative programming. Guess what, C++ and QT are much faster again. Both are equivalently trivial. You allude to an idea that I don't have a clue. Go back and read what I wrote about insulting people when you make a bold statement and then try to argue the point. My guess is you are about 15 years old. You are learning to program and you still have holes in your knowledge. Me, I'm 50 years old. I've been doing this since the Apple II days. I've done mainframe. I can do assembly, PASCAL, PL1, C, C++, C#, Perl, Python, JavaScript, Java, HTML, device drivers, DLLs, servers, clients, OpenSSL, mobile devices, and much more. I can do all this stuff on Windows, Windows CE, MacOSx and Linux. Oh, and BTW, you can't do inline ASM. M

                                          K V L 3 Replies 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