I learned to love C++. Seriously. But the more I flesh out good ideas to make complex systems easy to create, I also learned how limited C++ can be. Well, if you think complexity is to make a dozen of connected unique classes... fine. It's not. There are far more complex things, OOP is just another comfortable pattern to create what you could also create before. All in all, I tend to see the usual OOP I read everyday and everywhere (especially Java stuff) as an elegant way to manage data more comfortably. Most stuff you can do in C++, you can also do in C, but you'll have to hack in a shitload of code. I want to take it farther than I did before. I'm trying to generalize everything and even started to convert every piece of what originally was a raytracer ASCII game prototype into a set of template classes for all kinds of work. The more I overhaul it, the more I notice how similar all patterns are and how I could simply make them more effective and comfortable to specialize while maintaining speed if I only had to possiblity to program my program or atleast my classes. The point is that you could essentially write so much great software if there were a possibility to assemble your code on-the-fly.

I like limitation in some cases, but this is drivin me crazy - isn't there anything out to do this? Well, one thing that came up in my mind is Lisp. I know I mentioned it here earlier and I also started to think about using it and making my own script language. Though I never actually wrote one piece of LISP code. It's time to change that. I will learn Lisp. I will learn about it's features and if it's really a programmable programming language suitable for my needs. It it means I'll have to find a way to integrate C libraries in Lisp, then it will be. I'm getting frustrated by how limiting C++ becomes for generic concepts. I took a look at D, but it's similarly limited. I want to take a new path, a new step towards a more efficient and generalized software design. I don't know if Lisp is good for what I want to do, but it's clear to me that I'll never get generalized programming to work the way I want in C++. I could only have limited classes with higher speed or useful classes with extremely low speed. That's not an option for me. My game has be perfect in execution, even if it takes my years to finish. It must feature excellence in programming and content (though the latter one is rather a question of personal taste), otherwise I can't call it a game of mine.

From another point of view (and I mean the money-related one), I can still continue programming in C++ for everything else. It's a personal quest for perfection and new concepts to explore. What I can do with generic programming is can be done in C++, though it will be limited. I see all languages in a unified functionality and most of them don't work so well on generating and generic levels. I want more. MORE. More possibilities to finally solve my problems with other languages.

So let's move the fuck on and learn this Lisp shit.

No comments: