Time was an enterprise developing an application had its choices for application frameworks, and they were safe: J2EE or some flavor of Microsoft. True, this was always a fiction, as Perl, PHP and a variety of other dynamic languages were the don’t ask don’t tell glue that actually held everything together and, you know, got stuff done. But at strategic levels – as far as the CIO saw things, in other words – the choices were pretty straightforward: to Microsoft, or to not-Microsoft with Java.
But this is, of course, old news. Both because I’ve written it up previously and because enterprises today are living this; CIOs are mandating compliance to strategic platforms while time-pressed and resource short teams are resorting to whatever gets the job done.
What we only touched on before, however, was the role that development frameworks are playing in this fragmentation of developer targets.
Rails may be the best known of the developer frameworks; its visibility is such that some are more familiar with it than the language its aligned with – Ruby. And indeed Rails is in many respects the epitome of what frameworks can be, for better and for worse. On the plus side, its constraints mean massive productivity gains versus designing from scratch. But while Rails is excels at the generation of new applications of a particular style, it is less adept at migrating in existing applications or the construction of many kinds of applications. To be fair, Rails has worked at the first problem and as to the latter, it has never harbored any ambitions of being all things to all people.
Around the Rails framework we’ve seen a fair amount of activity, the beginnings of legitimate ecosystem even. It’s famously been ported to other, non Ruby languages – see Steve Yegge’s Javascript port. Perhaps more importantly, it has something even Java never really had: good hosting options. With options like Heroku – who’s designed to make Rails deployment and hosting seamless – available, the barriers to entry for developers working with frameworks are falling fast.
Which is why the investments from Zend in – and growth of – its eponymous framework make sense. If you want, as Zend does, to sell PHP in to enterprises, a commercially supported framework is an excellent tactic. There are certainly no shortage of PHP frameworks around – while I was in Denver, I saw Alex go through close to half a dozen – but businesses need a surer bet and, frankly, fewer options. Rails remains the clear choice for Ruby, DJango is the favorite for Pythonistas and – at least within its target market – the Zend Framework is a good bet for PHP.
Questions remain, of course. Enterprises were willing to bet on Java and Microsoft because they were going to be around. And while most of today’s frameworks will still be around, it’s often difficult to project how they will be performing and evolving relative to their competition. Particularly in a market which is seeing and increased rate of fragmentation for development targets.
What the longer term implications of the surge in popularity in development frameworks – and web frameworks in particular – has yet to be determined, regardless of what the CIO might tell you. What is quite clear at this point, however, is that the immediate and observable benefits to their usage are the proverbial genie that cannot be put back in the bottle.
When I’m asked what I expect the fates of development frameworks in general to be vis a vis the enterprise, my answer is simple: gradual acceptance. While CIOs won’t embrace them, instinctively – and probably rightfully – fearing a dependence on application platforms with uncertain futures, their promise is proving to be too much to overcome. Much like the dynamic languages they’re composed of, development frameworks allow fewer people to more done more quickly. That’s a difficult proposition to argue against. IT will attempt to hold them to tactical duties, with the possible exceptions of commercially supported frameworks, but those restrictions won’t hold indefinitely, particularly in the face of tighter budgets and shorter staffs.
For their part, however, the frameworks that would want to see adoption in commercial settings would do well to consider adapting their models to enterprise needs. Predictable change, backwards compatibility, stable ABI/API, all of these things are concerns for enterprises. The frameworks that do the best at comprehending that, then, will have a leg up in commercial settings.
Whatever the fate of these frameworks within the enterprise, the strategic tools mandated and imposed from the CIOs office must be competitive with the likes of Django, Rails, and the Zend Framework. If they aren’t, CIOs will find the future looking much like the present, where the strategic platforms are eschewed in favor of the tools that get stuff done.
Separately, we’re going to see increased commercial investment into the framework space, whether that’s in Zend-style framework development and support or Engine Yard or Heroku-ish framework-led deployment, hosting and maintenance.
Disclaimer: Microsoft and Zend are RedMonk customers.