Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"C++ will take you everywhere"

So will wire-wrap, but are you going to try wire-wrapping a word processing program? C++ is able to do anything that Lisp, Haskell, or Scala can do, but with at least an order of magnitude more work for any non-trivial project. That order of magnitude can make a difference in getting your project done at all.

"I can confidently say my C++ code will scale."

I can say the same about my Lisp code. In fact, I switched to Lisp to improve scalability over the original C++ codebase, because improving scalability required a higher-level approach. Sure, it could have been done in C++ -- which would have added at least a month of extra work, which I really cannot spare right now.



We all know that the C language is more a low-level system language than it is something else. Especially for this "something else" the use of other languages thrived. C++ since its appearance brought continuously on the table things to cover these higher levels of programming. This is what makes C++ a language that "will take you everywhere". Use newer incremental additions and you will do what Lisp, Haskell or Scala does without that "order of magnitude more work".


"C++ since its appearance brought continuously on the table things to cover these higher levels of programming."

I see two issues with this statement:

1. The attempts to bring high-level constructs to C++ seem to always come up short. Example: it is still not possible to create something as simple as a doubly-linked list using the standard automatic memory management constructs in C++.

2. Low-level issues creep into high-level constructs rapidly and conspicuously. Example: you have an iterator pattern for sequence types, but if you are not careful you can create a dangling pointer (and no exception will be thrown).

This is why I say (and why my experience has been) that C++ adds an order of magnitude of work to any non-trivial project. The high-level features are poorly conceived and muddied by low-level issues.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: