<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - Fun</title>
 <link>http://lambda-the-ultimate.org/taxonomy/term/5/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>A Semantic Model for Graphical User Interfaces</title>
 <link>http://lambda-the-ultimate.org/node/4352</link>
 <description>&lt;p &gt;Nick Benton and Neel Krishnaswami, ICFP&#039;11, &lt;A href=&quot;http://www.cs.cmu.edu/~neelk/icfp11-krishnaswami-benton.pdf&quot;&gt;A Semantic Model for Graphical User Interfaces&lt;/A&gt;:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
We give a denotational model for graphical user interface (GUI) programming using the Cartesian closed category of ultrametric spaces. [..] We capture the arbitrariness of user input [..] [by a nondeterminism] “powerspace” monad.&lt;/p&gt;
&lt;p &gt;Algebras for the powerspace monad yield a model of intuitionistic linear logic, which we exploit in the definition of a mixed linear/non-linear domain-specific language for writing GUI programs. The non-linear part of the language is used for writing reactive stream-processing functions whilst the linear sublanguage naturally captures the generativity and usage constraints on the various linear objects in GUIs, such as the elements of a DOM or scene graph.&lt;/p&gt;
&lt;p &gt;We have implemented this DSL as an extension to OCaml, and give examples demonstrating that programs in this style can be short and readable.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;This is an application of their (more squiggly) LICS&#039;11 submission, &lt;A href=&quot;http://www.cs.cmu.edu/~neelk/frp-lics11.pdf&quot;&gt;Ultrametric Semantics of Reactive Programs&lt;/A&gt;. In both these cases, I find appealing the fact the semantic model led to a type system and a language that was tricky to find.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/10">Paradigms</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/29">Semantics</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Sat, 10 Sep 2011 16:25:56 -0400</pubDate>
</item>
<item>
 <title>Programming and Scaling</title>
 <link>http://lambda-the-ultimate.org/node/4325</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://tele-task.de/archive/video/flash/14029/&quot;&gt;Programming and Scaling&lt;/a&gt;, a one-hour lecture by Alan Kay at his finest (and that&#039;s saying something!)&lt;/p&gt;
&lt;p &gt;Some of my favorite quotes:&lt;/p&gt;
&lt;ul &gt;
&lt;li &gt;&quot;The biggest problem we have as human beings is that we confuse our beliefs with reality.&quot;
&lt;li &gt;&quot;We could imagine taking the internet as a model for doing software modules. Why don&#039;t people do it?&quot; (~00:17)
&lt;li &gt;&quot;One of the mistakes that we made years ago is that we made objects too small.&quot; (~00:26)
&lt;li &gt;&quot;Knowledge in many cases trumps IQ. [Henry] Ford was powerful because Isaac Newton changed the way we think.&quot; (~00:28)
&lt;li &gt;&quot;Knowledge is silver. Outlook is gold. IQ is a lead weight.&quot; (~00:30)
&lt;li &gt;&quot;Whatever we [in computing] do is more like what the Egyptians did. Building pyramids, piling things on top of each other.&quot;
&lt;li &gt;&quot;The ability to make science and engineering harmonize with each other - there&#039;s no greater music.&quot; (~00:47)
&lt;/ul&gt;
&lt;p &gt;And there are some other nice ideas in there: &quot;Model-T-Shirt Programming&quot; - software the definition of which fits on a T-shirt. And imagining source code sizes in terms of books: 20,000 LOC = a 400-page book.  A million LOC = a stack of books one meter high.  (Windows Vista: a 140m stack of books.) &lt;/p&gt;
&lt;p &gt;Note: this a Flash video, &lt;a href=&quot;http://tele-task.de/archive/lecture/overview/5819/&quot;&gt;other formats&lt;/a&gt; are available.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/4">Critiques</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Sat, 06 Aug 2011 11:47:05 -0400</pubDate>
</item>
<item>
 <title>Levy:  a Toy Call-by-Push-Value Language</title>
 <link>http://lambda-the-ultimate.org/node/4314</link>
 <description>&lt;p &gt;Andrej Bauer&#039;s &lt;A href=&#039;http://math.andrej.com/&#039;&gt;blog&lt;/A&gt; contains the &lt;A href=&#039;http://math.andrej.com/?s=PL+Zoo&#039;&gt;PL Zoo&lt;/A&gt; project. In particular, the &lt;A href=&#039;http://math.andrej.com/2008/11/23/a-toy-call-by-push-value-language/&#039;&gt;Levy&lt;/A&gt; language, a toy implementation of Paul Levy&#039;s &lt;A href=&#039;http://lambda-the-ultimate.org/node/1975&#039;&gt;CBPV&lt;/A&gt; in OCaml. &lt;/p&gt;
