Vendor Lock-in & Open Source Lock-in

Vendor Lock-in; Heard this term before at a big company from a co-worker deciding to use a technology. Didn’t know wtf he was talking about at the time… now I do. I’ve seen the term thrown around a lot by Open Source zealots, using it as a negative for not using open source alternatives. I like my vendor, thank you very much.

…well, I did… then I didn’t… now I do again.

Macromedia made a better product to do my desktop apps while still allowing designers to play; Flash. I was using Director, and it took longer to do things, was less flexible once you picked a development path, and couldn’t have designers working with the same files.

Since 2001, I made the switch 100% to Flash, both design & coding, desktop & web applications.

Something weird, however, happened in 2004… actually 2 things. First, Macromedia released Flex; I know it was released earlier than that, but it didn’t really pick up steam till a few months before 1.5 was released. Secondly, MTASC, the open-source Flash compiler came onto the scene. We’ve had Kinetic Fusion & JGenerator in the past, but nothing made such a profound impact to the community like MTASC did.

Flex came and went for me. I purchased the CD, installed it, went through a couple tutorials, laughed at the sales guy who called me, and really got confused. Why would I ever want to develop this way? Why do I need a server, etc. Then, I started seeing some more blog entries from Macromedia employee’s pop-up; Iteration::Two kept talking about it, and I noticed a lot of Macromedia employee activity on the Flexcoders list. So, I bought the CD again.

I “got it” the 2nd time.

However, I started to see an extremely uncomfortable pattern. During the same time, a lot of announcements were made about Flash 8, none of them seemed to solve the problems developers were having with Flash. Mike Chambers availed a lot of the FUD, but I still didn’t feel 100% better. All the while traffic continued to rise on the Flexcoders list, and the Macromedia presence was strong. Additionally, you could see them actively requesting feedback from customers, even on a 1.5 product. I looked at the price of Flex, and payed attention to some purchasing decisions made while I was at BellSouth.

Things started to click. Debating on this blog, email lists, and through instant messenging conversations, things made even more sense. The more clarity I received on Macromedia’s projected direction for Flex, the more worried and frustrated I had become.

Why was Macromedia focusing on the enterprise customers? Granted, I really saw the potential for getting them involved in our line of work, empowering traditional web programmers to do the same type of work us Flash Developers had been doing. But we Flash Developers still had many challenges to overcome… where was the focus? They had taken a break from the desktop initiaitives, cool, but… we’ve been using your product for years, we’ve evangelized the use of Flash, and an awesome community emerged from that. Why aren’t you actively trying to solve our needs? We’re paying customers, too.

Meant jack. The more I developed with Flex, the more I realized, at least for my type of work (large programming projects, heavy on the back-end, more than likely to have more than 1 developer), this was the future. Sort of.

I, like everyone else, failed to see how I, as well as any company I worked for, could afford such a product. Apparently, however, people were buying Flex and using it. I didn’t work for a big company though, nor intended too. I didn’t mind getting contracted out, but as an employee, um, no.

Only a few of us stuck with it, while the rest clearly saw it wasn’t priced in their market, and left. I however, couldn’t. There was just something “right” about Flex, and I HAD to use it; I could tell this was my future, this is where I needed to be. But how? HOW!? Flash by day, Flex by night… this wouldn’t work forever.

So, I just bided my time and hoped. It only got worse. I suddenly realized that the components in Flex were actually extremely improved & re-factored Flash MX 2004 ones… and they were old, too. Huh? Why didn’t we Flash Developers get these? We would of paid for this.

The cold shoulder I continually recieved at Flexcoders didn’t help any either. Even if I toned down the slang, spoke clearly and articually while still keeping my passion in the craft, I could feel like I was unwanted and not taking seriously.

This pissed me off, big time. I was seriously contemplating punting Macromedia altogether. I tried gathering community support for Flex from the Flash community, but failed since I didn’t effectively convey the value that Flex brought a lot of application developers, even those not working on large projects. That only made it worse, because the price became even more of a hindrance. Even those who did see the value couldn’t convince their customers.

With extreme bitterness, I longed for Sparkle; suddenly, I wanted to be the best .NET & Sparkle developer to ever live, half out of spite. You want to treat this as just business? Fine. I dropped Director like a ton of bricks, and I’ll drop Flash too.

The announcement of AS3 & Flash Player 8.5 for Flex first, Flash second was the nail in the coffin.

…then parts of the vision were shared.

That won me back. The new licensing for Flex Builder 2 generated SWF’s as well as the approachable price point made it work.

By then, however, plans were already in motion. I had no choice; I couldn’t handle Flash any longer for the work I was doing; it was frustrating. It does what it does well, but I needed something different for the code side; FAME wasn’t doing it; while fast, it wasn’t intuitive yet.

