<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: No future for functional programming in 2008 - Scala, F# and Nu</title>
	<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/</link>
	<description>Productivity in software development</description>
	<pubDate>Sun, 12 Oct 2008 23:57:24 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
		<item>
		<title>By: stephan</title>
		<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-140526</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Wed, 30 Jul 2008 11:36:33 +0000</pubDate>
		<guid>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-140526</guid>
		<description>@Little Bird: I'm easily confused, perhaps even more because the Lisp  name was derived from List Processing Language.</description>
		<content:encoded><![CDATA[<p>@Little Bird: I&#8217;m easily confused, perhaps even more because the Lisp  name was derived from List Processing Language.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: A little bird</title>
		<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-140191</link>
		<dc:creator>A little bird</dc:creator>
		<pubDate>Wed, 30 Jul 2008 03:15:35 +0000</pubDate>
		<guid>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-140191</guid>
		<description>Stephan, You seem to be confused. Expressions in (eg) Lisp aren't lists.
Assuming no sharing, they're trees. With sharing, they're graphs.

On a somewhat related note, Trees in Haskell:

---------------------------------------------------------------------------------------
module Tree where

data Tree a = Node
  { rootLabel   :: a
  , subForest :: Forest a }

type Forest a = [Tree a]

flatten :: Tree a -&#62; [a]
flatten t = squish t []
  where squish (Node x ts) xs = x : foldr squish xs ts

levels :: Tree a -&#62; [[a]]
levels t = map (map rootLabel) $
                 takeWhile (not . null) $
                 iterate (concatMap subForest) [t]
---------------------------------------------------------------------------------------</description>
		<content:encoded><![CDATA[<p>Stephan, You seem to be confused. Expressions in (eg) Lisp aren&#8217;t lists.<br />
Assuming no sharing, they&#8217;re trees. With sharing, they&#8217;re graphs.</p>
<p>On a somewhat related note, Trees in Haskell:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
module Tree where</p>
<p>data Tree a = Node<br />
  { rootLabel   :: a<br />
  , subForest :: Forest a }</p>
<p>type Forest a = [Tree a]</p>
<p>flatten :: Tree a -&gt; [a]<br />
flatten t = squish t []<br />
  where squish (Node x ts) xs = x : foldr squish xs ts</p>
<p>levels :: Tree a -&gt; [[a]]<br />
levels t = map (map rootLabel) $<br />
                 takeWhile (not . null) $<br />
                 iterate (concatMap subForest) [t]<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-58495</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Wed, 27 Feb 2008 15:52:41 +0000</pubDate>
		<guid>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-58495</guid>
		<description>MS didn't even push C# enough, they are still C people I guess. So I don't think their "support" F# will change anything. Should VB people who haven't switched or understood C# no develop in F#?</description>
		<content:encoded><![CDATA[<p>MS didn&#8217;t even push C# enough, they are still C people I guess. So I don&#8217;t think their &#8220;support&#8221; F# will change anything. Should VB people who haven&#8217;t switched or understood C# no develop in F#?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Fischer</title>
		<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-58380</link>
		<dc:creator>Robert Fischer</dc:creator>
		<pubDate>Wed, 27 Feb 2008 03:57:53 +0000</pubDate>
		<guid>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-58380</guid>
		<description>I'm not sure I buy that Microsoft's support of F# will translate into a major evangelism.  It strikes me mainly as them hedging their bet.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not sure I buy that Microsoft&#8217;s support of F# will translate into a major evangelism.  It strikes me mainly as them hedging their bet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben</title>
		<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-58051</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Mon, 25 Feb 2008 14:08:27 +0000</pubDate>
		<guid>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-58051</guid>
		<description>You guys seem to be mostly in the Java world, not in the Microsoft world.
So you may have overlooked a non-technical factor which will probably override all the arguments I read here: namely that Microsoft have decided to 'adopt' F# and upgrade it from MS research to a 'real' .Net language.

They're pushing it hard, and functional programming in general too.

They have LOTS of money for evangelisation.</description>
		<content:encoded><![CDATA[<p>You guys seem to be mostly in the Java world, not in the Microsoft world.<br />
So you may have overlooked a non-technical factor which will probably override all the arguments I read here: namely that Microsoft have decided to &#8216;adopt&#8217; F# and upgrade it from MS research to a &#8216;real&#8217; .Net language.</p>
<p>They&#8217;re pushing it hard, and functional programming in general too.</p>
<p>They have LOTS of money for evangelisation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-55045</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Tue, 12 Feb 2008 19:22:24 +0000</pubDate>
		<guid>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-55045</guid>
		<description>I'll probably buy the Scala book too, the PDF version is too much hazzle to buy (I tried twice).

Esperanto. I learned that too for some time, but forgot everything. Sigh.

"OO is embedded into our field it is what we all know it will take a long time to move onto a new paradigm."

The comments too this post have made me think a lot. I suspect OO is successful because it makes modeling reality easier (but you can easily go wrong, see the DDD book). But I'm not sure yet. We'll see.</description>
		<content:encoded><![CDATA[<p>I&#8217;ll probably buy the Scala book too, the PDF version is too much hazzle to buy (I tried twice).</p>
<p>Esperanto. I learned that too for some time, but forgot everything. Sigh.</p>
<p>&#8220;OO is embedded into our field it is what we all know it will take a long time to move onto a new paradigm.&#8221;</p>
<p>The comments too this post have made me think a lot. I suspect OO is successful because it makes modeling reality easier (but you can easily go wrong, see the DDD book). But I&#8217;m not sure yet. We&#8217;ll see.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Troy Taillefer</title>
		<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-55009</link>
		<dc:creator>Troy Taillefer</dc:creator>
		<pubDate>Tue, 12 Feb 2008 15:24:45 +0000</pubDate>
		<guid>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-55009</guid>
		<description>This is an amazing blog. 

I am a big fan of functional programmming I absolutely love the haskell language (especially its type system) unfortunately the Haskell platform (tools, libs, books, community support, etc) sucks.

Also as a software professional I would have no one else to talk too if I didn't know C/C  /Java. Building useful software is about people writting software in some esoteric language that no one knows is guaranteed to shorten its useful life considerably. Viaweb is the famous example of how to create a cool app that has to be re written to be maintained. 

Who cares if you speak the best language in the world if there is no one else to talk too.

English(C/C  /Java/C#) isn't perfect but it is familar and in widespread use so there for it serves as a good medium of communication. You could learn a better language like Esperanto(Haskell) but you wouldn't have many people to talk too.
 

I could never diss LISP its contributions to our field are massive but you don't see tons of useful apps being cranked out in LISP. 

Also LISP may permit a functional style but there is far more imperative lisp programs and that is the way most lispers code. The same goes for scheme(although probably more FP'ers in scheme than in LISP).

Functional programming has made very useful contributions to our field and will continue to do so but I doubt it will be the next big thing. OO is embedded into our field it is what we all know it will take a long time to move onto a new paradigm.


I will probably buy the Scala book when it comes out it looks realy cool but I doubt I will ever use it for anything real. 

The reason esoteric languages never catch on is because the platform is more important then the language itself and people matter they don't want to learn new things because getting things done is more important

Scala only addresses the first problem by running on and using the java platform the second problem is just as important. You can still find C   developers who don't want to make the jump to Java or C# despite all its obvious productivity advantages.

Troy</description>
		<content:encoded><![CDATA[<p>This is an amazing blog. </p>
<p>I am a big fan of functional programmming I absolutely love the haskell language (especially its type system) unfortunately the Haskell platform (tools, libs, books, community support, etc) sucks.</p>
<p>Also as a software professional I would have no one else to talk too if I didn&#8217;t know C/C  /Java. Building useful software is about people writting software in some esoteric language that no one knows is guaranteed to shorten its useful life considerably. Viaweb is the famous example of how to create a cool app that has to be re written to be maintained. </p>
<p>Who cares if you speak the best language in the world if there is no one else to talk too.</p>
<p>English(C/C  /Java/C#) isn&#8217;t perfect but it is familar and in widespread use so there for it serves as a good medium of communication. You could learn a better language like Esperanto(Haskell) but you wouldn&#8217;t have many people to talk too.</p>
<p>I could never diss LISP its contributions to our field are massive but you don&#8217;t see tons of useful apps being cranked out in LISP. </p>
<p>Also LISP may permit a functional style but there is far more imperative lisp programs and that is the way most lispers code. The same goes for scheme(although probably more FP&#8217;ers in scheme than in LISP).</p>
<p>Functional programming has made very useful contributions to our field and will continue to do so but I doubt it will be the next big thing. OO is embedded into our field it is what we all know it will take a long time to move onto a new paradigm.</p>
<p>I will probably buy the Scala book when it comes out it looks realy cool but I doubt I will ever use it for anything real. </p>
<p>The reason esoteric languages never catch on is because the platform is more important then the language itself and people matter they don&#8217;t want to learn new things because getting things done is more important</p>
<p>Scala only addresses the first problem by running on and using the java platform the second problem is just as important. You can still find C   developers who don&#8217;t want to make the jump to Java or C# despite all its obvious productivity advantages.</p>
<p>Troy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Fischer</title>
		<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-54753</link>
		<dc:creator>Robert Fischer</dc:creator>
		<pubDate>Mon, 11 Feb 2008 13:32:28 +0000</pubDate>
		<guid>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-54753</guid>
		<description>Check out join calculus concurrency: I'd suggest JoCaml for an implementation.  From what I'm understanding, your "domain driven concurrency" is really just a special case of that.

http://moscova.inria.fr/join/index.shtml</description>
		<content:encoded><![CDATA[<p>Check out join calculus concurrency: I&#8217;d suggest JoCaml for an implementation.  From what I&#8217;m understanding, your &#8220;domain driven concurrency&#8221; is really just a special case of that.</p>
<p><a href="http://moscova.inria.fr/join/index.shtml" rel="nofollow">http://moscova.inria.fr/join/index.shtml</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-54656</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Mon, 11 Feb 2008 05:25:49 +0000</pubDate>
		<guid>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-54656</guid>
		<description>I think only I call it domain driven concurrency or concurrency 3.0. The idea is to have a concurrency framework which is domain driven. Because it knows more about your problem, it can solve it better (direct execute code or make it parallel, intelligent work stealing strategies etc).

Fork/Join by Doug Lea is

http://gee.cs.oswego.edu/dl/papers/fj.pdf

Map/Reduce is another one.

It's less general than 2.0 (Erlang style) and 1.0 (Thread style), but what you lose in generalism you gain in performance and easyness. 

For a transparent solution in Java see Spin ( http://spin.sourceforge.net/solution.html ) which could be implemented with message inboxes and add Erlang style concurrency to Java.</description>
		<content:encoded><![CDATA[<p>I think only I call it domain driven concurrency or concurrency 3.0. The idea is to have a concurrency framework which is domain driven. Because it knows more about your problem, it can solve it better (direct execute code or make it parallel, intelligent work stealing strategies etc).</p>
<p>Fork/Join by Doug Lea is</p>
<p><a href="http://gee.cs.oswego.edu/dl/papers/fj.pdf" rel="nofollow">http://gee.cs.oswego.edu/dl/papers/fj.pdf</a></p>
<p>Map/Reduce is another one.</p>
<p>It&#8217;s less general than 2.0 (Erlang style) and 1.0 (Thread style), but what you lose in generalism you gain in performance and easyness. </p>
<p>For a transparent solution in Java see Spin ( <a href="http://spin.sourceforge.net/solution.html" rel="nofollow">http://spin.sourceforge.net/solution.html</a> ) which could be implemented with message inboxes and add Erlang style concurrency to Java.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Fischer</title>
		<link>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-54654</link>
		<dc:creator>Robert Fischer</dc:creator>
		<pubDate>Mon, 11 Feb 2008 05:20:04 +0000</pubDate>
		<guid>http://stephan.reposita.org/archives/2008/01/21/no-future-for-functional-programming-in-2008-scala-f-and-nu/#comment-54654</guid>
		<description>OOP and imperative programming are both pretty stateful paradigms, so when you say "statelessness", we're half a step from functional programming (even if it's got objects, like in Ocaml).

Got cite for Domain Concurrency?  I'm curious about it.

I totally agree about Erlang.  Its message-passing is only part of the solution, mostly useful for solving the problem of distributed/interprocess synchronization: the best intraprocess solution I've found is the join calculus stuff that JoCaml implemented.  I'm actually wondering if that can be implemented in Factor, since it seems to have a lot of the necessary plumbing...</description>
		<content:encoded><![CDATA[<p>OOP and imperative programming are both pretty stateful paradigms, so when you say &#8220;statelessness&#8221;, we&#8217;re half a step from functional programming (even if it&#8217;s got objects, like in Ocaml).</p>
<p>Got cite for Domain Concurrency?  I&#8217;m curious about it.</p>
<p>I totally agree about Erlang.  Its message-passing is only part of the solution, mostly useful for solving the problem of distributed/interprocess synchronization: the best intraprocess solution I&#8217;ve found is the join calculus stuff that JoCaml implemented.  I&#8217;m actually wondering if that can be implemented in Factor, since it seems to have a lot of the necessary plumbing&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
