Before coming into handmade hero I was your typical, C++ programmer who had been programming and doing things the conventional "C++ way" (object oriented everything, creating general systems vs specific ones, designing everything upfront before actually programming, etc.). I had been doing so because everywhere I looked, this was lauded as the "way to do things". Obviously, handmade hero (and other sources) have opened up my mind to a whole new way to think about programming and how to efficiently and effectively solve problems, and has greatly improved my enjoyment of programming all together.
I now see the merit in solving the programming problems specific to your game and not getting sucked into the trap of trying to generalize everything to 'future proof' it. However, I'm starting to wonder if it's even really possible (with current programming languages/tools) to create a really good, generalized game engine? Or even library? Maybe good libraries can be created, but their scope should be limited, solving things like image loading, parsing, etc (stb?) and not trying to build say an entire animation library which handles both 2d and 3d animations. Or maybe it's possible but just extremely difficult, requiring a lot of time and effort but at that point maybe the risk is too great that your library is just still going to suck at the end of it. I guess I just wanted to get a feel for what others thoughts are on this and maybe you've had good experiences with these things. I got to thinking about this as I find myself wanting to try and pull some things from my current project and try and generalize it to help with future projects. Also the new media molecule game "Dreams" has people creating all kinds of different games which got me to think about the future of game development and programming in general.