Hacker News new | ask | show | jobs
by mantap 2409 days ago
This is the putting one's head in the sand methodology of programming lanaguge design.

Go's answer to metaprogramming is source code generation. There are many problems with C++ but the existence of the template system isn't one.

1 comments

For you it isn't. But for a lot of us it is cumbersome and just plain complex.
The source of complexity is in the problems C++ is designed to solve. I use C++ metaprogramming for problems that require it.

Sure, Boost is full of metaprogramming insanity, but with today's C++ standard library it's not necessary to use Boost.

10 years ago template heavy code in C++ did suck, because we had slow compilers, dumb build systems, 7200 rpm HDDs and a need to use Boost to augment the bare bones standard library.

I'll be the first to admit that C++ has decades of cruft and design errors. But the metaprogramming works pretty well now. C++'s current problems are (IMO) weird undefined behavior, e.g. the distinction between POD and non-POD types; having both pointers and references, the ancient exception system, and in general a lack of tools for enforcing memory safety.