“I can make this better, and this too… and why not revolutionize this?”
C++ was a tool I could use to make games. I started on my game. I played with a few frameworks. If I remember correctly, I used Allegro. I remember drawing my first spaceship in pixel art as a tiny sprite, perhaps only 32×32.
I had grandiose plans. Object oriented programming was great, but why be stuck with defining types at runtime? Why not make a dynamically typed language with mixins that could be added at runtime? Why not make it multi-language (sorta like HaXe now does, sweet) with trans-compilation abilities, and why not let the user write the code from within the program (interactive programming). Also, self-profiling and optimization would be good. Synchronous reactive programming? Yeah that sounds like a must. All of these things should be part of programming in the near future, and I want to make it happen!
Also PNG was a great format, but I wanted fancy animations, and MNG didn’t look too promising.
So I set out to revolutionize both fields. Oops. (Animated png’s was more of a minor revolution, but I don’t discriminate.)
At some point, I realized these were overly ambitious and unnecessary tasks. Over the years I have learned to, and perhaps partially succeeded in not reinventing better wheels. (Don’t tell anyone, but I still want to revolutionize programming some day, but not before I finish a game or three.)
I could be happy as a tools developer, or a framework developer that helped other developers get their job done better and faster. In fact, that’s what my day job was for many years as a R&D developer of frameworks for data access layers, services, and messaging and networking. It was a lot of fun.
I did indeed revolutionize some things for our team (at least in my eyes.) One best practices thing that my team needed to do often but didn’t was complicated, clunky, took a few hours, and virtually never got done, and ended up being a pain point. So, I made it take 8 seconds and no code. Bam! You’re welcome, team! Code on, brothers and sisters! I loved doing stuff like that, and bringing harmony to disparate applications, opening possibilities of emergent features and interactions, opening up opportunities for the company to get traction in new market sectors — strategic wins.
Eventually though, our department got downsized and that job disappeared, as well as the team that used my frameworks. And I wasn’t savvy enough yet to have sold it to other teams, unfortunately, although their goals were somewhat different.
I had always realized that working for a megacorp, none of the work was really mine (and at times I wasn’t even sure if my own brain was really mine or if I had temporarily sold my soul), so I was not too devastated when they put the tens or hundreds of thousands of lines of code I passionately put together, and the explanatory powerpoint slide decks on the figurative shelf of a forgotten CVS repository (yes, CVS), to collect digital dust.
Perhaps one day I will be rich enough to buy the 5th largest defense contractor in the world and liberate the code I wrote. Some day… (Ok, I’m not serious about that.)
I was put onto teams doing miscellaneous small tasks that had no big picture appeal, at least none that seemed compelling to me. And I have always wanted to be in more control of my own destiny, so this provided a good time to jump ship and set sail to another shore.