views:

825

answers:

10

After wondering about the topic for some time, and looking at this question before asking on StackOverflow, it deceptively seems the main reason the languages I mention above haven't been more widely adopted is probably due to their lack of frameworks, which is of course a pity.

However that can't be the only reason IMHO. For example Python, Ruby, Perl or Php although fairly nice languages, aren't one of these mythically awesome languages, nevertheless the community has been able to develop incredible frameworks for them making these languages totally main stream.

Then you have newcomers like C# that had no inherent reason to succeed (with Java and C++ as competitors), but thanks to the investment of a huge corporation it has become a true competitor and a very viable language for development of all sorts (thanks also to Mono of course).

And then you have languages that no programmer even really considered alive anymore, like Objective-C, become all the rage thanks to another corporation investing in it, and its adoption on a killer platform (iPhone).

However Lisp, Eiffel, Haskell (popular academic languages) have not had this type of community support of Python, Ruby, Perl or even Php thing work out for them. And the other giant corporations of our era like Google, hasn't given them any love either. For example if google had said Android would work on Haskell I'm sure it would have created the critical mass necessary (like with Objective-C), or if they adopted Lisp instead of Python for their apps framework, that would have been enough to bring Lisp to the forefront of commercially mainstream languages.

But neither (Community or Corpoeration support) has been the case, so it seems that in practice the lack of frameworks is not the cause, but the result, of their failure to reach the masses, or the ones with money.

So what could be the real features these languages have that seem to work against them?


Note: When I mean mainstream here I mean languages commercial entities will invest in, not academic institutions, or for hobby purposes (areas in which the above languages have succeed to a degree).

+2  A: 

I thought LISP was used by AutoCad...

Otávio Décio
True and LISP is also incorporated into most EMACS distributions, however it hasn't seemed to help.
Robert Gould
Oh it totally is. I once helped a friend debug some AutoLisp over email. It was my first and last encounter with the language.
Logan Capaldo
+27  A: 

Because Lisp, Eiffel, and Haskell are too difficult for the average programmer.

(runs away and hides!)

A. Rex
Lisp and Haskel are much smaller languages than, say, C++. Core language I mean. You can teach the core syntax of C, Lisp, Haskell in a day to an experienced programmer. -- perhaps you mean the idioms are too difficult or complex?
Aaron
Oh, I don't mean the syntax ...
A. Rex
I think it's more to do with the fact that languages like Lisp and ML tend to encourage the creation of a domain-specific language layer, so the meaning of code may not be obvious until the domain-specific layer is understood.
Jeffrey Hantin
I have decided with my powers as OP that you speak the truth ;)
Robert Gould
@Aaron: C++ is too difficult for your average programmer too though. ;)
jalf
Eiffel is too French.
rsrobbins
+4  A: 

Actually corporations are using Haskell, in particular. It is a matter of the right tool for the right job. If a widely adopted web framework is not available for Haskell then its unlikely that it'll be used to program a web site.

DavGarcia
Robert Gould
Yeah, most of the companies are small, but there's also: Amgen, Barclays, Credit Suisse, Deutsche Bank, Linspire, Nokia, and Qualcomm. Surely you've heard of Nokia ...
A. Rex
Yeash Credit Suisse, Deutsche Bank, and Nokia for sure, and Qualcomm rings a bell at least.
Robert Gould
+5  A: 

I'd say none of those languages (lisp, eiffel, haskell) map directly to how most developers think about problems.

I'm sure there exists a programmer who "thinks in lisp", but I have yet to meet him, and I'll bet money he wasn't born that way.

Allain Lalonde
When I encountered LISP I thought: wow, I finally don't have to convert my thoughts to imperfections of programming languages. I know some people who also were enlightened. LISP rules.
mannicken
Lovely elitism, mannicken.
Jon Limjap
I think in Haskell. Sometimes, anyway.
Justice
+4  A: 

I can add a reason for LISP: its evolving community has resisted over the decades from producing an "official version"; As a consequence, in the past there have been too many LISP dialects for it to become a mainstream standard.

Now, if I want to learn Python, I pick the "Learning Python" book and read it. Next, I point my browser to www.python.org and read about details. If I want to learn PHP, I pick a book about PHP and read through www.php.net. But even today, if I want to learn LISP I do... what? I search on Wikipedia, then I ask SO if it's better to go for Common Lisp or Scheme, and I probably get a lot of "it depends" answers. LISP is, as Eric Raymond puts it, "to enlighten your mind", not for mainstream development...

But hey, LISP is here to stay. What happens tomorrow, nobody knows. A language that has been around for 50 years (!!) and is still vital may reserve some surprises. The same holds for Unix, see Linux & company.

Federico Ramponi
+8  A: 

Remember, best != most popular. For example, Delphi was (and is) far and away the best tool for developing Win32 desktop applications, yet it never got half the market share of VB6. It has a lot to do with marketing, often indirectly. For example, every time someone builds a successful startup using RoR it is common to hear them speaking the RoR mantra. That is indirect marketing. If a few companies got out and started spruking how successful they had been by launching their Haskell startups and a big company such as Google or MS started pushing Haskell, it would soon be popular too. Lisp had a small spike in interest a few years ago when Graham started telling how he wrote Yahoo Stores in Lisp. If more companies started talking about their Lisp startups at that time maybe we would all use lisp now not PHP.