&lt;p &gt;If you&#039;re curious about CBPV, this implementation might be a nice accompaniment to the &lt;A href=&#039;http://portal.acm.org/citation.cfm?id=984044&#039;&gt;book&lt;/A&gt;, or simply a hands on way to check it out.&lt;/p&gt;
&lt;p &gt;It looks like an implementation of CBPV without sum and product types, with complex values, and without effects. I guess a more hands-on way to get to grips with CBPV would be to implement any of these missing features.&lt;/p&gt;
&lt;p &gt;The posts are are 3 years old, but I&#039;ve only just noticed them. The PL Zoo project was &lt;A href=&#039;http://lambda-the-ultimate.org/node/2815#comment-42266&#039;&gt;briefly mentioned&lt;/A&gt; here.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/20">Lambda Calculus</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/10">Paradigms</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/29">Semantics</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Thu, 14 Jul 2011 14:57:09 -0400</pubDate>
</item>
<item>
 <title>Kona </title>
 <link>http://lambda-the-ultimate.org/node/4248</link>
 <description>&lt;p &gt;&lt;a href=&quot;https://github.com/kevinlawler/kona&quot;&gt;Kona&lt;/a&gt; is a new open-source implementation of Arthur Whitney&#039;s K, an ASCII-based APL like language. Kona is a fully working version of K3.&lt;p &gt;
If you haven&#039;t ever tried APL/J/K or ilk you might find this language incomprehensible at first -- unless you like a challenge! Watch the screencasts or read some of our earlier APL/J stories.&lt;p &gt;
Regardless of your interest in K, any LtUer worth his salt will enjoy the source code. We wrote a bit about the history of the remarkable C coding style used in the past, but I can&#039;t locate the link at the moment.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <pubDate>Fri, 08 Apr 2011 14:13:51 -0400</pubDate>
</item>
<item>
 <title>Rule 110 in HTML5 + CSS3</title>
 <link>http://lambda-the-ultimate.org/node/4222</link>
 <description>&lt;p &gt;This is sort of silly, but just plain cool.  Eli Fox-Epstein encoded &lt;a href=&quot;http://en.wikipedia.org/wiki/Rule_110&quot;&gt;Rule 110&lt;/a&gt; in &lt;a href=&quot;http://elilies.com/rule110-full.html&quot;&gt;HTML5 and CSS3&lt;/a&gt;.  Rule 110 is Turing complete.&lt;/p&gt;
&lt;p &gt;See &lt;a href=&quot;https://github.com/elitheeli/oddities/blob/master/rule110-grid.html&quot;&gt;one of his example tests&lt;/a&gt; on Github.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <pubDate>Tue, 08 Mar 2011 13:44:27 -0500</pubDate>
</item>
<item>
 <title>Tractatus Digito-Philosophicus</title>
 <link>http://lambda-the-ultimate.org/node/4206</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.hxa.name/articles/content/tractatus-digito-philosophicus_hxa7241_2010.html&quot;&gt;Tractatus Digito-Philosophicus&lt;/a&gt;, part of the project &lt;a href=&quot;http://www.hxa.name/notes/note-hxa7241-20110219T1113Z.html&quot;&gt;Wittgenstein for programmers&lt;/a&gt; by Harrison Ainsworth (whose &lt;a href=&quot;http://www.hxa.name/notes/&quot;&gt;blog&lt;/a&gt; is very much recommended to LtUers).&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
