NP doesn’t mean “non-polynomial time”, it means “nondeterministic polynomial time”, i.e. for a turing machine that is allowed to make random decisions, at least one of the random paths solves the problem in polynomial time. We have known for a long time that we can simulate such a machine in exponential time (essentially by trying all possible paths sequentially) and that there is a class of problems (NP-complete) where if we find a faster solution for one of them, we can derive an equally fast (in terms of O) solution for all of them. 3SAT is one of those NP-complete problems.
While reducing the complexity from O(c^n) to O(c^(n/log n)) is still far from O(n^c), it shows that what we assumed might be a hard limit if P!=NP isn’t true. There might still be a limit that has some term of n as its exponent or it might not. What this finding suggests is that at least the term is better than just n, meaning we are at least getting closer to a polynomial solution, even if it’s baby steps. So far, there is no practical consequence of this but it gives us a direction for possible further attempts.
For these kinds of problems, finding a solution is often about slowly finding tighter and tighter upper and lower bounds, not about hitting the truth right away and we hadn’t found a new upper bound for NP-complete problems basically since they have been defined.
Edit/Disclaimer: this is based on what I remember from University over a decade ago and a quick Wikipedia search. I might have gotten a few details wrong.












I would say the main downside of C++ is that it carries around a lot of baggage from the last 40 years. Even if you decide to use a modern standard in your own code, you’ll have to deal with libraries that can’t use many of the new features because they need to stay backwards compatible with old code bases. Also, a lot of tutorials and examples still look like they are from pre-C++11 times.
I recently started a project that would have been a great fit for C++ (simple 2D game engine + editor) but the way Qt has to reinvent half the standard library, GTK basically asks you to write plain C and gtkmm had some other issues that I can’t even remember, all the fun of working on the project was gone. I decided to switch to C# (which I use for work anyway) and Avalonia and so far it’s going well. Not being able to use C++ still nags at me anyway. I would have loved to get more comfortable with modern C++ but I just couldn’t keep up the motivation.
I’ll try again for the next project.