I bit the bullet; if you can’t beat ’em, join ’em. So, I started looking at companies that WERE using Flex. Some were appealing, some weren’t. After a week unplugged in Canada, and 4 weeks of being unemployed, I finally struck a phat deal; I could sit at home coding Flex all day with minimal trips to the office; say, once every 2 weeks or more when needed.

Off. The. Chain. What could be better?

So, while tying my career to Macromedia has had it’s pre-emptives (goodbye Director), and forced changes (uh… hi Flex… again), I’ve worked through it. I keep reminding myself this isn’t personal, it’s business, there are stockholders to please, and we have a future to mold. I re-invented myself, hopefully shared the light with as many others as possible, and have tried to positively expose the technology to the masses.

I now understand Vendor lock-in.

Now, on the flip side, Open Source I feel locked me, as well. Certainly lead me on, that’s for sure.

Nicolas Cannasse is a bad ass. The guy created a seriously cool tool which empowered an entire legion of others to exploit Flash in an open source world. The results are continually amazing.

I suddenly was a lot more productive; I was no longer being punished by making tiny code changes only to have to wait minutes for just a tincy change in code. My workflow, while changed, took me out of my comfort zone, and I learned about new tools, new ways to develop, but still used a lot of my existing skillset I’ve honed for years. Cool!

Then, Nicolas takes a 90 degree turn that no one expected. Not only is he not going to support ActionScript 3, but he wants to create a new language.

“Uh… but… dude, I was kind of hoping that I wouldn’t be tied to FlexBuilder 2 costing thousands of dollars because I could use MTASC. Shit… anyone know OCaml?”

Options are funny things. People want them, but don’t always use them. I’d argue a lot don’t. I’d even go so far as to say a lot of the freedoms Americans have in this country are not utilized, but take them away, and their’s hell to pay.

I find the same thing with open source. The “option” exists for most of the projects, depending on the license obviously, for you to not have to wait on any company, and build your own, needed changes to the software, and release it back to the community, legally.

How many could actually do that? I love PHP, but I don’t know C. If I hate PHP 4’s handling of XML, and I bitch on the list requesting a new API be built, or a wrapper be built around the current API, I’d probably be told to put up, or shut up; go write it myself. “Uh, no, how about I pay you to.”

Same with MoveableType. I HAD to learn Perl, though, for if it I didn’t, my webhost would shut down my blog as the spambots were using too much bandwidth. If I didn’t find a way to stop it, the admins would, at the very least, forcefully remove commenting from my blog. Wow, I’m neat, I “fixed” open source software, and thus participated in the revolution. I guess. To me, I felt I was fixing something, vs. improving it… and that was only because ANOTHER open source plugin, a Captcha test, didn’t even work. This isn’t fun, I don’t enjoy this, my efforts do not feel fruitful.

So, while the “illusion” of open source was placed on MTASC, it’s really not, maybe license wise, but not in the “anti-vendor lock-in” spirit; OCaml programmers are, as I’m now finding out, not necessarely in high numbers.

Yet another nail in the coffin for me to HAVE to use Flex.

…AND, proof that you can be locked-in to open source as well.

I’m still a prisoner of MoveableType. I need control of my own blog, but don’t have the time to install something like, WordPress, which is PHP based which gives me enough knowledge to at least take a more active role in improving (or fixing) things. But, my theory is, if it isn’t broke, don’t fix it. I’ve been burned too many times screwing with something that didn’t work, and my blog isn’t checked into Subversion.

At least with the open source, I had a choice; go back to a vendor, or start learning haXe.

I like Macromedia. I like Flash. I like Flex. I like a lot of Macromedia’s other products, and I feel a lot of them I can still evengelize to others. I have learned valuable lessons, though, about what I feel is vendor lock-in, as well as not talked about dark side of open source software, open source lock-in.

This whole article could actually be a farce, one could argue. If I were a real developer, I could go learn something else. Sure, I could, I learned Perl (2 lines), PHP, Lingo, Visual Basic, JavaScript, HTML, mySQL(enough to be dangerous), and CSS on my own. I could easily go find a career in .NET, I feel, or even C, albeit lucrative, since I find I’m more akin to client development than server. That would render the entire “vendor lock-in” the spouting of an inesecure developer, fearful for his career, utilizing a hollow phrase in self-defense of using open source.

So, sure, I could go learn Ruby on Rails… but, Flex & Flash are fun! I don’t mind being locked-in if it’s fun. People who use the prison metaphor; like the Matrix. You don’t even really realize you’re in a prison.