This is a somewhat odd venture: a translation of Wittgenstein&#039;s Tractatus into the domain of software development.&lt;/p&gt;
&lt;p &gt;The software intellect – its basic conceptual forms – is rooted in the early 20th century, the 1910s, 1920s, 1930s. That is where the work of Church and Turing, lambda calculus and computability, comes from. And it is also the time of the Vienna Circle, logical positivism, and Wittgenstein&#039;s early work, the ‘Tractatus Logico-Philosophicus’.&lt;/p&gt;
&lt;p &gt;One might notice one day that software seems pointedly related to its original philosophical contemporaries. It is fundamentally a logical construction. It is like a Wittgensteinian logical proposition, but instead of describing the world, software constructs the imagination. There is a clear isomorphism. All terms related to describing map to terms related to constructing, and similarly for world and imagination. It seems a simple transformation will take Wittgenstein to software.&lt;/p&gt;
&lt;p &gt;So an interesting project emerges: translate the Tractatus into software terms! The result is sometimes obscure, but sometimes clearer than the original, and most is (still) quite odd and intriguing (which is perhaps the main virtue anyway) . . .&lt;/p&gt;
&lt;p &gt;(So far it is only partial and unfinished.)
&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Sat, 19 Feb 2011 12:44:40 -0500</pubDate>
</item>
<item>
 <title>Scripting with Types</title>
 <link>http://lambda-the-ultimate.org/node/4197</link>
 <description>&lt;p &gt;A nice presentation on &lt;a href=&quot;http://donsbot.files.wordpress.com/2009/01/semicolon.pdf&quot;&gt;Practical Haskell  Programming: Scripting with Types&lt;/a&gt; from Don Stewart. &lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Sun, 06 Feb 2011 21:56:35 -0500</pubDate>
</item>
<item>
 <title>The Semicolon Wars</title>
 <link>http://lambda-the-ultimate.org/node/4166</link>
 <description>&lt;p &gt;Some light reading for the holiday season: writing for American Scientest, Brian Hayes says in &lt;a href=&quot;http://www.americanscientist.org/issues/id.3489,y.0,no.,content.true,page.1,css.print/issue.aspx&quot;&gt;The Semicolon Wars&lt;/a&gt;&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;A catalog maintained by Bill Kinnersley of the University of Kansas lists about 2,500 programming languages. Another survey, compiled by Diarmuid Piggott, puts the total even higher, at more than 8,500. And keep in mind that whereas human languages have had millennia to evolve and diversify, all the computer languages have sprung up in just 50 years. Even by the more-conservative standards of the Kinnersley count, that means we&#039;ve been inventing one language a week, on average, ever since Fortran.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote &gt;&lt;p &gt;For ethnologists, linguistic diversity is a cultural resource to be nurtured and preserved, much like biodiversity. All human languages are valuable; the more the better. That attitude of detached reverence is harder to sustain when it comes to computer languages, which are products of design or engineering rather than evolution. The creators of a new programming language are not just adding variety for its own sake; they are trying to make something demonstrably better. But the very fact that the proliferation of languages goes on and on argues that we still haven&#039;t gotten it right. We still don&#039;t know the best notation—or even a good-enough notation—for expressing an algorithm or defining a data structure.&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <pubDate>Tue, 21 Dec 2010 11:42:19 -0500</pubDate>
</item>
<item>
 <title>Haskell Researchers Announce Discovery of Industry Programmer Who Gives a Shit </title>
 <link>http://lambda-the-ultimate.org/node/4153</link>
 <description>&lt;p &gt;I actually found &lt;a href=&quot;http://steve-yegge.blogspot.com/2010/12/haskell-researchers-announce-discovery.html&quot;&gt;this&lt;/a&gt; to be rather funny.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Thu, 02 Dec 2010 13:23:29 -0500</pubDate>
</item>
<item>
 <title>Eff - Language of the Future</title>
 <link>http://lambda-the-ultimate.org/node/4090</link>
 <description>&lt;p &gt;This is just a series of blog posts so far, as far as I can tell. But Andrej Bauer&#039;s work has been mentioned here many times, I am finding these posts extremely interesting, and I&#039;m sure I will not be alone. So without further ado...&lt;/p&gt;
