What platform next?

20 Feb14

What platform next?

In 2013, Adobe completely dropped the ball on the Flash Player and AIR. All further development has been moved to India. This normally means that the software has been put in what is referred to as "Maintenance mode". Any serious bugs will be fixed, but don't expect much in terms of new features. If you take a look at the Release Notes for AIR 4.0, you'll see what I mean.

AIR will exist for many years still, but it's time to look forward and figure out what's next. What I'm looking for is a platform that will let me create both mobile and standalone apps easily, like Adobe AIR was but with a company that is still committed to the technology. Perferably with a solution that can create smaller and faster apps than AIR.

Some alternatives

For many years I wanted to look into Haxe, but I never got really into it. It was just to "techy" to get going. I really want a one-click installer that gives me all I need to get started. Some of my coder friends spent lots of time with Haxe and said really nice things about it. Other friends have looked towards Java. Joa Ebert has a nice thing going with Defrac and the demo video he published recently looks awesome. I don't want to move in the direction of Java though.

I've also looked at Corona. I really like the idea of using Lua as the main language but Corona only outputs for devices. I've played around with Unity a bit and that I really liked. It's very geared towards games though, so while it's fun, it's also not exactly what I'm looking for.

Ever since I started programming as a kid, I've shyed away from C & C++. Memory handling and pointers always seemed like unnecessary complications, but after playing around with microcontrollers with 2Kb ram and less, I've changed my opinion about that. The last two years I've done lot's of it and I'm really enjoying it. Seems like a good direction to go? Everybody said nice things about C# and Microsoft Visual Studio, but Microsoft don't have much of a story in terms of cross platform app publishing.

This autumn I've done a series of lectures at NITH on the topic "Embedded Systems". Great fun! One day during a break, I got a call from a former NITH student and acquaintance asking if I had any plans after my teaching duties. 

Outracks & Uno

Some days later I were in the offices of a company named Outracks. This is a relatively small company with a massive goal. They're building a complete coding ecosystem from scratch, right here in my hometown of Oslo. With this I mean that they are creating a language called Uno that has compilers so that it can output to iOS, Android, desktop and more. That just sounds like an AIR clone, right? Not quite. Uno is the first programming language to unify GPU and CPU pogramming. You write the app and all the shaders in the same language. The end result will run on both GPU and CPU and in many cases you don't even need to think about that part of it. The export is always a native app (no runtime bloat), but Uno also exports to HTML5/JS with 3D done as WebGL. In other words - you can make GPU accelerated apps for pretty much any platform with Uno.

They're also creating an authoring tool called Realtime Studio that is a complete coding environment with integrated preview, a solid code editor, inspectors, node view for code (loving this one!), drag and drop support, gui for various export targets and more. On top of that they're creating a UI FrameWork and exactly this was what they wanted me to help with.

The plan was that I were to develop a desktop app for a (still secret) client using their complete toolkit. Over a 1.5 month period I worked on the app and provided tons of feedback and I have to say this is shaping up to be one hell of a toolkit! The UI framework is completely GPU based and this does wonders when it comes to speed. Imagine having a slightly scaled down version of the Flex framework running completely on the GPU?

Why it's so cool

Uno is closely related to the C# language. If you already have C# experience, you'll be able to jump right into x-platform development. I however had basically no C# experience when I started the project and that was one of the things they wanted to test. How quickly would I pick up the language? What would I miss from other platforms? What would be the big hurdles?

Despite all the tools being under constant development, I would say that it took only 2 weeks to learn the language. After that I was fairly productive and knew where I was going. The next 2 weeks went by trying to understand and use correctly all the new goodness available to me that I never had in Actionscript. Uno has support for overloading, abstract classes, swizzling, lambda expressions, extension methods and much more. The last two weeks were really productive and we did reach a finished product. That said, it is still being actively developed and polished and I can't wait till I get to tell more about it.

The one thing that I still haven't wrapped my head fully around is writing shaders. While Uno makes this much easier, it is still something that I'll need to learn more about. Something also tells me that this is something that'll take quite some time as it's a quite different mindset. GPU's work in paralell and all operations happen on all pixels at the same time. That takes some getting used to from thinking more or less serially. What I can say is that I'm pretty sure that I've found what I'm looking for. This is actually the only platform that I feel comfortable spending my time on. Worst thing that could happen is that I've learned C#.

Uno will launch with lot's of official API's that are supported on all platforms. In addition there will be several APIs that are available for some platforms that you can download support for. Outracks has made a backend that is extendable, so if there is a feature you need in a specific platform, you can just add it yourself. It's like Native Extensions on stereoids. Want MIDI on the desktop? Find a premade library in the form of a DLL, write some interfacing methods and you're ready to go. This is going to be incredibly useful for those special hardware integration projects that I sometimes do for museums and exhibits.

Bottom line

I could transition in just a few weeks to a completely new platform. That's pretty cool in itself. Not only can I target iOS, Android, browsers & desktop, but Outracks are playing around with support for lots of other devices and platforms. In the office there were FireFox phones, Nvidia-boxes and lots of other interesting hardware. The apps I've made play with blazing speed and I've seen things that I've never before seen running on a mobile GPU. I can't say how much better that feels than seeing things like this go unnoticed. Having spent a lot of time in the Adobe Forums lately, I've seen many hundred important questions go completely unnoticed by Adobe. I need a platform with people that care and I feel that Uno is by far the strongest contender.