Yeah well, this is the real world, and I don’t know C or OCaml… and Flex and Flash are fun, so… what can I do? Make the most of it. At least I can depend on Macromedia (and soon to be Adobe) being around longer than my quick forray into the open source world. Not a good first experience for me, and certainly makes vendor lock-in a good thing vs. a bad… for me, anyway.

8 Replies to “Vendor Lock-in & Open Source Lock-in”

  1. Great post, Jesse.

    Vendor lock-in is not nice in theory, but I guess it’s inevitable. In the old days, things were progressing more slowly – at least it seems to me – and vendor lock-in was less of a problem because of that.

    The bottom line is, I think, as you say, MM/Adobe will be around longer than most of the others. And even if good old Director is now in dying phase (sad), it’s still supported and updated.

    Best regards,
    Burak

  2. The real problem is proprietary Flash vs open standards like XHTML/CSS/JS. A greater adoptions requires a technology that every major vendor can offer.

  3. i just started testing FDT in eclipse with mtasc until it was announced that it won’t support AS3. I then redirected the compile to be done by flash as i want very little rework to export it via flex2 when it’s final. Had a fork in the road with how to be ready for as3 migration so MM it is. Bummer as i loved how mtasc worked.

  4. Hi Jesse,
    Thanks for a thoughtful and interesting post. As I was reading it I marveled at your persistence. I mean you are talking about being forced to change tools in order to build rich web applications. It sounds like you’ve done it three times: from Director to Flash, from Flash to Flame, and from Flame to Flex. Rereading your post it sounds more like you are locked into Macromedia’s Flash ‘platform’ than to a particular tool and have paid a real price for that. This is the kind of thing

  5. Great post Jesse!
    I used to use a (commercial) open source product called iShell that was built on a very obscure language called Key that was somewhat based off of Eiffel. It was open, so in theory I could make the changes I wanted or hire someone – but finding a developer (or learning Key) was extremely difficult (right up there with Ocaml I’d imagine) and then maintaining the separate code base would have been a nightmare. That said, I have been using Macromedia’s products for over a decade now, and have to say I very much agree with you – time to move on from Flash (it’s been fun, but it’s over), but I’ve been bitten by Macromedia’s Enterprise offerings before (Generator, SiteSpring, Multiuser server, etc) and don’t intent to go down that road again… I love the idea of Flex, but I think I like the long term options more with OpenLaszlo. Apparently they have an AJAX (God, I HATE that term) and a .NET publisher in the works (I’ll believe it when I see it) – I wouldn’t expect that kind of choice from Flex/MM/Adobe.

  6. I like it when you write like this. Early adopter blues – I share your grief. I’ve dug myself in quite deep with my investment (time and money) in Macromedia’s assumed future direction. It’s probably more my interpretation of the vision. My assumption about the direction that MM/Adobe/Yahoo, Microsoft, Google?… all seem to be heading. It’s hard to be clear above the noise of sabres rattling on all sides.

    Like you, I have a very clear vision about what I want from the Flash Platform (link1, link2, link3). I’d love the opportunity to share my vision. But no-one is interested in discussing Central since it went out of fashion. Cold Shoulder. Macromedia just went quiet about Central – no explanation. The Central developers discussion list got switched off abruptly without explanation. Central development went stale. Abandoned developers went away angry. I stuck with it until recently. I continued to evangelise my vision.

    Like you, I was interested in a particular focus. Not enterprise. The Central branding issue was irrelevant to me. If MM’s logo helped me to sell more of my applications to consumers – then that’s a good thing. I didn’t want to customise Central to lock-out competition either. Like you, I was in the minority. A heratic.

    Initial pricing/licensing putting developers off – that sounds familar too.

    Now Apollo is on the horizon. We don’t know much about it. When it will be?, When developers can play with it?, How it will be pushed to consumers?. I’m really disappointed in Macromedia that they don’t have it ready yet. They’ve had plenty of time since Central 1.5. They’ve lost the momentum.

    Central 1.x was never a product. That’s fair enough. It was an enthusiastic alliance between Macromedia and developers. It was an incredible resource. It’s a pity that Macromedia allowed it to go to waste. Arrogance or stupidity?

  7. Wow, this post really sums up the way I have been feeling towards the whole flash platform thing. It’s all so confusing I feel like going back to the secure world of print design, at least photoshop and illustrator dont change their hotkeys and such around all the time..

    But seriously though I have spent a huge amount of time moving from flash 4 timeline based animations to as, as1, as2. I would love to have a go at using the new flex builder but I am worried that I will love it and once again it will be priced way out of the small to medium size studio market.

    Who would ever have thought that I would be actually considering microsoft as offering a sensible alternative?

    Maybe I’ll just brush up on my js swap layers code from 1995 and call myself an AJAX developer. Sigh.

Comments are closed.