Re:A Farewell to FRP
by marcosdumay on Wednesday May 11, 2016 @09:33AM
(#11675068)
Both languages have approximately the same problems for debugging. Explicit memory references are hard to follow, lack of overflowing protection requires a lot of extra caution to catch the errors, and failures lead to an unforgiving stop with at most a core dump. C++ is much better for statically catching errors, but templates and copy/move semantics make it even harder to debug.
And yes, I imagine C++11 is much better. Unfortunately, I didn't write anything big in C++ since then.
Re:A Farewell to FRP
by rubber_duck on Wednesday May 11, 2016 @11:09AM
(#11676019)
You avoid explicit references in C++11 and use STL containers which check for overflow.
I agree that C++ can have the same issues but the frequency is not comparable because you don't drop to those unsafe parts if you don't have to.
So with C++14 I get that "if it compiles it runs" feeling comparable to say C#.
Are we talking C or C++ ? C compiler is basically useless for compile time error checking because C type system is ridiculously weak. C++ on the other hand can buy you a lot of things with templates, richer type semantics, etc.
And also keep in mind that C++11 and onward is very different from C++ of yore and it catches a lot of errors at the compile time - move semantics and RAII really buy you a lot - the downside is that it's opt-in so the compiler won't force you - and it's less strict than say Rust, but it still gets you there 90% of the way.