I haven’t programmed C++ in years. At one point, it’s all I did for about a decade. I finally got away from it, because it seemed to take forever to write programs, compared to other languages (like C# for example).
This video tempts me to look again:
(1) The new “modern style” C++ compares favorably to python (in one example).
(2) Towards the end of the video when he compares array insertion in a linked list to an array – that was suprising and amazing.
I did not watch this video, but there are at least two caveats:
Most of the C++ code out there is not C++11, so even if the best C++11 code rivals Python somehow, anything useful you do is going to be stuck interfacing with pre-C++11 codebases.
Even if someone is writing C++11 code, they often have to interface with pre-C++03 code somehow, so the interface their API exposes is probably not likely to be a nice C++11 one.
For an upcoming project, the customer wants to use a compiled language for one critical module – so no C# for example. I was considering learning GO and using that just to avoid C++. There won’t be a lot of library usage. So for my particular “green fields” case, C++ is an option.
Really the hardest thing will be figuring out what “old” language features (that I already know) should be avoided. From that point of view, an entirely new language like go has some advantages.
My own suggestion is for Ocaml. It has excellent single threaded performance. Expressive type system. And the community is growing. If both C++ and Go would suit your needs, then Ocaml would as well.
I haven’t programmed C++ in years. At one point, it’s all I did for about a decade. I finally got away from it, because it seemed to take forever to write programs, compared to other languages (like C# for example).
This video tempts me to look again: (1) The new “modern style” C++ compares favorably to python (in one example). (2) Towards the end of the video when he compares array insertion in a linked list to an array – that was suprising and amazing.
I did not watch this video, but there are at least two caveats:
Most of the C++ code out there is not C++11, so even if the best C++11 code rivals Python somehow, anything useful you do is going to be stuck interfacing with pre-C++11 codebases.
Even if someone is writing C++11 code, they often have to interface with pre-C++03 code somehow, so the interface their API exposes is probably not likely to be a nice C++11 one.
The downsides of backwards compatibility.
For an upcoming project, the customer wants to use a compiled language for one critical module – so no C# for example. I was considering learning GO and using that just to avoid C++. There won’t be a lot of library usage. So for my particular “green fields” case, C++ is an option.
Really the hardest thing will be figuring out what “old” language features (that I already know) should be avoided. From that point of view, an entirely new language like go has some advantages.
My own suggestion is for Ocaml. It has excellent single threaded performance. Expressive type system. And the community is growing. If both C++ and Go would suit your needs, then Ocaml would as well.