&lt;p &gt;&lt;a href=&quot;http://math.andrej.com/2010/09/27/programming-with-effects-i-theory/&quot;&gt;Programming With Effects&lt;/a&gt;. Andrej Bauer and Matija Pretnar.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
I just returned from Paris where I was visiting the INRIA πr² team. It was a great visit, everyone was very hospitable, the food was great, and the weather was nice. I spoke at their seminar where I presented a new programming language eff which is based on the idea that computational effects are algebras. The language has been designed and implemented jointly by Matija Pretnar and myself. Eff is far from being finished, but I think it is ready to be shown to the world. What follows is an extended transcript of the talk I gave in Paris. It is divided into two posts. The present one reviews the basic theory of algebras for a signature and how they are related to computational effects. The impatient readers can skip ahead to &lt;a href=&quot;http://math.andrej.com/2010/09/27/programming-with-effects-ii-introducing-eff/&quot;&gt;the second part&lt;/a&gt;, which is about the programming language.
&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Tue, 28 Sep 2010 22:30:18 -0400</pubDate>
</item>
<item>
 <title>Omega - Language of the Future</title>
 <link>http://lambda-the-ultimate.org/node/4088</link>
 <description>&lt;p &gt;When I discovered Tim Sheard&#039;s &lt;a href=&quot;http://web.cecs.pdx.edu/~sheard/papers/LangOfTheFuture.ps&quot;&gt;Languages of the Future&lt;/a&gt;, I realized that PLs do indeed have a future (beyond asymptotically approaching CLOS and/or adding whimsical new rules to your type checker).  Compared to languages like Lisp, pre-generics Java, and Python, the &quot;futuristic&quot; languages like Haskell and O&#039;Caml seemed to mainly offer additional static verification, and some other neat patterns, but the &quot;bang for the buck&quot; seemed somewhat low, especially since these languages have their own costs (they are much more complex, they rule out many &quot;perfectly fine&quot; programs).&lt;/p&gt;
&lt;p &gt;&lt;a href=&quot;http://web.cecs.pdx.edu/~sheard/&quot;&gt;&amp;Omega;mega&lt;/a&gt; seems like a true revolution to me - it shows what can be done with a really fancy typesystem, and this seems like the first astounding advancement over existing languages, from Python to Haskell.  Its mantra is that it&#039;s possible to reap many (all?) benefits of dependent programming, without having to suffer its problems, by adding two much more humble notions to the widely understood, ordinary functional programming setting: &lt;a href=&quot;http://web.cecs.pdx.edu/~sheard/papers/GADT+ExtKinds.ps&quot;&gt;GADTs + Extensible Kinds&lt;/a&gt;.&lt;/p&gt;
&lt;p &gt;Sheard and coworkers show that these two simple extensions allow &lt;a href=&quot;http://web.cecs.pdx.edu/~sheard/papers/SumSchNotes.ps&quot;&gt;the succinct expression of many dependently-typed and related examples&lt;/a&gt; from the literature.  Fine examples are implementations of AVL and red-black trees that are always balanced &lt;em &gt;by construction&lt;/em&gt; -  it&#039;s simply impossible to create an unbalanced tree; this is checked by the type-system.  It seems somewhat obvious that sooner than later all code will be written in this (or a similar) way.&lt;/p&gt;
&lt;p &gt;How to understand this stuff: my route was through the generics of Java and C# (especially Featherweight Generic Java, &lt;a href=&quot;http://lamp.epfl.ch/~cremet/FGJ-omega/&quot;&gt;FGJ&lt;sub &gt;&amp;omega;&lt;/sub&gt;&lt;/a&gt;, and &lt;a href=&quot;http://research.microsoft.com/en-us/um/people/akenn/generics/index.html&quot;&gt;A. Kennedy&#039;s generics papers&lt;/a&gt;).  Once you understand basic notions like type constructors, variance, and kinds, you know everything to understand why &lt;a href=&quot;http://lambda-the-ultimate.org/node/689&quot;&gt;GADTs + Extensible Kinds = Dependent Programming&lt;/a&gt; (and also esoteric stuff like &lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.6.6746&amp;amp;rep=rep1&amp;amp;type=pdf&quot;&gt;polytypic values have polykinded types&lt;/a&gt; for that matter).&lt;/p&gt;
&lt;p &gt;It is my belief that &lt;em &gt;you must understand &amp;Omega;mega now!&lt;/em&gt; Even if you&#039;re never going to use it, or something like it, you&#039;ll still learn a whole lot about programming.  Compared to &amp;Omega;mega, other languages are puny. ;P&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/15">Meta-Programming</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/10">Paradigms</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Fri, 24 Sep 2010 20:49:20 -0400</pubDate>
</item>
<item>
 <title>The Future of C#</title>
 <link>http://lambda-the-ultimate.org/node/4016</link>
 <description>&lt;p &gt;One of the future additions to C# announced by Anders Hejlsberg in &lt;a href=&quot;http://channel9.msdn.com/pdc2008/TL16/&quot;&gt;this entertaining video&lt;/a&gt; from 2008 is &lt;em &gt;Compiler as a Service&lt;/em&gt;. By that he means the ability to &lt;code &gt;eval&lt;/code&gt; code strings (and I&#039;m guessing that this will also be integrated with C#&#039;s built-in AST objects).&lt;/p&gt;
