Why is starting a C++ project so overly complicated and annoying?!

So many different compilers. So many ways to organize the files. So many inconsistencies between Linux and Windows. So many outdated/lacking tutorials. So many small problems.

Why is there almost no good C++ IDEs? Why is Visual Studio so bizarre? Why are the CMake official tutorials literally wrong? Why can't we have a standard way to share binaries? Why can't we have a standard way to structure project folders? Why is the linker so annoying to use?

Don't get me wrong, I quite like the language and I love how fast it is (one of the main reasons I decided to use it for my project, which is a game almost comparable to Factorio)... But why is simply starting to write code such a hassle?

I've been programming in Java for years and oh god I miss it so much. JARs are amazing. Packages are amazing. The JDK is amazing. Everything is standardized, even variable names.

I'm so tempted to make this game in Java...

But I can't. I would have a garbage collector in the way of its performance...

  • 3
    I used to do C++ and started out with CodeBlocks.

    I thought it was just a beginner C++ IDE at first but I continued to use it for a long while, works great
  • 5
    C++ is easy to setup with visual studio, you press 2 fucking buttons.

    Prove me otherwise.
  • 3
    @D--M Sure. Now try to develop a project with someone using Linux. You use Visual Studio, and what do they do?
  • 3
    Play with themself while you do all the work. /S

    Should I also provide support for my third-party free linux from scratch installation that only has free software cause stallman rules?

    (Bit of a stretch, but you get the point)

    When a new team member joins and they have the above mentioned system, then its up to them to figure out how to compile it. This holds true in every job. I'm not fixing someone elses shit because they decided to bring an obscure setup into my project.
  • 7
    I can recommend CLion(IDE) and SFML(Graphics library)
  • 2
    Finding a Decent IDE for C++ is not hard its the cross platform that is Hard. You need to know what to #include for cross platform and what Libs are available cross platform. But this is the very reason C/C++ is best in class when it comes to performance and low level / OS level or graphic or gaming development. You need to compile for a specific platform with the right Performance Optimized Libs... there you go.. Hard to break Binary...
  • 6
    Well you have CLion, Netbeans, and Eclipse CDT as the cross platform options.
    If you use CLion it's based around CMake, makes it pretty simple to use.
    Learning CMake is easiest if you Google/Duck how to do specific things, instead of looking for a general tutorial. Just go to an existing project and have a look at the cmakelists and cherry pick what you need.

    C++ is pretty fragmented yeah but that's also in part because of how low level the language is. Also, ~most~ C++ compilers are standards conforming, which means that you can use any one of them to compile your cross platform code, and compiler flags and all don't really matter if you're using a meta build system like CMake.

    Boost is a set of standard cross platform libraries that can really help your development, btw. Also there are a ton of cross platform libraries like SDL2, SFML, and so on.
  • 3
    Jetbrains has ide for c++
  • 3
    - CMake isn't as fucked up as you first think.
    - Ide? *insert Unix as ide philosophy* + text editor: (n)vim
    If thats not right for you, use emacs.(spacemacs is a great way to get started)
  • 0
    I hate #Including headers, some fucking static libraries. Missing symbols.
  • 0
    Remembering libraries names...
  • 1
    What the hell, its not that hard. Even without an IDE. all you need is a gcc -c $FILE $FLAGS call for every .cpp file in your project, and then link all .o and .a/.lib files into the executable and store your .so/.dll files next to it or tell gcc where to find them using -L<path_to_libs>. put all that in a Makefile and thats it.
  • 0
    Hey, vim has a feature for that
Your Job Suck?
Get a Better Job
Add Comment