Friday, October 12, 2012

Working in multiple languages.

When I first started out in programming there was a feeling that I didn't need to know any other language than c++. As the years went by I picked up python and thought that that was all I needed to round out the languages I knew. Over the last couple of years though, I find that it's become more and more the case that I really don't think you can get by without dabbling in many languages.

The case in point is Web development. But I found that there are so many languages that it makes no sense to try to develop a game or anything else without using multiple languages. You just have to use html and Javascript and php and C or python if you want to produce something interesting. I some of those languages could be replaced. You could switch our python for perl or Ruby. You could switch out c for c# or java of you only needed a little but of a boost in your server side coding. You can eve switch out Javascript if you allow for flash. But the point remains:
If you're doing Web development you're going to need more than one language.

So how does this affect how I think about games development?

Invest in scripting languages.
Don't invest in just one language. Try out a few and use them whenever they are the best for for a problem.
Don't shy away from low level languages. Use them when appropriate. I don't assume that two languages is enough. Then stick some medium level on there too such as java or c#. I won't ever enjoy working in those languages, but many gameplay programmers and tool developers love them for quick UI integration. They also have the benefit of being very fast to compile. Where did you find the most coupling your c++? Is it gameplay core by any chance? The abi way of handling linking fixes those horrible link times and even helps oxmplie times as there is less parsing going on in the first place.

Anyway. My point.

One language is not enough. The only programmer that thinks that one programming language is enough is a programmer that only knows one language.


wererogue said...

I agree in principle, but just to play devil's advocate:

Would one low-level language be enough if there were reliable high-level scripting tools available for it?

I guess that's the C++ experiment.

fabs(); said...

Yes, C++11 does fit the bill. With it's growing ability to cover all paradigms, it can be used for may things, but a lot of the benefit in programming in multiple languages comes from having to do things a certain way for that certain language. Moving you outside your comfort zone helps force you to learn new ways of thinking.