Adobe's iPhone Hail Mary
snydeq writes "Fatal Exception's Neil McAllister questions whether the move to port Flash to the iPhone isn't a last-ditch effort on Adobe's part to remain relevant in the quickly evolving smartphone market. By allowing developers to compile existing Flash apps into native binaries, Adobe believes it has found a way around Apple's requirements that no non-Apple API interpreted code may be downloaded and used in an app, a clause that has also prevented Sun from porting JVM to the iPhone. The resulting apps will be completely stand-alone, with no runtimes and no Flash Player required — if Apple lets Adobe get away with it, no small feat given how protective Apple has been about its app market. But as much as Apple has at stake here, Adobe may actually have more, McAllister writes. 'Already the idea of using Web languages and tools to build smartphone applications is taking hold. Palm has built an entire smartphone platform around the idea. Apple supports the use of Web technologies like AJAX to build applications based on the iPhone's Safari browser. And developers will soon even be able to build Web-based applications for BlackBerry handsets, thanks to a new SDK from Research in Motion. As late to the game as it is, what Adobe needs now is to convince developers that Flash is better than the other options — and that could be a tough sell.'"
It's not a "last ditch effort" to remain relevant. It's just Adobe continuing the tradition of ubiquity of their platform. Apple won't let them put a runtime on the phone, so they'll deploy native code instead.
Sorry, but there's a big difference between an AJAX app and a native app. Try writing a browser based graphical game on the iPhone; it's going to fall on its face pretty quickly.
Hmm, convince developers to learn a whole new SDK for a single platform, when they can stick with a mature language and toolset they already know, deploy it in the browser, on the desktop (via Air), and on basically every phone on the planet that can run custom apps, including the BlackBerry?
Sorry, this whole article is bunk. Adobe isn't struggling with relevance, they're just making sure it doesn't start to slip, as Apple is so strongly trying to make it. In fact, this probably backfired on Apple a bit - Flash apps running as a native binary will probably have access to device functions which the normal Flash runtime wouldn't have.
I'm guessing this sale has already been made. A lot of developers like working in Flash. Actionscript is a surprisingly elegant language. Based on the number of Flash apps which already turn up all over the web, a whole new segment of developers are seeing this as access to a development platform which was previously closed to them.
Slay a dragon... over lunch!
The flash player is a nice Smalltalk VM with a PostScript-like vector drawing model. It's a (very nice) incremental evolution of the Smalltalk 80 system. The Flash authoring app, however, is one of the best rapid application development tools on the market today. You can do everything that Flash can do with JavaScript, the canvas tag, and SVG, but there aren't (yet) any development tools that are anywhere near as nice as Flash for this environment.
Adobe doesn't make much money from the Flash player; they give away the desktop one and sell the mobile one to OEMs quite cheaply. In contrast, they charge $700 for a license for the developer tools. A lot of money, but not much in comparison to the cost of the person using them.
In the long term, the flash player will probably go away. They've already made some first steps towards this, donating the ActionScript VM to the Mozilla project, and producing things like AIR which let you run Flash apps as stand-alone binaries. I wouldn't be surprised if future versions of the Adobe Flash can target HTML5 as well as the Flash plugin, and eventually just HTML6 or a native environment.
I am TheRaven on Soylent News
The Flash specification has been open for people writing authoring tools, but not people writing players, for over ten years. There are a few other flash authoring tools besides the Adobe ones. Hardly anyone uses them, because Macromedia / Adobe Flash is much better, and for most Flash developers / artists it doesn't cost much in terms of hourly rate (and can be offset against income for tax purposes anyway).
Flash is in the same sort of market as Photoshop. The GIMP does more than the average user needs, but it doesn't do what the person willing to pay $500-1000 for a piece of software needs. There will almost certainly be open source things for creating flash apps (there are a few things that output flash already), but none are in the market where Adobe is and wants to be.
I am TheRaven on Soylent News
"A tough sell." Really? Lets see. Write the same app for 4 different phones, then one for general web, or write it once with flash via a great toolset.
Not noted above is Adobe's announcement that flash 10.1 will be out in a few short months. The speed improvements and memory management are astonishing. Also most if not all smart phone OS will be using it except iphone. They demo'd watching movie trailers, playing games and video conferencing directly from android and existing web sites. Being able to save down to iphone app is great, and lowers barrier to entry (who wants to do objective C?) but the larger topic is how iphone was leader of pack and is about to get outpaced by Android (as per many reports predict). Hell even RIM is getting on the flash bandwagon.
The holy grail is for us to not have to worry about what the damn phone is. Instead we can write great apps and they can be used anywhere the screensize makes sense. Computers (in browser and desktop app), phones, set top boxes for TV's, netbooks, appliances, etc. This is what Flash is about to let us do. Theoretically anyway.
And no HTML5 can't do everything Flash can do YET. Least not write once and run on many OS, platforms and browsers. HTML5 will be great when it is a viable option no doubt, but it isn't. Not yet and not in the next few years due to fighting amongst the browser decision makers.
Can you cite an actual example of something wrong with it?
Sure. I've used it, and it gets the job done, but I didn't much like it compared to the many other options - trying to force development of a GUI application into PHP is my idea of a nightmare, and comparing it to C and saying that it has far more libraries is laughable, considering that most PHP additions (image manipulation for example) are just wrappers around C based tools. My object to PHP is not that it is impossible to use, it's that it's messy and not very well thought out in many regards. It's quick and dirty, with the emphasis on the dirty.
A few problems with PHP off the top of my head:
There is no clean separation of logic and view (or MVC if you prefer that split) - the language itself encourages mixing code and presentation, often with horrendous results. You can work against this, but you're always going against the flow - see the many examples of PHP CMS etc for great examples of this kind of mistake in action. They work, but only just, and the internals are often very messy.
The naming conventions for the API are all over the map - any language that has functions named stuff like mysql_real_escape_string, as opposed to the still extant mysql_escape_string, has obvious problems with design philosophy. Maybe next year they'll come out with mysql_really_escape_the_string_this_time? It is very difficult to guess function names because there are no clear conventions, and the whole thing has grown organically to a huge bundle of disparate functions, some of which definitely do not belong in a language and should be broken out into modules or put into objects like strings. Stuff like eregi_replace, str_ireplace and str_replace is needlessly confusing because the naming conventions are inconsistent and cryptic.
Strings and arrays are not proper objects, so you have to use a mix of procedural and oo code everywhere - it'd be nice to be able to call methods on strings and chain stuff like Ruby. The object model was also weirdly broken till PHP5 and is really bolted on.
Doesn't have closures (just added to C/Obj-C by Apple).
Unicode strings are still not properly supported.
The syntax inherits everything which is bad about perl (it's quite possible to write very difficult to read code), and doesn't improve on it one iota.
I'm sure I could do a search and turn up a few more issues, but it generally just feels ungainly compared to any other language I've used (Ruby, Objective-C, C, Python). I think the author of the above comment saying everything could be done better in PHP really should explore other languages before dismissing them as somehow lacking, and understand that different languages have different strengths, and learning to use other languages could teach them something about how to write good code in PHP.
Having worked with it, PHP doesn't strike me as a very good language by most metrics, and it certainly is not more complete than the many other options in any arena. There is simply no comparison in my opinion with a properly structured API like cocoa for GUI apps.