Craig
Is Yahoo stores *still* in LISP? That may mean something either positively or negatively as well. Interesting.
Ryan
I am pretty sure it is not. But I think that is probably not a reflection on Lisp but more an indication that good Lisp developers are hard to get and if the rest of the company is using something else then why stick with it.
Craig
Yes Delphi is another strange beast, its situation is enigmatic as well, but it didn't start out academically, so it probably doesn't qualify to be grouped with Lisp,Eiffel and Haskell
Robert Gould
+16  A: 

The languages you mention are optimized for a very small, long-term stable team of exceptionally skilled developers, with a "truck number" of perhaps 2 if not 1. The characteristics of those languages that make them effective are also the characteristics that make them less attractive to use in large team environments, or environments in which people are shuffled from project to project, or environments in which one is trying to train up junior staff, or environments in which one needs to define a skill set to hire to replace the guru should said guru get hit by a truck -- in short, the sorts of environments that large commercial entities tend to provide.

That said, those properties also make these languages the "secret sauce" that startups can use to outmaneuver established companies: if you are willing to accept that you cannot scale team size well with these tools, you can instead scale the effectiveness of a small team.

Jeffrey Hantin
+5  A: 

LISP, Haskell, and Eiffel are very popular academic languages, but the reason they aren't more popular is due to two reasons. One is that the academic community failed because they did not create frameworks for these languages that would allow them to be harnessed by mainstream companies. Academics are usually focused on specialized projects and theses rather than creating frameworks (most schools won't give a degree or doctorate just for creating a new framework unless it solves an academic issue). The second reason is that mainstream companies prefer to invest personnel, time, and money into well established languages with a lot of support, functionality, and frameworks. It is hard enough to find truly capable personnel in the popular languages, let alone for more obscure languages.

Ryan
True but C# had no track-record before Miscrosoft(it wasn't even born yet!) and Objective-C was way less popular and obscure than any of the above, yet a large corporation found it wiser to invest in it than in any of the above.
Robert Gould
Yes, exactly - a large corporation built a framework and published for others to use. These popular academic languages do not have that level of support with the corporate community and no one/corporation/organization seems to want to create these frameworks.
Ryan
+2  A: 

Well, they're very different from the mainstream C-style languages, for one thing, which is a huge economic reason all by itself. C, C++, Java, C#, JavaScript, ActionScript, etc. -- they're all quite similar syntactically, so moving between them is generally pretty straightforward for capable developers, aside from absorbing the differences in their frameworks (which can be rather daunting). Moving from Java to Haskell or Lisp? Not so.

Moreover there are hordes more programmers working (and thus thinking, which has a self-perpetuating effect of its own) in these languages than in the academic languages you mention. More developers means two things: lower labor cost (because eventually, more people means cheaper people), and safer investment (more people able to support the code means a bigger labor pool, and consequently less worry about one big-brain owning the show).

All this to say nothing of the fact that Java, C#, et. al. offer some incredible time-saving features as well. So, again: lower cost to develop software. Factor in that they're both pretty darn fast, and you end up, essentially, with a no-brainer. In many cases, if not most. (Although I'd guess most.)

Of course that's not to say there isn't a place for those languages. There is; in fact, I believe we use many of them ourselves internally. Depends on the application. And it's clear the academic languages (Lisp, in a big way) continue to drive the expansion of the more mainstream languages' feature sets. But as a rule, it's all about minimizing cost, minimizing risk, and maximizing outcome. The reason the likes of Java and .NET (and increasingly Python, etc.) succeed is because they offer a ton of productivity at minimal cost and minimal risk. It's really not much more complicated than that.

Christian Nunciato
However the initial investment in C# and Java were wild gambles on part of Microsoft and Sun. They could have easily failed had they lacked intrinsic features to amass programmers.
Robert Gould
Ah, perhaps! But they didn't. ;) The point is well taken, but it's difficult to imagine the "winning" hypothetical language not being some variation of C, considering the developers Java (and then C#) was intended to attract were, in large part, C and C++ developers.
Christian Nunciato
+9  A: 

Steve Yegge talks a bit about using lisp at amazon, along with some other interesting observations about languages.

When Amazon got its start, we had brilliant engineers. I didn't know all of them, but I knew some of them.

Examples? Shel Kaphan. Brilliant. Greg Linden. Brilliant. Eric Benson. Independently > famous in his own right, before he ever even came to Amazon. Also brilliant.

They wrote the Obidos webserver. Obidos made Amazon successful. It was only later that poop-making engineers and web devs, frontend folks mostly — schedule-driven people who could make their managers happy by delivering crap fast — it was only later that these people made Obidos bad. Clogged the river, so to speak. But Obidos was a key cornerstone of Amazon's initial success.

The original brilliant guys and gals here only allowed two languages in Amazon's hallowed source repository: C and Lisp.*

http://steve.yegge.googlepages.com/tour-de-babel

Mark Harrison
Very interesting story!
Robert Gould