What’s your favorite programming language now?

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.

A new Corona

The day has arrived: Corona Enterprise is now free too!

Now it is just one Corona.

Integrating with native C/C++/Objective-C/Swift/Java code is now available to everyone. I’m sure a lot more developers will be developing native plugins that are sold (or for free) at the Corona Marketplace.

Corona and Lua are the best combination of simplicity, speed, stability, size, deployment choices, and community support for 2D games and app development. (No, I don’t get to paid to say this, I’m just a long-time user / developer.)

Welcome to the new Corona!

 

Lua code for OneSignal notification

OneSignal notification example code that are provided here include languages such as Node.js, C#, Python, PHP, Java, Ruby, Perl…, but there’s no Lua.

So here it is, the Lua version for Corona SDK (including a listener):

UI data binding for Corona SDK

Here is a simple demo of data-binding to user-interface elements in Corona SDK. The purpose is to update variables so that UI elements (textfields in this demo) are updated automatically.

The latest updates can be found at github.

This site was hacked

Thanks to hackers from around the world, this site was hacked and code was injected into the blogging system. Spams were sent from my server and I finally found the source of the problem.

As a result, this site was taken down and the blogging system was reinstalled from scratch with a couple of security measures to prevent the same hacks. Some external files (graphics, images, external scripts…etc.) are missing for the time being.

It’s all about solving problems

Having been a software designer and developer, what I’ve been doing is really just problem solving. For more than 2 decades, I’ve been solving problems for different clients on various types of projects – from live multimedia presentations, digital mixed media software, off-the-shelve games, computer-assisted learning, last-minute project rescue, enterprise apps, sales apps, educational apps, to native device apps… and more.

In the last couple of years, I’ve decided to spend more time on solving my own problems for my own projects. And it’s been even harder than solving problems for clients.

The main reason it’s harder is because I’m my worst critic. Or I’ve set my standard too high after solving problems for clients for so long. I want to do the best work – my own work, and most results are simply “not good enough”.

As I look at various apps on different app stores, I know I’m being too harsh on myself. But how do I solve this problem?

ZeroBrane Studio updated to 0.90

The excellent ZeroBrane Studio for Lua development has been updated to 0.90, download it here or check out the source code at github.

This open source and free IDE is the best I’ve used for Lua / Corona SDK development. Support from the developer is also quick and excellent. What else can one ask for?

Update: Version 0.95 has been released.
Update: Version 1.00 has been released!

P.S. Check out this blog post for adding Corona SDK show reference.

EventDispatcher docs

Documentation has been added for EventDispatcher in LDoc format, generated from the source file.

Here’s the basic usage:

All listeners receive the following fields in the parameter event table:

  • event.name (name of the event)
  • event.target (the listener itself)
  • event.source (the dispatcher)

Grab the latest code at Github.

EventDispatcher update

Just a quick post that EventDispatcher has been updated with new features including new methods on(), emit(), once() that are similar to Node.js, a new method removeAllListeners(), and a debug function printListeners(). The on() and emit() methods are actually aliases to the addEventListener() and dispatchEvent() methods.

Chris Byerley (aka develephant) who developed Coronium.io and Coronium.gs is using EventDispatcher under the hood for the game server client code. Check out his projects if you’re a Lua / Corona developer.

Here’s the original post for EventDispatcher if you wish to read about it.

Grab the latest code at Github.