Orb-Bits Game
For years, I've hated programming.
Oh, don't get me wrong. I like writing programs. Putting together something that does its task neatly and well, whether it's a popular game or an obscure utility, is as satisfying as knocking off a good short story. Only for years now I haven't been writing programs. I've been adding lines of code to modify the behavior of purchase orders in SAP, or digging through javascript libraries behind an HR web page, or teasing PLCs into spitting out the right data to feed the historian—all worthwhile things, but not a heck of a lot of fun.
However, in the last couple of weeks I have had more fun coding than at any time since I opened the box on my TI 99/4 and started learning Extended BASIC. And the reason is Codea.
Until now, if you wanted to write a program that ran on the iPad, you were restricted to Apple's toolset. That meant you were actually doing the programming on a Macintosh and transfering the app to an iPad, and while Apple's tools are robust, they are also confusing and difficult for a casual user. Codea changes that. Now you can code directly on the iPad, in an environment that's easy to pick up and provides quick gratification, and you can get started without swallowing a manual or sitting through a course.
Codea is the product of a couple of guys in Australia, and it brings the Lua programming language to the iPad. I had zero experience with Lua, but thanks to plenty of examples and built in documentation, the system took me by the hand and made it simple to get started. Within minutes of starting up, I had something of my own cooking. Better still, Codea is focused on graphics. Where some environments can make drawing a simple line a challege that involves creating a drawing canvas and marshallng a good deal of resources, a program to draw a line in Codea requires just that — the single line of code that draws the line. It lets you jump past the tediuim and just start making things happen.
The editor in Codea helps out by taking some of the most commonly needed keys that are usually buried behind shift/numeric keyboard/alt symbol choices and putting them front and center. It also provides completion on keywords in the language. The combination allows you to race along. The editor also includes tools that make it easy to bounce between lines and words. Frankly, I wish my word processing programs had keyboard controls this toughtful.
Codea editor
Codea is currently limited in that it's lacking many of the elements you'd want to create a business application, and there's no way (currently) to turn your Codea work into a "real app" you can sell at the App Store. But for education, simulations, games, and general farting around, it can't be beat.
I reproduced enough of the general user interface elements to draw myself a tool for creating icons and small images, and then popped it up for others to use. Code sharing has become a central feature of the lively Codea community with ideas and code flying back and forth between newbies and pros alike.
Spritely Icon Editor
It took me four hours to generate a note-perfect copy of Space Invaders. Only slightly longer to generate the Orb-bits game pictured at the top. Others in the community have generated apps that model 3-D topology, or visualize math problems, or created utilities that expand the "ecosystem" of Codea.
For anyone who ever coded, or thought about coding. Heck, for people who like logic puzzles but have never tied that to the idea of writing code, this is simply a blast to play with. Absolutely the best $8 I've spent on the iPad, and the most fun I've had with a computer in a long, long time.