Key ingredients for a RIA ecosystem.
Silverlight's announcement recently caught headlines, in that it's release and partnership with Novell to ensure delivery of Silverlight via Linux is supported. This in turn underpins the notion that in order to have a successful RIA (Rich Interactive/Internet Applications) story, you need partners and more to the point an ecosystem to support the actual runtime itself.
An ecosystem is something that RIA Producers need the most, as it's not just simply about punching out an application that can do something better then most HTML or Desktop clients are capable of doing. That's the end delivery and usually the piece that the end-user only see's, but prior to this the developer or designer needed to have buy-in to get to this point in time.
What are the factors that motivate a designer or developer to invest into a runtime and languages associated to such runtime? (not always in the below order either)
This is initially the first piece that I'd wager most would look at. If I invest into this language and runtime, whom are likely to be my peers and influencers? where could I go should I need to have support or better yet help guide me through the teenage years of learning a new technology. A strong community foundation is critical, it's key and without this it could easily shy potential new recruits away.
Communities should be both online and offline, have a strong support with regards to User Groups and most importantly have an easy "onramp" to learning about a runtime with minimal pain & suffering. Communities also ensure the possibility of career movement, with a strong community in place one is able to put out a call (marketing channel) for "recruits" to a company on a given category within the runtime. It also means folks whom have risen in the learning ranks of a runtime, can scout for potential employers.
Communities are the oxygen to RIA adoption.
If you're going to build something, why not demand a tool that has an "instant build idea button" put inside it? It's but a small request is it not? Tools are also critical to successful adoption as technically we could write lines and lines of code within a plain old "Notepad" style application. This could work but we'd prefer to have colorize code, automated database layer mappings, compilers that understand strong typing and all these sorts of things that speed up our day to day lives in producing some RIA.
Tools need to be smart, they need to address my pain points today but also my potential future ones tomorrow and oh, could they do the same for my neighbor in the other cubicle at work. Tools need to ensure the workflow is held together for both a Developer and Designer.
A workflow must be fluid, factor in both Tools and Skills and merge the two together, but also needs to be mature enough that should a recruit come to the table late, there is already lessons learnt that they don't have to go through in order to continue forward. A workflow can many things, it can be an approach to a framework housed within the Runtime but it can also be simply a way in which developers & designers talk amongst one another, a foundation in which they can communicate.
You can do all this yourself, but it will be a very prescribed approach and to locked in. A strong partner support base is really needed to ensure the adoption is sustained. Partners do many things, they enhance the runtimes touch points, they embrace and support the community driven events, they produce work around's or components to enhance both the tools and workflow but overall partners are the investment capitalists whom have pegged a stake in the ground and stated "we need this runtime to succeed more than the folks whom make it!" - trust the partners, as they will be the ones whom push the runtimes development teams to do better - they demand better and aren't forgiving should one come up short.
A Conference circuit is much like the community piece, but it's more of a meeting point in which partners, developers & designers are able to meet with one another, exchange business ideas, tips/tricks and haggle with the runtime makers to get better footing on a new way forward in their approach that touches on all of the above. These are also points in time, when the new stuff is usually announced and is where most of the heavy investment is put to ensure that it becomes a marketing channel all can rely on in terms of getting a message delivered fast and within context.
You hear a lot of buzz words associated to services (Web 2.0, SOA, Software+Services etc) these are all in a nutshell a cloud of technology in which RIA Producers are likely to leverage when they either build professionally or in the "prototype" stages in life. Services for example like Twitter could be used to trickle announcements out to the community about a subject, but it's all done with pre-existing architecture. The trick for the runtime makers are that it must be agile enough to talk direct or via proxy to such services with minimal amount of coding possible.
Services are a great ally to the RIA eco-system, it provides an existing remote tools to leverage and with RSS/REST/SOAP/AMF etc all becoming normalized services today, one ideal goal is to have the runtimes themselves talk directly to such protocols with ease.
A wise man once told me, there are three types of lies: A lie, Damn Lies and Statistics. Yet they do work, and so distribution can be a funny thing. It can be purely a perception thing or it can be a mathematical equation to illustrate depth of a runtimes install base.
It's also not just about how many sockets are installed, but it's more to do with how many more are likely to be installed and at what rate are the installs likely to happen. It furthermore is a subject in which one asks "where are the runtimes installed and how" overall, many questions are derived from the word Distribution.
A potential recruit will factor in two things:
- Where are we today?
- Where are we tomorrow?
A correct way to asses this is to look at the above in depth with questions like:
- How big does the community look (as they will obviously drive distribution)
- How many partners are in the room ( as they will obviously drive adoption/distribution but also pay for it in some cases - money speaks volumes).
- How easy does it first look to produce a RIA? (if the ease of use is there, then its likely to occur faster)
- How well seeded do the RIA tools look? (The runtime distribution isn't always the only point of call, look at where the Development/Designer tools sit in the market today, and how accessible is it to these folks should they wish to produce a RIA tomorrow)
- Who is using the Runtime? (Not just how many, but what influencers out there are using it).
Thought leaders / Influencers
Lastly, these are the ones that make it all look easy. Usually an Evangelist or Community Influencer are typically these folks, as they can produce an example use of the technology that makes people pause long enough to consider the technology's strengths and weaknesses. It also can then inspire others to push the metal rivets on a runtime further and so, a thought leader is essential. These folks should then be rewarded (except if they are hired to do that) by the partners, runtime makers and community for their effort(s) as this helps motivate these folks to continue to do more, to change the conversation about RIA for better or for worse.
I usually call these folks "Indispensable Hero's" as every community needs them, the ones whom will champion the cause and be capable of going toe to toe with the Runtime development team on a subject that has such depth, it could end up changing the way the runtime will work in future generations.
A great example of an influencer would be Robert Scoble & Twitter. He used it quite heavily and in turn the degrees of influence helped twitter forward in terms of adoption. If you have the right amount of influencer(s) you can change the conversation quite rapidly.
We also need to show we are having fun with the technology, a RIA Producer is typically someone whom is enjoying using the technology as technically speaking, it can be a painful experience to sit between the Web and Desktop, so in turn there is an element of fun.
I say, invest in RIA for today, as tomorrow you will be better off. I wouldn't stop at one brand either, I would pickup as many as possible as interoperability is vital to a runtimes succession, so in turn you may be quite capable of mashing two or more runtimes together.