The Changing Face of Apps

Over the last week I’ve been doing some serious hacking/coding in a variety of languages.  Some of it is necessary for a work project I’m doing, a couple of customized WordPress installs for a company in Seattle that’s required a bit more PHP hacking to get working properly.  Other parts of it are reading books in my (not available) spare time, and still trying to focus on ObjC and CS193P.

I continually amaze myself with the PHP stuff.  I never officially studied the language but I can understand the bulk of it and maybe most important: I can articulate what I need to do in a good Google query.  For me to become really proficient at it I think I’ll need to start using the shell accounts on some of my boxes to make sure this stuff happens the right way.  While flipping through an old C# book at Fry’s a few days ago I stumbled across the realization that I can grok the syntax of just about any modern language!  Most of these languages are all derivatives of C so it’s not a huge surprise, but I could definitely start to implement code that isn’t language specific which is a huge step for me.  Being able to write platform or (lightly) language independent code is what separates a programmer from a Computer Science major I think.  Each language obviously has its own subtleties and nuances and some will always be a mystery to me (like Perl) but I’m feeling more confident in my skills again.

I spent a few hours this weekend futzing around with Canvas, an HTML5 element that allows you to implement drawing and other animation routines in a div in HTML.  My goal was to finally come up with a logo for REV-DEV my other side-biz that definitely needs to start getting a leg off the ground.  Having checked out some cool HTML5 samples I thought this would’ve been easier, but it wasn’t to be.  I found some greatly bouncy balls, starfields, even a text particle generator.  What I was looking for was a text swell/shrink effect similar to what I’d seen in….well, Flash to be honest.  But I’m trying to be proactive and future-proof, and platform independent and all this….and the thing I want is in Flash.

Adobe has seen a bit of the writing on the wall lately, releasing a free preview of Edge ,their Flash exporter to HTML5 app.  It’s not quite available for real-world use yet, but if I could get the download link to complete I’d probably check it out.  I digress, I’m rambling here.

My point about this was that everyone is starting this slow shift to these frameworks and API’s that are smarter, cleaner and more platform agnostic.  Take the Windows8 Metro incarnation– Metro apps will do UI through HTML5 and JavaScript which has included AJAX for a while now.  That’s amazing!  There’s a movement on the iOS side to use the same structure to drive UI and let the native code take care of the back-end tying things together.  I’m not entirely sold on this for iOS5 for reasons I can’t divulge yet….

Finally, this morning Google announced the availability of Dart, a structured web language that provides optional typing and also compiles out to JavaScript.  It’s a language that will work on modern browsers, with the JavaScript intermediary coming out in browsers that won’t support it’s optional MIME type.  It appears to be light, offers easy to read syntax, and is open-source under a BSD license.  It appears to also support a mode for enterprise use that allows the execution of the code in a VM, but I’m kind of lost right now as to usable case for that one.  I’m going to try and get my hands dirty with it a bit today and see what develops…

Dart-Header

The Rise (and fall) of the Platform

The Rise (and fall) of the Platform

Twitter launched it’s very own photo-sharing and video uploading service today, courtesy of the great minds behind Photobucket (who are still around..apparently?). You can’t help but feel bad for TwitPic or yFrog or any of the number of photo-sharing services that launched with the open API that Twitter provided. All you needed was an API key and some gumption perhaps to create the next cool thing that could operate as an adjunct on the site. Now that any number of these sites have taken off, Twitter has decided to step in and offer their own service. So what do you do if your TwitPic? Die off in oblivion I guess…Twitter Lgo

Last week Google announced some housecleaning for some of it’s API’s: Places, Prediction, Tasks, and Translate. Of these 4, I’ve only used Translate to any real success (or need). However, the outcry of some of the developers in the comments is truly sad. Some of these folks have created entire applications or infrastructure around these API’s that Google freely hosted. There was never a guarantee that these things would stick around forever. I don’t think anyone ever really thought about it–Google offers essentially unlimited space for just about everything, why would they even bother to deprecate and remove code they were giving away for free? Some of these services have been replaced with elements that can be called from within an HTML5-compliant browser so its not a complete loss. But if I were a dev that was using the Translate API through JS or other libraries, I think I’d be a bit pissed off.

So where am I going with this? These platforms that are created by these companies are artificial islands of relevance. By leveraging the (often) free API platform you’re helping raise the awareness level for those tools that you’re using: I had a friend show me how to write simple JS Translate widgets that would real-time translate a page in the DOM without re-requesting the page. I’ve seen rather kick-ass things done with data manipulation done using the Charts API. For me, they increased my awareness of some of the cooler things one could do with Google’s external tools. Maps is a huge one–something I’d like to leverage in a future showcase.

Gaming is one area where I can draw a lot of corollaries. With the rise of the mature PC FPS in the late 90’s, games were becoming little islands of activities. Mod tools were being released by the developers or often being generated by the community and were being used to create substantial in-game works. I one saw an interactive museum someone built in the Half-Life 1 Source engine. Game mods for Unreal Tournament? How about Akimbo Arena, or any of the more create DM maps made available? id Software made it easy to modify Doom and put it back out provided you weren’t modifying the core game engine files. What happened to these platforms? For the most part they were killed off by console gaming. With a “security” barrier barring entry, user-made downloadable content has been a no-show on the Xbox or PlayStation systems. Often publisher’s will pack together a sampling of top-rated mods from the community and push those out under their own container, but this is few and far between.

Most of the mod tech I’ve seen recently is visible, but doesn’t get a lot of exposure unless you’re specifically looking for it. Bethesda highlights folks who are still creating mods for their games such as Elder Scrolls 3: Morrowind at least once a week. I’m sure somewhere, there’s a kid making a mod for Quake 3 Arena, but I haven’t been looking for it regularly. For me that platform island is no longer relevant and is gone.

Next week I’ll explore some of the newer platforms out there and what those companies are trying to do to bring you on board. It’s a busy week between Apple’s WWDC, and the opening of E3. We’ll see.