>>31844I would argue the c++ standard being bloated is a symptom of it being a terrible language. For C the ~150 pages are more excusable, as it has to deal with a lot of historical corner cases, which programmers usually are better off avoiding anyways.
Writing a working C compiler is an undergraduates assignment and writing an ANSI conformant C compiler is doable for a single person In contrast the niche gcc and llvm/clang occupy is high-performance, aggressive optimizing compilers, which need to support a lot of hardware and offer a continuous source of low-level regressions.
"Languages", in the semantic sense, ought to be small and everything else written as part of the standard library, something i like about traditional lisp systems and ironically see traces of in javascript. And if the language cannot be small, avoiding an historically accrued behemoth like c++ at least requires orthogonal design. Owing to a lot of specialized language constructs, i would not call Ada a small language, but there is a clear intent to the way projects, subprograms and code are structured.
Compare that to rustc, which already piggybacks off of the llvm, yet development has been ongoing since 13 years, which currently seems to consist of mostly pushing language features to nightly and seeing what sticks. Does that not seem like c++ all over again?
C/UNIX forces you to deal with memory management in very explicit and tedious terms. The language itself isn't this hairtrigger footgun everyone makes it out to be though. I'm convinced many of the people lambasting C are only writing code in it like its a funky ratfor, being allergic to the actual language features:
lambdas? function pointers!
closures? function state struct pointers!
interfaces? structs of function pointers!
classes? declare method as function prototypes in a header!
polymorphism? union { int type; … };
Post too long. Click here to view the full text.