Hacker News new | comments | show | ask | jobs | submit login

With programming languages, I've come to the conclusion that "If X is so awesome, why is nobody using it?" is the wrong question to ask. Or rather, it's a fair question, but the answer doesn't depend on X. It is overwhelmingly a matter of network effects and social proof. What matters is what everyone else is using.

A programming language has a window of opportunity to gain mindshare while it's new. Once that window passes, the odds are hugely against it. It's true there are a few technical factors, for example that older implementations lack the infrastructure to work with newer technologies, but such things can be improved. The dominant factor, the real barrier, is social psychology. This is obscured by our tendency to retrofit plausible-sounding reasons to our choices ("X is slow" or "it doesn't have libraries" or whatever).

This does suggest a strategy for reviving an old language: rebranding.

First, you need a new implementation. Trying to convince people to use the old one is like trying to get them to watch an old movie. George Lucas didn't promote Kurosawa, he made Star Wars. Second, there has to be a hook, something to convince us that this really is a new language, modern and with the times. So, light sabers. That's critical for opening a fresh window of opportunity instead of getting pegged to the old, long-closed one. It needn't be the most important thing, but it can't be fake either; it must be real enough or no one will take the new brand seriously. Without a convincing reason for why we weren't using X before, the new window will never open. Once it opens, then and only then do the beauty and power of X get their chance to bond with the user. In the Star Wars analogy, that would be the characters and the story – the deeper things that came from Kurosawa and ultimately from ancient archetypes. They'd never have gotten the chance to kick in if Star Wars hadn't got the audience in the theater. Once they did, though, then you had Star Wars fans for life.

With Clojure, the hook was Java libraries. Actually, there were three hooks. The others were concurrency and sequences. But Java libraries is the one that worked. And now there's a modern Lisp again!

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact