News for hackers. Stuff that matters.
Re:C99/C11 dynamic array that mimics C++'s std::vector by jokoon on Saturday January 07, 2017 @11:00AM (#13344719)
A solution might be a minimal subset of C++, so with STL containers, some syntactic sugar, easier and faster to compile (modules), etc.

Basically what go and rust have achieved, except you keep most of the C/C++ syntax "taste", and you remove too high level stuff like templates and inheritance. Honestly I don't think templates are so useful, since most programmers already re-use STL containers, which are templates, but nobody really write relevant template classes.

> That's probably the C++ community's fault

The problem with C++ is backward compatibility with C and big corporations trying to not break their codebase. It makes it very hard to make the language evolve. For example D is a very good language, but it can't gain momentum as long as it doesn't have a real way to gain presence. We just have to wait that corporation clean their codebase to make room for C++ compilers to adapt, and then things should improve.

Re:C99/C11 dynamic array that mimics C++'s std::vector by tines on Saturday January 07, 2017 @11:08AM (#13344769)
You can't have the STL containers without templates though. If you want to special-case them in the compiler, then what about the algorithms library? If you want to keep the algorithms library, then what about your own code that implements a higher-level algorithm using the lower-level ones in the algorithms library? Without templates you have to write your algorithm once for every type of container, or else use indirect function calls which would not be good. So this won't really work well I think.

For me, the only selling point of C++ is templates, and I've never written a nontrivial program that didn't use them (and I like to think that I don't just use them frivolously).

Re:C99/C11 dynamic array that mimics C++'s std::vector by sgeisenh on Saturday January 07, 2017 @12:14PM (#13345194)
Parametric polymorphism is a powerful abstraction. Makes for much more readable programs than ad-hoc polymorphism a la vanilla C.
Re:C99/C11 dynamic array that mimics C++'s std::vector by 72deluxe on Saturday January 07, 2017 @02:03PM (#13345898)
You do realise that STL containers fundamentally rely on templates, right?

We use loads of template classes at where I work. Our code would not be maintainable without them.

Re:C99/C11 dynamic array that mimics C++'s std::vector by jokoon on Saturday January 07, 2017 @03:23PM (#13346405)
I know, but that doesn't change the fact that other languages don't have templates and still have containers, meaning maps, vectors, etc.
Re:C99/C11 dynamic array that mimics C++'s std::vector by pjmlp on Saturday January 07, 2017 @05:09PM (#13346930)
They have simplified templates, aka generics.

The biggest difference is that templates are more expressive, allowing for compile time meta-programming.

Re:C99/C11 dynamic array that mimics C++'s std::vector by pkolaczk on Sunday January 08, 2017 @07:23AM (#13349418)
I'd rather say templates are a hack to get generics in C++, because C++ lacks real generics contrary to eg. Java, C#, Haskell or Scala. Templates used as generics are limited in a way that the typechecker can't reason about generic types, only concrete types, which leads to horrendeous error messages and makes it impossible to prove generic library code type-safety. Type templates are templates, not types.

On the other hand templates used as a metaprogramming tool fall behind any modern macro system.

Re:C99/C11 dynamic array that mimics C++'s std::vector by fjrieiekd on Sunday January 08, 2017 @07:56AM (#13349514)
Rust is getting there but still lacks type-level integers, and macros are waiting for macros 2.0. It would also be neat to have the ability to run any function at compile time, but I don't think that's in the cards.
Re:C99/C11 dynamic array that mimics C++'s std::vector by pjmlp on Sunday January 08, 2017 @10:23AM (#13350023)
True, but as someone that spends the majority of his programming time between Java and C#, with C++ only when required, I do miss their power.

Also it is way better with latest standard improvements.

Re:C99/C11 dynamic array that mimics C++'s std::vector by jimktrains2 on Sunday January 08, 2017 @07:38AM (#13349467)
Sure, and those without templates, or at least generics, aren't type-safe.