Having been programming since I was a teenager, I’ve used numerous programming languages on many different platforms over the years: from high-level languages to microcode, from general-purpose languages to task-specific ones, from languages suitable for graphics and multimedia to business and mobile applications.
One privilege of having my own company is I’ve worked on all sorts of projects with both tiny and huge companies, with individuals and large enterprise teams. This experience I gathered over the years has allowed me to understand projects and software development much better than if I were working at the same job and at the same company.
As this tech industry evolves (much quicker than many other industries), I have noticed that things repeat and the pattern is often similar. New technologies (languages, frameworks, tools, etc.) come along and people get excited. Then as these new technologies become more popular, people write books and talk about them in conferences. Soon more people jump on them, and they become bigger and more complicated, and code becomes harder to maintain, leading to more bugs… So, people start to look for something different again – something simpler.
It is interesting to hear one of the most famous game developers talk about his favorite programming language. John Romero, who founded id Software and created influential games that shaped modern-day 3D FPSs, told the audience his favorite programming language (YouTube link).
Incidentally, Lua is also my favorite programming language. It is easy to learn, simple, flexible and fast, no wonder it is used by many top games. The only disadvantage is that not many people realize how powerful Lua is, or they may look down on it because of its simplicity.
And here’s the recommendation that Romero gives for someone who wants to start making games: Use Corona SDK. It is Lua-based, free and open-source. Needless to say, Corona is my tool of choice ever since I first started using it when it became available around 2009.