Its astonishing. More than 2 years ago I started digging deeper into C++. The journey was long and I didn't know where it would lead me. I looked at a number of books and an even greater number of links on the internet and I never came to the point where found myself saying: Done. Well, I'm still not at this point, but there's one thing clear to me now....
And this is the destination of the journey. All the time I thought that it's only about clever coding. Surely this is one aspect but it's only one. And the fundamental thing I found (at least for me) is that source code expresses some higher level construct. This has nothing to do with philosophy though it may read like it had. Source code expresses how requirements for a piece of software are implemented. And there are lots of requirements all of which do not have to do anything with functional requirements that originate in a certain problem domain. When I think of requirements the first thing that hits my mind are questions like: How does the software vary? Under which conditions does it vary? When does it vary? So for me software is nothing fixed. It's not a blobb that's written and never changes? It's not even meant to be this way.
I went on a journey starting at C++ coding techniques and now I find myself at a place where a much more fundamental concept drives my thoughts - variability and how it can be achieved. Efficiently.
One thing I am sure that can adress this issue is a thing called Generative Software Development. There is a lot of research going on in this field and one very important point is to find out which parts of a system vary and which do not. This is then expressed in a so-called feature model (which is another form of modelling software). But it's not the only way of modelling software. For instance in the field of Generative Software Development it is often spoken about Domain specific Languages (a word which I came across right while reading about C++ templates and metaprogramming techniques based on them - isn't that funny?). DSLs can be used to modell certain parts of a software system. The resulting models can then be interpreted by some form of code generator and mapped either to other models or to components written in C++ (well actually written in every other programming language). This is kind of a closed-circle-feeling because my journey started at a point which I was not always sure about. And now I find out that "my favourite programming language" is one of not so many that adresses very up to date software development paradigms. And if you have a look at some proposals for the upcoming C++ standard then you will find out that this seems to be intention and not only an accident -> Concepts in C++.
So to answer the question part that comes along with the title of this posting. After C++ for me there is software development based on models, modelling tools and languages which can be mapped to general purpose programming languages like C++ the next big thing.