Have you heard of Squiggly?
Have you heard of Squiggly yet? Squiggly is a spell checking engine built by Adobe that works with the Flash Player. It is up on the Adobe Labs site and people believe it will end up on the Adobe Open Source site in some form. Grant Skinner, a well known Flash Platform programmer sells his own Spell Checker component. In a few blog posts he questions what Adobe can do to help to encourage a commercial ecosystem around the Flash Platform.
My favorite quote from the two posts is when he refers to commercial components as "highly reliable, documented, and well-supported" when compared to open source offerings. I believe that support is one of the biggest benefits of going with a commercial component vendor.
As someone hoping to thrive in such an ecosystem, I have my own list of thoughts to give to Adobe. At one point Adobe wanted to hear them, but the person who I was supposed to speak to had a job change and the matter eventually went away. This is the advice I would give Adobe to help foster a commercial ecosystem around the Flash Platform.
Help Build Awareness for Commercial Component Vendors
I believe the biggest problem facing Flextras is obscurity. Very few people know we exist. I do not expect Adobe to do my marketing for me. I do not expect Adobe to spend time making Flextras a success. But, I do think they can help with awareness. Here are some things:
- Tour De Flex: Make it easier for me, as a component vendor, to list new items in Tour De Flex. Make it easy for me to add new components. Make it easy for me to add new samples. Tour De Flex is the single biggest source of traffic for Flextras.
- Flex.org: I posted our DataSorter component to the Flex.org component showcase in early January. Our AutoCompleteComboBox never showed up on their site when I posted it. When I tried to repost it, the ability to add new components was removed. There was a typo on the DataSorter listing, but no way to edit it. I think it eventually got fixed. Unfortunately, Flex.org is an abandoned wasteland, which is not to Adobe's credit.
- Blog Aggregators: The podcast page on Flex.org hasn't been updated in over a year. If I submit my blog to feeds.adobe.com the request disappears to the void. These could be two great resources for helping make people aware of my content. Four months when I tried to get the Flextras Friday Lunch added to the podcast page at Flex.org I'm told the site will be updated soon and they aren't taking submissions. Adobe's version of 'soon' is different than mine. We've released 30 Flex Show episodes since the last feed update, so the discrepancy is frustrating.
Given these problems, I would recommend that Adobe give community members a single interface for managing our content on Adobe related sites. I want to go to one place to update my component listings in Tour De Flex, Flex.org, and The Adobe Marketplace. Give me a single submission process, not 3 separate ones that all ask for different information. Give me one place to update my RSS feeds for podcasts or blogs to get into Adobe community aggregators. Let Adobe deal with the work of distributing that content from my one "Edit" place to their appropriate aggregator sites.
Help my Components Integrate with Adobe Tools
The Flash Platform is an ecosystem and Adobe has a lot of tools surrounding it. The Flex Framework integrates nicely with many of these tools, most prominently Flex Builder. How do I make Flextras components integrate with tools just as seamlessly? This is what I would recommend:
- Design.xml: Document the design.xml and document the manifest.xml file better. These are the files that help you create your own namespace and tweak how code hinting and the design view work for custom components. It would make my job easier, and my customers happier if I were able to make the use of my components as seamless as possible. While I'm asking for documentation on design.xml, how do I bundle my ASDocs into Flex Builder help and activate them when the user presses the F1 key? That'd be sweet!
- A SWC is not a SWC: There are issues using Flex SWCs in Flash Professiojnal, and vice versa. There are issues using Flex 2 SWCs in Flex 3, and Flex 3 SWCs in Flex 4. Why? Can this problem go away? A SWC is just a zip file, right? What is that internal binary that causes compatibility problems? If I had to guess, II bet it relates to the classes that are, and are not, compiled into the SWC. Can we have a "maximize compatibility" option when compiling a SWC? I know that Photoshop has it for the PSD file format; why not Flex?
I guess you could summarize all my requests by telling Adobe to provide me with tools that can help me be successful with their products. If they do these things it will not only help component developers, but all developers who are working in the Flash Platform Ecosystem.
Comments to Comments
I wrote the above before reading any of the comments on Grant's post. A few interesting things have come up in the comments which I wanted to weigh in on.
- SWCs need to be protected: A bunch of people claimed that swcs are too easily decompiled and a commercial ecosystem will never spring up while this is the case. I wonder how many of these people have downloaded a song off the Internet, or how about a movie? Have they circumvented DRM on a computer game or other software? Consumers hate DRM! That includes programmers. It angers customers and does not prevent the pirates from stealing your work. I believe a good long-term viable business model will not focus on selling digital bits to people over and over. There needs to be a reason to buy. Premium support is one option. The ability to create more reliable, supported, and documented components is another. I wrote about this stuff in another post.
- Free Open Source doesn't compete with a Commercial Vendors: Yes they do! But, If that commercial component vendor wants to stick around he better find a way to offer value beyond the functionality in the open source project.
- Adobe Should build a real Marketplace: The Adobe Marketplace is poorly named since it is a directory, and not a real marketplace where folks can buy and sell goods. Having a marketplace would help many developers get up to market quicker. It took about 2 months to build the Flextras site and I consider it barely functional. The existence of such a marketplace does not make a business, though. You'll still have issues of marketing and sales and support.
- Adobe Competes With Me: It is Adobe's responsibility to build the platform by talking to customers and filling their needs. If everyone needs / wants it, it is likely this feature will end up in the main platform somehow. I do not believe Adobe should ignore these customer requests because third party vendors exist. If you fill a hole in their ecosystem, especially an obvious hole, you're going to be trumped. With each Flextras component, I consider them a highly specialized use case. But, it seems probable that our AutoCompleteComboBox or CalendarDisplay will be trumped by Adobe at some point.
- FOSS is killing commercial ecosystems: Adam Lehman made this comment regarding OEM licensed tools inside ColdFusion, and it is an interesting one. As the ColdFusion Product Manager, I give his experience in this more weight than other commenters. CF has slowly been replacing a lot of their OEM licensed tools with open source alternatives, it's true. However, I wonder if those OEM vendors that no longer exist provided value other than selling "digital bits of software"? I believe any company can thrive if they provide value to their customers, and something worth paying for.
If anyone has a component that they think has commercial value; I'd love to talk to you about turning it into a Flextras component. Please Email us and we'd love to talk to you.
What would you like to see Adobe do to help foster an ecosystem around their components?