&lt;p &gt;He shows this off at around minute 59, to great effect and great excitement by the audience.  It feels like an inflection point.  There probably won&#039;t be another REPL-less language from now on.&lt;/p&gt;
&lt;p &gt;I predict that after that, they&#039;ll add hygienic macros and quasisyntax.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/23">Cross language runtimes</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/15">Meta-Programming</category>
 <pubDate>Mon, 19 Jul 2010 20:54:51 -0400</pubDate>
</item>
<item>
 <title>OpenSCAD - The Programmers Solid 3D CAD Modeller</title>
 <link>http://lambda-the-ultimate.org/node/3988</link>
 <description>&lt;blockquote &gt;&lt;p &gt;&lt;a href=&quot;http://openscad.org/&quot;&gt;OpenSCAD&lt;/a&gt; is a software for creating solid 3D CAD objects... OpenSCAD is not an interactive modeller. Instead it is something like a 3D-compiler that reads in a script file that describes the object and renders the 3D model from this script file (see examples below). This gives you (the designer) full control over the modelling process and enables you to easily change any step in the modelling process or make designes that are defined by configurable parameters.&lt;/blockquote&gt;
&lt;p &gt;
In days gone by I used to post examples demonstrating the power of DSLs over GUIs. This is a nice example I came across recently. The scripting approach may be useful, of course, to 2D CAD as well. Here is an amusing &lt;a href=&quot;http://www.kellbot.com/2010/06/meta-lego-storage/&quot;&gt;example&lt;/a&gt;.&lt;p &gt;
Maybe the &lt;a href=&quot;http://lambda-the-ultimate.org/node/3957&quot;&gt;analog computing DSL&lt;/a&gt; I fantasized about should output SCAD scripts instead of compiling directly to g-code...&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <pubDate>Thu, 24 Jun 2010 00:52:53 -0400</pubDate>
</item>
<item>
 <title>Programming CNC machines in Haskell</title>
 <link>http://lambda-the-ultimate.org/node/3957</link>
 <description>&lt;p &gt;While I like the general idea, it seems &lt;a href=&quot;http://users.dsic.upv.es/~jsilva/cnc/&quot;&gt;this project&lt;/a&gt; didn&#039;t go far enough.&lt;p &gt;
What I think would be cool is to develop are DSLs that compile to g-code. For example, putting my hacker hat on, I think it might be fun to build a DSL for describing mechanical (analog) computers, this will compile into g-code for cams, shafts, gears etc. that could then be manufactured using CNC machines and/or 3D printers...&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Fri, 21 May 2010 16:35:45 -0400</pubDate>
</item>
<item>
 <title>The Right Tool</title>
 <link>http://lambda-the-ultimate.org/node/3951</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.drmaciver.com/&quot;&gt;David MacIver&lt;/a&gt; is doing a bit of a sociological study on how programmers pick &lt;a href=&quot;http://therighttool.hammerprinciple.com/&quot;&gt;The Right Tool&lt;/a&gt; for the job. Programmers select all the languages they know from a fairly mainstream and popular list and then rank those languages according to statements like &quot;I find it easy to write efficient code in this language&quot; and &quot;When I write code in this language I can be very sure it is correct&quot;.  At the end of the process the survey taker can see how languages ranked overall under each statement and what statements have been most strongly associated with each language.&lt;/p&gt;
&lt;p &gt;Obviously this isn&#039;t a formal study and, as with all online surveys, there are going to be challenges with selection bias and with people trying to game the system.  None-the-less, it is pretty interesting and fun as is.  Perhaps something similar would be worth doing under more controlled circumstances (although it beats me how to feasibly get a large sample size of programmers without introducing selection bias).&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <pubDate>Fri, 14 May 2010 11:44:42 -0400</pubDate>
</item>
</channel>
</rss>

