Squiggly is the new spell checking component that Adobe recently released on labs. I haven’t had a chance to test it in depth, so I’m not sure yet how it compares to our Spelling Plus Library, but I have to admit that its release frustrated me a bit.
I’m not at all worried to have competition in the space, we’ve had a good run with SPL so far, and competition is always welcome. Rather, I’m concerned about who I’m competing with.
See, one of the things that the Flash world really lacks is a strong commercial component marketplace. We have a thriving OSS culture, which is awesome, but while it is very prolific it rarely creates highly reliable, documented, and well-supported libraries. It’s a weakness of the platform, especially when you look at the hundreds or thousands of enterprise class commercial components available for languages like Java or C#.
That’s why, when Adobe spends a large amount of resources building a spelling component that directly competes with one of the few successful commercial components in the Flash world, it frustrates me. It’s not the potential impact to our revenue from SPL (which was a largely unexpected bonus of building it), competition is an expectation in this industry, and I wouldn’t be writing this post if it was a third party that built Squiggly. Rather, it’s the message it sends to other potential component developers.
Adobe could have used SPL as a customer success story to entice other developers into offering high-quality components. They could have even helped promote SPL, to actively encourage the growth of a commercial eco-system. Instead, they issued a warning to those same developers that if you build something that generates demand, they will compete with you directly (or worse yet, release a competing component for free).
I understand that there is a lot of value in Adobe providing an official spell checking solution, assuming it remains updated and well supported. However, at a minimum they could have given us advance warning of Squiggly’s release, or even had a discussion early on to see if what we had built would work for what they need. It must be close, as they are already using SPL in a number of their own projects. They need to work with their developers, not against them, if they want a strong platform long term.
[Important note: I was provided 3 weeks notice of the release. I originally thought it was only a couple of days notice, and so didn’t feel it was even worth mentioning in this post. The notice basically just informed me that Adobe might be releasing an OSS spelling library at some point in the future. In fact, I believe part of the reason that I was so far off in remembering the amount of notice I got (beyond being ridiculously busy at the time), was that it really wasn’t actionable in any way, so I basically dismissed it. It was better than nothing though, I appreciated it, and it is remiss not to have mentioned it. Sincere apologies to Christian.]
I’d like to chalk this up to pure ineptitude and cluelessness. It wouldn’t even shock me if the team that built Squiggly was completely unaware of SPL, despite that showing a lack of basic web searching ability. I’m certainly hoping it wasn’t a case of Adobe seeing something that worked, that filled a need, and that demonstrated demand, and saying “hey, we should do that too”. Either way, it demonstrates a lack of understanding of developer relations, and how to foster a healthy component ecosystem. This is also something that Adobe / Macromedia has a history of doing, so its not like this is a first offense.
Note that the above doesn’t apply to all of Adobe. There are people who get it, and I thank them for bringing this issue up internally. Unfortunately, I think Adobe needs to embrace a corporate culture of supporting their developers both technically and from a business perspective, not just among their evangelists, but also with their product and executive teams. If we’re successful, Flash (and by extension Adobe) will be successful.
What do you think?
Do you have an idea for encouraging a healthy ecosystem for commercial components? Share it here.