4 ms·
One of the reasons why I try to avoid C++ is that it's an unopinionated multi paradigm kitchen sink language. There are great uses and great features, but ther
by JAlexoid 5y ago
One of the reasons why I try to avoid C++ is that it's an unopinionated multi paradigm kitchen sink language.
There are great uses and great features, but there are so many of them and everyone has their own opinions.... Even in this thread there's a clear subset of people who "adore" C++ exceptions
- zozbot234 5y agoThere's no such thing as an "unopinionated" kitchen sink language. Language features have all sorts of unforeseen interactions that must be handled somehow, and good high-level design is needed to ensure that the interactions are sensible.
- JAlexoid 5y agoWe're in the context of such unforeseen interaction.(Ironic, isn't it)
- Koshkin 5y agoC++ is definitely unopinionated. Its evolution follows the path dictated by necessity, not opinion.
- Rexxar 5y agoThe "necessity" is defined by the three foundational opinions of c++ : - zero cost abstraction - system language - compatibility with C toolchain
- jcelerier 5y agoSo interesting, to me a language being opinionated is the main reason to put it on the do-not-use bin. I strongly believe that the best way to develop is through embedded domain-specific languages adapted to individual problems, and opinionated languages are always way too limiting regarding that.
- JAlexoid 5y agoYour statement contradicts itself - you're against optionanted languages, but insert an opinionated language(DSL) into an unopinionated language.
- jcelerier 5y agoWhen it's an embedded dsl you always have the escape hatch of the entire host language - and it is not shocking to use it: being in an eDSL does not mean that you have to agree to it religiously, it's always a case-by-case engineering tradeoff. Whereas when in an opinionated language and you cannot do what you want... Ugly hacks such as people using bash scripts, mustache templates, etc ... to preprocess their code to get what they want quickly happen.
- ncmncm 5y agoNo contradiction. It is not the job of a general-purpose language to insert its own opinions. That is the system designer's job. Fighting with the language's opinions is a recipe for failure.
- atq2119 5y agoC++ is opinionated, just not in the same way as other programming languages. That is its strength. (Perhaps the clearest C++ opinion is "zero cost abstractions")