Imagine you have a great idea. You think about it, design it, test it, try it. You approach customers with it and they are very interested. You do the market research, find that the market is growing like banshees, build a busines plan, do all the footwork. Then you go look for capital to make it happen.
And this is where the story tune changes. The capital markets are tough. These days one might argue that venture capital is about investing without risk, there are serious demands on the entrepreneur to provide proof-positive that this will be a hit, before it enters the market. This is the backlash from the free-spending days and term-sheets-on-a-napkin from the mid to late 90s.
So here you are with your great idea, and you see lots of other people starting to have similar inklings. You have a really good sense of how large this (huge) market is and how (fast) it is growing. You know the window is short to get into the market and you have some plans to ameliorate it, but you still need to get the capital.
And capital is but a pipe dream. You see projects which have no business getting serious money being funded. You wonder what you are doing wrong.
A conversation recently with a good investing group yielded a point that we have been making and pushing, that what we want to do requires a great API, something that unifies, simplifies, makes life easier for end users. And others have been making that point as well. Thomas Sterling noted in an HPCWire interview, the following as a result of a question from the interviewer (excerpted w/o permission under fair use, see the original linked above or below for complete article, and a shameless plug for HPCWire, they tend to have good stuff to read, so subscribe if you can)
Lazou: For petaflops projects vendors are resorting to heterogeneous systems, with additional components, for example, FPGAs, ClearSpeed co-processors, PIMS and so on, to minimize latencies. Are the vendors running the danger of creating a complex architecture and shifting the delays onto system management?
Sterling: Yes. There is a strong interest in heterogeneous processing, enabling optimal structures for key modalities of computing. There are clear examples, where this strategy delivers superior performance with respect to size and power, and in some cases cost. Yes, there is a real danger that this will result in runaway complexity. If however, such diversity of structure is implemented within a coherent framework, that permits an effective programming and resource management model, then, heterogeneous approaches may yield an important source of improvement.
I have always been of the opinion that if you make something purposefully hard, few people will use it or try it. If you make it very easy, if you lower barriers, and enable simple adoption, you don’t get a guarantee of success, but you do get a much higher likelyhood of adoption. Which is critical to success.
Its the API. It has to work, has to be simple to write to, has to be open. OpenGL is a great example. It works. You can write to it. And your stuff works across accelerator cards. It basically helped to create the commodity graphics market for PCs.
Which was our point. Its the API.