As the end of my current contract job comes near, I’ve begun putting out feelers for a new job. Looking over some of the descriptions and skill requirements for job openings, I see a pretty common thread: big companies are (still) asking for Java and .NET programmers, while smaller firms tend to look for developers using PHP, Python, Ruby on Rails, etc. This got me thinking about “Enterprise” platforms, and so I posed a question on Twitter:
This sparked some pretty good conversation, so I thought I’d share some of it here.
This one made me think a little:
Then things really took off:
(I said Sun there, but should have said Oracle. I still can’t get it though my brain that Oracle bought Sun a few years ago)
This pretty much sums up what I already thought on the subject. Big companies buy in to “enterprise” platforms because they are backed by other big companies. I’ll grant that there are some areas where a corporate product makes sense. For example, (don’t hate me for saying this) standardizing on a software suite like Microsoft Office. It’s a commodity product, widely used (so many employees will already be familiar with it), and being able to get support from the creator of the product makes sense.
But coming at it from the perspective of a web developer, I start to question the inherent value of enterprise platforms. Unlike word processors, spreadsheets, and presentations, web development remains a rapidly evolving field. And while there is value to having commercial support available for products, it starts to make less sense for some levels of the application development stack, like the actual programming languages used. I get the impression that some companies have chosen Java or .NET as their underlying web technology simply because there are big companies (Oracle and Microsoft, respectively) behind them. Then, having chosen their technology, they hire programmers to build a web platform/product.
But it seems like in many cases, the technology is chosen in isolation of studying whether it is the best tool for the job. Instead, it becomes the proverbial hammer, and by golly, our problem must be a nail, not a bolt! In other words, I wonder how often an alternative technology is passed over, even though it might be suited to a particular task, simply because it doesn’t fit in with a decision that was already made?
I don’t mean it to sound like “big companies bad, small companies good!” There are plenty of examples of big companies being more nimble and open to new ideas than you might expect. And maybe that happens more than I think. Anyways, this is just my brain-dump. I’d welcome any other thoughts on the subject.