2013-01-14: A Decade of Spices has come to an End
For all of you who regularly follow discussions on the forum this is not big news. But I decided to make it more official through a news entry to make sure everyone is aware of the changes.
- The release of Parsley 3.0 Final in February 2012 was the last Spicefactory release. None of the Spicefactory libraries or frameworks will see further feature additions or bug-fix releases.
- The sources of Parsley 3 and Spicelib 3 are on GitHub and, of course, will remain there. In case someone wants to continue to work on the frameworks they can simply be forked, but I won't be able to assist in significant ways.
- The forum on this site will remain open for the foreseeable future. Registration had been changed to require my approval, so that there won't be too much trouble fighting spam. It has become fairly quiet recently anyway.
- The Jira issue tracker will stay live for reference for probably another year or two, but please do not add any new tickets as no-one would be assigned to them here. Almost all of the tickets are closed and reflect work on previous releases, anyone forking Parsley or Spicelib should use other issue trackers for the new work.
- Likewise the old SVN repository for older versions of Parsley and Spicelib (1.0 to 2.4) and for Pimento/Cinnamon will stay live for a year or two.
With the important facts out of the way, the impatient may stop reading here. For the rest of this news entry I'll just add a few personal thoughts as a final wrap up.
The browser plugins died. Well, almost. But at least their importance is undeniably in decline with most big players backing standardization efforts in the HTML space to make plugins more and more obsolete or only needed for very special requirements. Silverlight went first, with Microsoft's change in direction and although many have discussed the amazing PR stunt of Adobe in November 2011 as being suicidal for the Flash Platform or at least for Flex you could also see it in a different light: as only accelerating the inevitable. The writing was on the wall for some time already.
The effect, nevertheless, was fairly devastating. Since the various announcements Adobe made in fall 2011, you could observe a community on the move. Conferences or even companies who had Flex or Flash in their name got rebranded with new names, consultancies who had a primary focus on Flex and Flash technologies were suddenly confronted with customers predominantly asking for HTML5 or native mobile solutions, and many engineers already decided to move on some time before I did. Likewise, on the Spicefactory website I could observe a constant decline in page accesses, project downloads and forum posts after these announcements.
I know that, when starting a new project, it is tempting to evaluate options purely on their technical merits, and I know that there still may be occasions where Flex, Flash or AIR might appear attractive compared to alternatives. But a decision for a particular technology should also involve strategical considerations: in which area do you expect the fastest pace of innovation in the near future? the most ambitious engineers? the most companies providing solutions and services? the most Open Source offerings? In most cases you are not only building a product for today, but also for tomorrow, and your technology choices should reflect this.
I actually already saw something similar happening in the past. The very first programming language I ever learned way back in the nineties had been Lingo. It was the scripting language of Macromedia Director, and all my early contracts as a programmer involved development of CD-ROMs based on Director. When Flash finally took over with the release of version 5 and the introduction of ActionScript 1 which turned the animation tool into a programming platform, Director was abandoned by the community quite quickly, and that happened long before the Flash platform even remotely covered the feature set of Director. The final gaps were actually only filled fairly recently, with the introduction of Stage3D in Flash and Native Extensions in AIR, almost a full decade after Director turned to a road to oblivion.
But in any case, the developments over recent months made me realize that continued investments into Spicefactory projects are no longer a viable option. My primary focus (and that of frameworks like Parsley) has never been gaming or video, the remaining strongholds for Flash. My recent focus has been large enterprise projects, and in that field, use of Flex clearly is in constant decline now. Furthermore, as an engineer who covers client side and server side, I did not want to spread too thin and instead of simply adding newer technologies to my skill set I decided to make a clean cut and no longer accept any new contract that involves work with Flex or Flash. Under the light of this decision, it is pretty clear that I would also not be the best maintainer of the Spicefactory projects when they do no longer have any connection to what I do in my day job.
For more than a decade my primary focus had been Flash and Flex on the client side and Java EE on the server side and the various ways of connecting these. Some of you may not be aware of my earlier work, as the by far most popular Spicefactory project has been Parsley which saw wide-spread adoption only after version 2.0 had been released in summer 2009.
But work on the first spice had already begun in 2001. For a large graphical chat application for German TV station WDR, I created the Oregano Multiuser Server, written in Java and providing real-time connections to the Flash Player based on the (at that time new) XMLSocket object in Flash 5. I released it as Open Source in summer 2003, and although it did not see wide-spread adoption due to the high number of competitors and my limited marketing skills, it was, back then, seen by many as a more powerful alternative to Flash Communication Server (the predecessor to Media Server). With support for transparent clustering and other advanced features it covered areas even some of the commercial alternatives left out.
Soon after that, during summer 2004 when I started to do a lot of contract work for Powerflasher, (one of the most well-known service providers for Flash solutions in Germany and later known internationally for their FDT IDE), work on Parsley started. Initially I felt it was too incomplete to be released as Open Source, so it remained an in-house solution for my clients for some time. It had first been written in AS2, and since it was before the days of the Open Source release of Flex and existing AS2 component frameworks were pretty lacking, it even contained a set of UI components. For the historians amongst you I uploaded the (pretty extensive) manual of the non-public 0.9 release of summer 2005.
In 2007 I ported Parsley and Spicelib from AS2 to AS3 and added Cinnamon (a Java implementation of the AMF3 protocol) and finally felt they are ready for a larger audience. In that year I created the spicefactory.org site as a new home for all the spices and released all of them as Open Source. Adoption was still moderate, until Parsley 2.0 was released in summer 2009. The greatly expanded feature set and the tighter and smoother integration with Flex that was missing in Parsley 1 suddenly made it an attractive choice for typical Flex enterprise projects and over the following months download numbers increased 20 times compared to those for Parsley 1.
This success opened the doors for interesting new opportunities, presentations on conferences, training courses, travel to many nice places in Europe and the US and involvement in large enterprise projects in leading architectural roles. Overall, even with that path suddenly ending in a cul-de-sac, I think it was worthwhile. Work on the spices has been fun, and although 95% of the work has been unfunded, I greatly benefited in indirect ways.
A decade is a long time. And if I'm honest I'm not even unhappy about being forced to move on and refocus. As a software engineer it certainly helps if you embrace change, otherwise it would probably be better to pick a different profession.
Finally, I'll also remain active in the Open Source space. But since none of my current and future work will be related to the spices, I'm not going to post news about them here on spicefactory.org. The first Scala library that I already released is called Laika (named after the poor space dog on board of Sputnik 2) and hosted on GitHub, under a different organization than the spices to avoid any confusion. It is a library for transforming lightweight markup languages like Markdown into various output formats like HTML. A transformer library is a perfect use case for getting used to the blend of OOP and Functional Programming that Scala offers. If you are coincidentally interested in my new work, too, simply follow me there on GitHub.
And if anyone foresees the need to contract a Scala engineer later this year, you can contact me here.
Probably the most unfortunate aspect of the decline of Flex is that a fairly nice community will now be scattered over the other tech worlds. (Yes, I know, some of you remain in that space for now, but that only adds to the scattering).
If my time in the Flex space would have been a movie, I'd probably introduce the final credits below with the phrase "in the order of appearance". But since it was actually real, I'd like to simply thank
Carlo Blatz (who recently got renamed even without having Flash in his name, some call it marriage) and his admin and PR teams from Powerflasher for their help in promoting the early spices and providing the infrastructure for them, like the old SVN repository and the Jira tracker,
Nico Zimmermann, Timo Langpeter, Malte Beyer and other former Powerflasher engineers for their feedback on the early spices,
Tom Sugden for providing invaluable feedback from within large enterprise projects after the release of Parsley 2 which greatly helped shape the road map and for voluntarily picking the infamous salmon background color when contributing the sample application,
Yaniv de Ridder, Alex Uhlmann and many others from Adobe Professional Services for their support and the interesting features they've built on top of Parsley in their Cairngorm 3 libraries, with some of them being a great inspiration for later additions to Parsley Core,
Alex Galays, and more recently, Sebastian Zarzycki for being amongst the few who regularly found the time to help users on the forum and even managing to sometimes successfully imitate my response style with a slightly impatient undertone,
a certain team in a bank in London (that, I think, I am still not allowed to publicly mention without facing the guillotine for high treason) for making my involvement in one of the largest Flex/Parsley applications ever conceived an enjoyable experience,
the Robotlegs and SpringAS teams for being nice competitors,
the Swiz team for letting me learn to get used to being confronted with a competitor who spreads misleading and nonsensical F.U.D. about other projects,
the many users who provided feedback and bug reports.