<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.18.3">
</HEAD>
<BODY>
On Wed, 2009-02-25 at 10:56 +0100, Joe Armstrong wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
> Functional-capable languages have been around longer than object-oriented
> ones.  (Lisp predates Simula, no?)  Hell, functional programming was known
> at about the same time that the whole notion of structured programming
> reared its head if memory serves (and it may not).  Yet imperative
> programming, despite its counter-intuitiveness (X=X+1?  are you smoking
> those funny cigarettes again?) won the day.
</PRE>
</BLOCKQUOTE>
<PRE>

</PRE>
<BLOCKQUOTE TYPE=CITE>
<PRE>
It gained a temporary victory
</PRE>
</BLOCKQUOTE>
<BR>
You're begging the question, Joe.  <B>WHY</B> did it gain this temporary victory?  You said that people have no problems when first encountering functional programming.  (This runs counter to my experience, but I'll assume we just ran in different circles and move on from here.)  If functional programming makes more sense to beginners, if imperative programming is so counter-intuitive, so difficult and so prone to failure (and I will agree 100% with that last point), <I>how did it become the dominant paradigm for pretty much all of computing's existence</I>?  Again I have to say, there must be something that gave it a (perceived) edge over functional programming.  <B>THAT</B> is what fans of functional programming (and I include myself in this number, I hasten to add!) have to address.  Not making excuses like "they're too stupid to understand" or "Microsoft/Sun's evil cabal forced it".<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
> New paradigms take me years to suss.  (I'm still not 100% comfortable--more
> like 80%--with the functional, for example.  I've been trying off and on,
> more off than on, for about ten years now.)
</PRE>
</BLOCKQUOTE>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
Yes - this OOP stuff is *really* difficult - I just don't grok it
</PRE>
</BLOCKQUOTE>
<BR>
Took me about five years of concerted effort before I could comfortably call myself an OO developer.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
> As I said, the shift to OOP involved syntax and conceptual elements that
> broke existing thought patterns.  Yet OOP caught on, functional did not.
</PRE>
</BLOCKQUOTE>
<PRE>

</PRE>
<BLOCKQUOTE TYPE=CITE>
<PRE>
Not *then*
</PRE>
</BLOCKQUOTE>
<BR>
But this is my point exactly.  Why didn't functional programming kick ass <B>then</B>?  What was it about functional programming that relegated it (hopefully temporarily) to the dusty halls of academia?<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
(One of the single dumbest
> statements I've ever heard a really smart guy say was something along the
> line of "if we'd called monads 'Warm Fuzzy Things' instead people wouldn't
> be so afraid of them".  The scary part of monads isn't the name.  It's the
> fact that nobody has coherently and concretely explained what they are!)
</PRE>
</BLOCKQUOTE>
<PRE>

</PRE>
<BLOCKQUOTE TYPE=CITE>
<PRE>
Yes - agree - we need *lots of good books* and we need to loose the
"academic" stamp.
</PRE>
</BLOCKQUOTE>
<BR>
Your book on Erlang was a great beginning.  The new book on Haskell is a fine addition to the arsenal.  About fifty more of these and we're on our way!<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
Trouble is most of the really-good erlang/Haskell programmers are too
busy working
in companies that are totally smashing all competition to be bothered to explain
what they're doing.
</PRE>
</BLOCKQUOTE>
<BR>
I've heard this asserted many times.  I have seen literally <B>zero</B> evidence of it.  Where is this list of companies going out and kicking ass on the competition with their 133t coding skillz and Haskell/Erlang/*ML/whatever?  This isn't a flippant question.  It would be <B>really</B> nice to show large, successful companies using Haskell and/or Erlang in real-world situations that aren't niches.  (Erlang is pretty much pegged as a niche telecom language, for example, while Haskell is pegged as a language only eggheads like.)  Business cases would be far simpler to make if this could be shown.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
I get Erlang to write the C for me :-)
</PRE>
</BLOCKQUOTE>
<BR>
This is an intriguing idea.  Care to blog on it?<BR>
<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
-- <BR>
<B>Michael T. Richter</B> <<A HREF="mailto:ttmrichter@gmail.com">ttmrichter@gmail.com</A>> (<B>GoogleTalk:</B> ttmrichter@gmail.com)<BR>
<I>I can see computers everywhere - except in the productivity statistics! (Robert Solow)</I>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>