A public beta will be launched at FITC this coming week, so be sure to sign up for that. If you're actually at the event, make sure you catch one of the two sessions that Simo is presenting. He's been using Uno longer than anybody and he's made some seriously good looking things with it!


20 February 2014 at 8:56 pm

10 Responses to What platform next?

  1. avatar photo
    Tee 21 February 2014 at 9:40 am #

    Hi Jens!
    I think thats a bit harsh. :) Sure Adobe is downplaying the PR. ..But they keep developing… they are is working on AGAL 2.0, MRT, iOS workers and more new features in the coming update.. Now i wouldnt really call that maintance mode?

    BTW UNO is cool too :)

  2. avatar photo
    Jensa 21 February 2014 at 11:27 am #

    @Tee Not really? It is exactly the same that happen with all other software at the end of it’s lifespan. Happened with Macromedia Director just after Adobe bought it. But yeah. Workers? I think Thibault mentioned that as a new feature three years ago. They’re not exactly racing along are they?

    I’m not saying that Flash/AIR will be treated as bad as Director though. But there’s no Flash Product Evangelists. They all moved along to other companies or they work with HTML. Adobe employed the best developers in the business to work on the Player. None of them work on it any more. They’ve all moved on to other projects/companies.

    All the talent and push behind the platform is gone. Adobe is really doing it’s best to shut up about everything related to it these days. Last tweet from the official @air account was in September 2013. To me that’s a solid sign of a (soon to be) dead platform?

    With Uno it is the opposite and they have a huge advantage over Adobe. They have no “uncool” runtime to slow them down :)

  3. avatar photo
    Rolf 21 February 2014 at 4:56 pm #

    You will return to Air after you realize how far ahead is from other “multiplatform” options.  Even old flash display list on Scaleform is way better than non-native options.

  4. avatar photo
    Clark 21 February 2014 at 10:07 pm #

    I had been sitting on the fence with Adobe for 2 years. I started off defending Flash but yeah it’s uncool. I could live with that but when I heard they dropped sponsor for StarlingJS…..  I decided that was that. The company is just clueless and I cannot move forward with them.

    Microsoft has welcomed me with Typescript and a flawless visual studio and I feel part of a passionate but small community over at phaser.io , Rich and Matt have done great work.

    For the heavy lifting, I am learning c++ and SFML

    It’s a slow process. But I have no time for Adobe any more and I feel good it’s on my terms.

  5. avatar photo
    Jensa 21 February 2014 at 11:53 pm #

    @Rolf I still use AIR on an almost daily basis. What I can say is that I really like what I am seeing in Uno and I also like how easy the transition went. It will of course not be as mature given that it’s the first version, but I am really impressed with how far they are already.

    I’m thinking like @Clark here. C++ has been golden for at least 30 years and it’s maybe even more popular than ever. It works across an incredible amount of hardware platforms from micro-controllers to massive clusters. I think C++ and it’s siblings is a good way to think forward.

  6. avatar photo
    Rhuno 22 February 2014 at 12:04 pm #

    People have been telling me for 5 years or so that Flash is dead; and frankly, either they’re wrong or I’m the world’s greatest necromancer. Flash/AIR is still, in my opinion, the single best option for multiplatform development. I have little doubt that I’ll be using it for years, if not decades, to come.

    That said, I’m a fan of technology in general and Uno looks great! Thanks for sharing!

  7. avatar photo
    Jensa 22 February 2014 at 8:59 pm #

    @Rhuno True. I’m not saying that Uno is a Flash killer. The list of those that claimed to be that is pretty long and they all failed ;-)

    Uno is more of a solid alternative to AIR for now, but the HTML/JS/WebGL export is kind of nifty. The fact that Flash content I made 12 years ago still look exactly the same is a testament to the quality of the runtime.


  8. avatar photo
    clark 22 February 2014 at 9:44 pm #

    Rhuno I am not disagreeing.

    But I do very much doubt you will be using AIR for decades. If anyone who reads this post can sit down and tell me for sure, they have faith in Adobe to really keep this tech running in the long term. I would be happy to hear it.

    Because after 2 years of wondering about job security, seeing job opportunity decline, seeing Flash be based in the media, seeing Adobe do nothing to publicise it after “speed tax” failed. Every single ex-flash event being renamed to get rid of the word “flash” from the title. Looking at job offers every now and again and seeing “Please no flash developers, as the application must run across devices as an app”.

    I am still a Flash Developer in my Email Sig, I am not ashamed. The community, and those working on AIR such as Bill or the framework guys like Starling/Feathers/Away/Genome.  These are great talents and my inspiration.

    But I do not want to work in Burger King in 2018 flipping burgers and be a Flash Developer when there is no jobs. And with Adobe clearly having no concern for the Flash community for many many months (I think 3 official dry tweets since Steve Jobs letter), I cannot base my life on them.

    But maybe others can. I am far from an expert. I just liked this article because I found myself on this path.

    PS Uno looks great :D

  9. avatar photo
    Julio Garcia 07 March 2014 at 5:08 pm #

    I migrated from flash a couple of years ago to c#, particularly the xamarin stuff. It’s been a lot of fun, and even if you are set to Outracks, you probably should take a look at Monogame also. It has been caching momentum lately, its open source and there are already several games on different app stores using it.

  10. avatar photo
    Wei 15 March 2014 at 9:49 am #

    Flash has a massive PR problem with all the recent issues. but it seems Adobe doesn’t care anymore…