Software development has come a long way from punch cards and tubes. We have very robust and powerful platforms such as Linux, Windows, and Unix; we also have very powerful languages that allow users to take an idea from vision to reality in a fraction of the time it did at the dawn of computer development. With the break throughs in language creation comes frameworks and methodologies, and with those even more power is given to the developer. So what makes a language, framework, control library, or even simpler yet, technology successful? Adoption of course, if nobody is using it then it will definetely fade away into obscurity. If you are developing new technology there are several steps you can take to make sure your technology is adopted.
Building a Solid Foundation
There is nothing a technophile hates more than a weak foundation to their technology. Technology needs a strong foundation to build upon. For example, Microsoft's .NET framework is a great foundation to their development platform. It can do everything from low level development to web design to windows forms. Java also has similar libraries. C++ has many great frameworks. The foundation of technology is either a products greatest strength or it's downfall.
Documentation
Great documentation is also an essential part of any good technology. If people don't know how to use it, then nobody will use it. Sure there are always those nerds and hackers who are capable of groking technology, but they are far and few between; they are also knowledge hogs and probably won't share.
Shiny Demos and Examples
You need to intrigue your audience and get them hooked. There is nothing better than flashy demos. The IPhone has had alot of success due to the simple fact that their interface is flashy. Never underestimate the power of visual or intellectual candy.
Community
If you are developing a product, make sure that their is a community to support it. Nothing is worse than thinking you are the only one working with a language, framework, or technology. What happens when you are stuck? Who will you ask? A community is a great way to comfort people and to let them know others are out their using the technology.
Powerful Supporting Tools
Well the technology is great, but it takes me hours of tedious crap to get anywhere. Powerful tools are essential to creating a good technology. Visual Studio is a great example of a powerful tool to support a technology, equally Eclipse is a great Java tool. There are some nerds that feel notepad is enough, well sometimes it is, but I love Resharper!
Conclusion
New technologies are like hot women to geeks and there are only two outcomes.
A Good Date with Technology
"She showed up and couldn't believe what she was wearing, and in public! It was hot! Then we started talking and we had a lot of great conversation and she was funny. I then got to meet her friends and they were nice. Then we kissed and it was magical, she really knows what she's doing. I think this might get serious."
A Bad Date
"Yeah I went out with this technology, and she looked hot. Then I found out she has 13 toes and doesn't shave her armpits or brush her teeth. I just didn't really want to go any further."