I’ve been using Flash since 1999, covering versions 4 through 10 and specializing in mobile Flash Lite for a lot of that time, and I honestly think that Flash and Corona have evolved in very different directions.
Adobe decided (correctly, I believe) that to grow Flash beyond a certain point, it needed to reach out to enterprise programmers more familiar with languages like Java. This is more than just a syntax style; Java is designed to solve specific business problems, such as large teams collaborating on long projects. It’s a highly disciplined approach to programming, with layers of protection against coders accidentally stepping on each other, and it also makes Flash compile more efficiently than it used to, but it’s a long way from the quick, casual days of early Flash. If you’re going to develop enterprise desktop software, this makes sense, and Flex/Flash Builder is now a real contender in that space.
But that’s not why I got into Flash.
My opinion, and I’ve discovered this is surprisingly common, especially if you press developers after a couple of drinks, is that Flash hit a “sweet spot” somewhere around Actionscript 2. It had gained a lot of very powerful features, but it still supported a casual, freeform coding style if you just wanted to get something done quickly and easily. I also hold the more controversial view that Objective-C coding on iPhone is actually easier than Actionscript 3 coding, if only because the incrediblyLongAndDescriptiveAppleMethodNames:notKidding (no, really) make unfamiliar code relatively readable.
In a nutshell, that’s why one of our unofficial design goals for Corona is to rediscover the spirit of “classic Flash”. We don’t plan to get in the way of our power users, but for everyone else, our mantra is to look at common mobile development tasks and ask, “how can we make this doable in one line of code?”
The other advantage we have with Corona is the luxury of a “blank slate”. This isn’t because we’re super-geniuses — although of course we are super-geniuses — but simply due to the fact that we started last year with a userbase of zero. We don’t have any technical or language legacy in non-mobile tools to support, and we can target our framework at the only task we care about: cross-platform smartphone authoring on devices with OpenGL-accelerated hardware. If you’ve done software development, you know how incredibly nice it is to be able to freely add features to your product, rather than worry about “will this break code from version 7.x?”
You’ve seen all our marketing language about Turning Dreams Into Reality, but that’s basically what it comes down to: you have an idea in your head, and you want get an application out of it, and all things being equal (performance considerations, etc.), any time you can save between those two events equals more time you can spend playing with your dog, reading to your kids, leveling your Paladin, or any number of other activities that are probably more fun than Computer Programming. (Says the guy who sits in front of a keyboard approximately 12 hours per day.)