I don't think that we can really consider Perl 6 and Parrot to be anything but abysmal failures at this point. The people developing and advocating for them have had many years now to product something that's even minimally usable, and we just haven't seen that happen.
Writing traditional compilers and interpreters, or emitting C, or targeting LLVM have all proven to be good ways of getting production-grade programming language implementations created and usable quickly. Messing around with Parrot has never resulted in anything useful.
pg said that for a language to become popular, it has to be the scripting language of something popular. That's the category where the three languages I mentioned are falling.
So the answer is simple: one has to build something really nice in Nimrod and use Nimrod as the extension language of that thing. Maybe the embedded world would be a nice field from Nimrod due to having nice interop with C? (I haven't used Nimrod in my life yet, although I am tempted because it looks very easy).
I feel like Lua is used pretty broadly for UI scripting in the games ecosystem (addons, plugins, etc) but I don't see it used really anywhere else aside from maybe IRC chatbots. Being the scripting language for something popular is maybe a necessary but probably not sufficient condition.
Comments
There really are only three ways to create a usable language, honestly:
1) Huge institutional support. See: C#, Java, Go.
2) Give it 20 years. See: Python, Haskell.
3) Weird, idiosyncratic factors. See: Javascript, mostly.
So it's hard for me to get excited about these sorts of things.
Edit: fair point, Javascript is really a case of #1, with Netscape as the institution.
You're missing 4) piggybacking on existing ecosystems. E.g. Scala, Clojure, F#.
In Nimrod it's easy to piggyback on C, which has the most extensive ecosystem of all languages.
But C's ecosystem is so extensive that everybody can piggyback on it (with varying levels of ceremony).
See CPython, Haskell, C++....
This might already exist, but if Nimrod could piggy back on Javascript (Node), Python and Ruby for libraries this would be huge. Native glue.
This is what Perl6 with Parrot VM aim for.
http://en.wikipedia.org/wiki/Parrot_virtual_machine
I don't think that we can really consider Perl 6 and Parrot to be anything but abysmal failures at this point. The people developing and advocating for them have had many years now to product something that's even minimally usable, and we just haven't seen that happen.
Writing traditional compilers and interpreters, or emitting C, or targeting LLVM have all proven to be good ways of getting production-grade programming language implementations created and usable quickly. Messing around with Parrot has never resulted in anything useful.
That was the goal, but Parrot failed to meet that goal and P6 is years away from being usable.
How about Perl, Ruby and C?
pg said that for a language to become popular, it has to be the scripting language of something popular. That's the category where the three languages I mentioned are falling.
So the answer is simple: one has to build something really nice in Nimrod and use Nimrod as the extension language of that thing. Maybe the embedded world would be a nice field from Nimrod due to having nice interop with C? (I haven't used Nimrod in my life yet, although I am tempted because it looks very easy).
Perl is a (3) as it was the scripting language on *Nix, and CGI was pretty crucial in the early web.
Ruby I guess is a (3): Rails is a killer app.
C, well, it's the a major accomplishment of human civilization and has held up for half a century. I'd call that idiosyncratic.
I feel like Lua is used pretty broadly for UI scripting in the games ecosystem (addons, plugins, etc) but I don't see it used really anywhere else aside from maybe IRC chatbots. Being the scripting language for something popular is maybe a necessary but probably not sufficient condition.
C had AT&T and was UNIX system programming language.
As UNIX spread into the industry, so did C.
All languages required by OS vendors as the official ones to target their OS, succeed in the market if the OS succeeds.
True, Objective-C comes into mind.
I think it's only the first two. Javascript happened because of Netscape (1).