5 ms·
Therein lies the perception problem: a lot of folks think that C++ is a static target, but it's not. It has improved by leaps and bounds over the past decade or
by general_ai 10y ago
Therein lies the perception problem: a lot of folks think that C++ is a static target, but it's not. It has improved by leaps and bounds over the past decade or so, and will improve a lot more this year when C++17 support becomes widespread. I find anything from C++0x onwards pretty pleasant to work in if you're on a UNIX-like OS. Windows is another story entirely.
- alfalfasprout 10y agoComing from a Linux/OSX world I had to port a library to Windows the other day. That used to be an utter nightmare with C or pre-C++11 codebases. I actually found it pretty painless. The only things I found annoying were the various syscalls and interacting with the crypto libraries (and you thought openssl was ugly...). Modern C++ is pretty darn nice to work with. It's not a "safe" language by any means, but with good tooling, design, and a good static analyzer you can prevent the vast majority of memory bugs you'd run into with C. Plus the compilers are so mature you get great performance right out of the box.
- general_ai 10y ago>> you get great performance right out of the box Yup. And if you don't you can drop all the way down to intrinsics and assembly. It's pretty nice.
- pjmlp 10y ago> Windows is another story entirely. Actually Windows has always enjoyed better C++ related tooling than any UNIX other than Mac OS X. And standards compliance is actually the best one among commercial C++ vendors.
- AstralStorm 10y agoExcept the most important one, that is Microsoft. Only newest versions are passable. EDG does not support C++14. Embarcadero (C++ builder) is also behind. ICC I'm not sure, but should be modern. Other important commercial windows compilers I missed?
- pjmlp 10y agoIntel? http://en.cppreference.com/w/cpp/compiler_support http://en.cppreference.com/w/cpp/compiler_support Also there is the world of commercial UNIXes, mainframes and embedded OSes, where using clang or gcc isn't always an option. For example TI is still stuck on C++98, not even C++03.
- general_ai 10y agoThat's what Microsoft wants you to believe. In reality C++ tooling is vastly better on any Unix, and it's 100% free in both senses of the word. Also, there's no qualitative difference between C++ toolchains on macOS and Linux, since the same compilers are used on both.
- pjmlp 10y agoYet another UNIX user that never used Borland C++, C++ Builder, Zortech C++ debuggers, Visual C++... > no qualitative difference between C++ toolchains on macOS and Linux, Where is Instruments, XCode, Cocoa, IO Kit for GNU/Linux?
- general_ai 10y agoOf these I used all but Zortech. None of them compare to GCC6. I've also used Microsoft C++ compiler fairly recently. It's not even close. I don't use Xcode when coding C++ on OS X, vim + YouCompleteMe beats the heck of any IDE I have ever used. I prefer Linux "perf" to Instruments, too. It's not an option on the Mac, but if it was, that's what I'd be using.
- pjmlp 10y agoHow do you do these tasks with GCC 6? - graphical debugging of parallel tasks and threads - displaying data structures graphically with code navigation - WYSIWYG UIs with tooling like Blend - GPU debugging - Code navigation across object files, shared libraries and source code - Incremental compilation and linking with intermediate representations stored in a database. - Out of the box representation for all STL data structures and user defined types Tooling is much more than just a plain old compiler.
- general_ai 10y agoThat's the first time I've seen a VS user praise MSBuild, which is utter garbage. On the unix side you won't hear much praise for GDB or LLDB, but for everything you've listed numerous tools exist. Eclipse in particular has superior code indexing/navigation capabilities. Both QT and GTK have GUI builders. NVidia provides a plugin to debug and profile GPU code. What Microsoft compiler doesn't provide in my experience is decent codegen.