2 ms·
> Yes - you can write anything, but it took months and months and months. The C & C++ of 30 years ago, where compile times took days - sure. Nowadays building
by jcelerier 7y ago
> Yes - you can write anything, but it took months and months and months.
The C & C++ of 30 years ago, where compile times took days - sure. Nowadays building a whole yocto software stack, basically a full linux distro - from GCC, to the kernel, to glibc, to X11, to Qt takes 6 to 8 hours in a good laptop.
In addition, modern language features & the general shift from runtime to compile-time polymorphism, especially in C++, make the potential for errors decrease sharply, and language simplifications - standard library improvements, terser syntax, also make time to release go down.
Finally, tooling has greatly improved : I barely ever need to run a build with my IDE to check for errors, because IDEs now embed clang, clang-tidy, clazy... which checks your code as soon as you type and highlight it in the editor. And asan, ubsan, handle the remaining cases which cannot be caught at compile time, leaving only logic errors to handle.
- AstralStorm 7y agoThis. The one problem is a lack of a solid networking library. Unix sockets/winsock is ancient and terrible with tons of corner cases, Boost ASIO is creaky and "boosted", other useful things like 0mq are good for IPC but not Internet. Qt eats the world and is a pain to integrate. Libevent, libev etc. are not C++ and still pain to integrate. Maybe there is some library that is lesser known but good. As for time to develop, besides networking, C++ wins, even for hack projects, in comparison with Python even, JS/HTML/CSS w/ framework stack being far slower and making for terrible UX. (I'm not writing about languages I do not use.) Java and C# can be fast too, but it hits the limits when you actually have to calculate things which gets real awkward real fast. The main win is... Tooling. Java tooling is best now since maven and ant are mostly gone legacy, then C++ (I'm counting Qt Creator and Glade, cmake is eh, cmake+something is ok), then finally JS tied with Python. JS fails terribly on debugging and the creaky rarely adaptable UX libs, while Python after all these years still has tooling issues. (Plus performance where it matters.) Rust is not there yet, maybe soon. Scala is nice though fewer people can use it than new C++. Honorable mention to specialized tools like R, Faust, Lua, Matlab and Fortran. Note they integrate well with C and C++... Try anything else and you're in for a ride. Even second most supported, C# and Java, go through a C FFI layer.
- ckannan90 7y agoPretty sure the comment you're replying to is talking about development time, not compile time. They're claiming it took months longer to develop a similar app in C, not that it took longer to compile. Even if compile times are negligible now for the reasons you state, they still have a point about it taking longer to develop an equivalent app.