What a week! Adobe made a lot of announcements which raised a lot of questions on the web, and led to a lot of WTF (which meant”What The Flex” right?). I feel that since MAX, the Flex community was expecting some clarification about the future of Flex. The strategic shift made by Adobe precipitated our communication to unveil the overall plan. Unfortunately, it has been shared in the middle of a wave of changes (the lay-off, the Flash mobile story, the HTML5 commitment…). There was a lot of misunderstanding, so let me give you my personal opinion on this as a Flex developer and as an Adobe Evangelist. First, here is the official article that provides details about the future of Flex: http://www.adobe.com/devnet/flex/articles/flex-announcements.html
The evolution of Flex
This is a fairly long post, if you don’t have time to read it all right now, you may want to skip directly to What’s next for Flex. I’m French, I talk too much, and I’m not Victor Hugo… Whatever So feel free to skip this paragraph to focus on our future. But the history of Flex might help you understanding the difference between our past strategy and the new one.
Flex 1 was released in 2004. To develop and deploy a Flex app, you had to use a 15000$ server. I remember that I started looking at Flex 1.5 in 2005 at my previous company. Because of this economic model, I didn’t even try to develop a prototype. Then, after the acquisition of Macromedia, Flex 2 was launched with a free business model and an IDE based on Eclipse. It was 2006, when I started coding Flex projects and when I joined Adobe to promote this technology. In 2007, Flex 3 was open-sourced under the MPL license. Flex 4 introduced the Spark architecture that lets you skin visual components very easily and with a lot of freedom. Thanks to Flex 4.5.1 (and soon Flex 4.6) you can build “native-like” mobile apps and deploy them on Android, iOS and QNX. So what’s next?
I’m very close to the Java and the PHP community (I’m currently writing this post from the fantastic DEVOXX conference with 3200 Java developers around me). When we used to present Flex as an open-source technology, it was more a “you can view my source” one. That was a huge step, and it helped our community to understand how the framework works. After a few months, it also generated some frustration. Flex developers and strategic customers who are Flex masters wanted to contribute actively, optimize the code, etc… Some of them even started their own branches. The Spoon project is the expression of this will and the expression of our lack of efficiency in accepting contributions, which I think was because Flex was perceived and promoted as a product. What I want to express is that we were defining the new Flex features on our side, to (somewhat) surprise our community and generate excitement. It was of course based on customer and user feedback, but then the new features were only shared during main conferences (360Flex or MAX for instance), and this was related sometimes to our product strategy. And this system works very well to spur adoption and generate a lot of excitement: Flex is very successful in the Enterprise today thanks to this strategy.
What’s next for Flex ?
At the same time, HTML5 is moving very very fast — faster than most anyone would have predicted two years ago. This is mainly due to the success of the iPad. That’s why Adobe believes that within 3 to 5 years, depending on the complexity of your RIA, HTML5 should be able to enable decent Enterprise Application user experiences for desktop users, associated with a professional coding experience. What I would add, as an Enterprise consultant, is that we can easily add 2 or 3 years to this period of time. A significant part of the Enterprise customers I’m interacting with are still running on Windows XP. This is a reflection of the tempo of the Enterprise world that cannot be synced with the outside world for security, maintenance, training, and auditing reasons. So even if HTML5 integrates some key RIA concepts within 5 years, it means that browsers still have to implement them and that companies need to update to a recent browser… well, you know the story.
Flex is and will remain the leading framework for first-class Enterprise applications for many years. And by the way, don’t be scared. We’re not blind and we must accept the fact that HTML5 is making fantastic progress. That’s GREAT! And our community has A LOT of time to anticipate this shift and make the most of this transition. Adobe won’t let you down. We’ll contribute to open standards, and at the same time, Adobe, starting with my team, will make sure that you’ll make it through — and even thrive during — any shift in our industry. Don’t worry, if HTML5 becomes the standard for RIA apps, then the best HTML5 RIA developers of tomorrow will be today’s Flex developers. Why? Because RIA development is not just a matter of language. RIA developers have a lot of specific skills (design awareness, client-side architectures, service exposure architecture, user-experience, mobile applications conception and optimization to name a few). You have a unique knowledge of the market that goes beyond knowing a technology inside and out. Adobe is already a key player in the HTML industry, and we’ll deliver more and more advanced tools and technologies (you can already look at PhoneGap, Edge…).
That’s why we need to define the best strategy for the Flex framework and establish it as an Enterprise standard today! There are two options. The first option is to invest in more new features and hire more engineers on the Flex SDK team. For the long term, I don’t believe in this strategy. It’s the traditional way to proceed for software products but not for application development frameworks. The more committed and talented developers you have in the community, the more you need to let them interact with the source code of your technology. The more you have mission critical Flex apps deployed in large organizations, the more strategic customers need to trust the future of your technology. Open source can fulfill these needs. We all know that Flex is deeply linked to the Flash Player which boosted the innovation on the web, and then, consequently, in Rich Internet Applications. I believe that the Flex framework is very mature in terms of features and can answer pretty much all the current Enterprise needs. It can also answer future needs as we can now rapidly build native apps for iOS, Android and QNX since Flex 4.5.
The second option is to consolidate the current SDK and transition to the next level of openness. That’s why we decided to propose incubating the Flex SDK to the Apache Software Foundation. I’m very happy and excited about this move for several reasons:
- Apache is a very respected foundation by developers and by large organizations. A lot of mission-critical Enterprise applications are already relying on Apache software: Axis, Ant, Maven, JackRabbit, Tomcat, Geronimo, ActiveMQ, Felix…
- For the first time, Adobe won’t be the sole influencer on the Flex roadmap. We’ll still have engineers working on it but the effort will also be advanced directly by work of top Flex developers in the community (join the Spoon project if you’re one of them).
So Flex or HTML5 ?
I’ve been working on Rich Enterprise applications for more than 6 years and I can tell you that it requires a lot of different skills and specialized knowledge. RIA developers, and especially Flex developers, know how complex it is to combine an efficient user experience with a maintainable client architecture. Flex is really the only cross-platform solutions on the desktop for rich applications. Today, 90% of Flex applications are internal apps (statistics from what I see on the field) available on the intranet and on the extranet to share the screens with external partners or customers. Flex apps won’t run in mobile browsers as Apple and MSFT don’t host plugins on their tablets (we’re still waiting for the MSFT one by the way) and as Adobe announced its intent to discontinue Flash in mobile browsers. Thanks to this decision, Adobe engineers are now focusing on Adobe AIR, the runtime that can execute and package your Flex applications as native iOS, Android and QNX (BlackBerry) apps. With the arrival of Flex 4.6 at the end of November, Flex apps will perform even better to deliver “native-like” experiences on smartphones and tablet devices. So what’s the market for Flex? Well it’s huge because we are focusing on Enterprise apps and not on Customer apps, we’re focusing on Enterprise data-driven apps, on rebranding and re-architecting existing Enterprise apps developed with Web 1.0 technologies or even client-server ones. That’s a growing market in all industries. Tablets will accelerate this need of user-oriented architectures, because if you deliver a bad user experience on tablets, you’ll immediately fail. The potential of RIA for desktop and tablet users is higher than ever because it unlocks ROI (increase the productivity of your company, improve the decision making processes, reduce the learning curve and then the training costs for employees…). I know that today you’ll hear a lot of people talking about the growing role of tablet devices in our daily life, that tablets will replace PCs, etc… Who cannot agree? I’d like just to add that the Enterprise world is evolving at a different tempo. Believe me, you won’t see large organizations replacing all PCs by tablets next year. If it happens and if it makes sense, it will take years, maybe decades. Desktop users will still represent the main population of Enterprise apps end users for a very long time. With Flex, you can already target 100% of your desktop users without migrating to a new operating system or a new browser, and you can target 99% of tablet devices as you can now generate iOS and Android native apps.
This is regarding the market for Flex, but there’s also the “developer experience”. Flex has been designed for Enterprise developers who are used to working with object-oriented languages like Java, first-class debugging experiences (on the desktop and on mobile devices), continuous integration, agile development, modular applications managed by several development teams, productive tools based on Enterprise standard IDEs like Eclipse, etc… It’s by far the best and the most efficient coding experience on the market and that’s not trivial. Before developing a mission-critical application, you have to measure/estimate the development time. Flex is usually way faster than other solutions, for a better result at the end. That’s why it’s considered the leading RIA framework on the market. So, don’t be scared, Flex is not dead. I was not surprised to see some posts on the web promoting this idea. It’s a classic trend in our industry. Just to illustrate that point, I googled some queries. Here is my TOP 5 list of the dead technologies:
- “.NET is dead” is the big winner with 576000 search results on Google. Congratulations.
- “JAVA is dead” is following with 138.000 results. I can hardly feel this trend from Devoxx and the 3200 Java developers around me
- “PHP is dead” is a little child with only 35.600 results.
- “Ruby is dead” is in the same range with 30.700 results.
- “AJAX is dead” generates 6500 results.
How can I contribute ?
After the announcement of our proposal to the Apache foundation, I received several emails from Flex developers and customers who want to contribute, to play a role in the roadmap, to fix bugs, etc… We’re still defining the process, so I cannot share any information on that today. But as soon as everything is defined, I’ll be the first writing tutorials to explain how to contribute. It’s such a big opportunity for the Flex community. It’s also a huge change of strategy and I’m aware of that, and some of you may be a little bit nervous. But Flex won’t be the only project in collaboration with Apache. We acquired Day software, and the engineers at Day are Apache masters, true open-source contributors. I like that. PhoneGap will also become an Apache project. Adobe is one of the top contributing companies to the Apache Foundation, and I fully embrace this strategy. I want Flex to become as popular as Tomcat in Enterprise architecture!
Let’s embrace this strategy together. Adobe is proud of Flex and super proud of what you achieve everyday with this framework. Based on the emotional reactions perceived on social networks this week, I can tell that we are all true and passionate Flex lovers. So let’s continue to build on that passion and work together on the future of Flex.