It's very difficult for languages to "escape the lab" as it's often put. I'd say the biggest factors are:
- Developers are often reluctant to learn new tools.
- Project managers are reluctant to use new languages, seeing a small community as a risk.
- Academic projects have different priorities than industry. Implementations done by academic teams often need substantial work before they meet industry needs.
This boils down to visible necessity. Without that, it's difficult for a language to reach critical mass. But the visibility part is tricky, because it's really a marketing problem, not a technical one. Sometimes organizations are blind to their own pain or even are attached to it, believing it's necessary (ORM comes to mind). Sometimes a language spreads because someone less risk adverse has very visible success, creating a pressure to copy their choice (37signals and Ruby for example).
But language research is still worthwhile even if it withers after publishing. The ideas propagate, and often end up as features/libraries in more broadly accepted languages (erlang probably inspired akka for example).
- Developers are often reluctant to learn new tools.
- Project managers are reluctant to use new languages, seeing a small community as a risk.
- Academic projects have different priorities than industry. Implementations done by academic teams often need substantial work before they meet industry needs.
This boils down to visible necessity. Without that, it's difficult for a language to reach critical mass. But the visibility part is tricky, because it's really a marketing problem, not a technical one. Sometimes organizations are blind to their own pain or even are attached to it, believing it's necessary (ORM comes to mind). Sometimes a language spreads because someone less risk adverse has very visible success, creating a pressure to copy their choice (37signals and Ruby for example).
But language research is still worthwhile even if it withers after publishing. The ideas propagate, and often end up as features/libraries in more broadly accepted languages (erlang probably inspired akka for example).