<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - General</title>
 <link>http://lambda-the-ultimate.org/taxonomy/term/6/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>Cambridge Course on &quot;Usability of Programming Languages&quot;</title>
 <link>http://lambda-the-ultimate.org/node/4422</link>
 <description>&lt;p &gt;From the syllabus of the Cambridge course on &lt;a href=&quot;http://www.cl.cam.ac.uk/teaching/1011/R201/&quot;&gt;Usability of Programming Languages&lt;/a&gt;&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;Compiler construction is one of the basic skills of all computer scientists, and thousands of new programming, scripting and customisation languages are created every year. Yet very few of these succeed in the market, or are well regarded by their users. This course addresses the research questions underlying the success of new programmable tools. A programming language is essentially a means of communicating between humans and computers. Traditional computer science research has studied the machine end of the communications link at great length, but there is a shortage of knowledge and research methods for understanding the human end of the link. This course provides practical research skills necessary to make advances in this essential field. The skills acquired will also be valuable for students intending to pursue research in advanced HCI, or designing evaluation studies as a part of their MPhil research project.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Is this kind of HCI based research going to lead to better languages?  Or more regurgitations of languages people are already comfortable with?&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Mon, 19 Dec 2011 12:42:53 -0500</pubDate>
</item>
<item>
 <title>Dennis Ritchie passed away</title>
 <link>http://lambda-the-ultimate.org/node/4378</link>
 <description>&lt;p &gt;I have just learned that Dennis Ritchie (1941-2011) has passed away. His contributions changed the computing world. As everyone here knows, &lt;a href=&quot;http://cm.bell-labs.com/cm/cs/who/dmr/&quot;&gt;dmr&lt;/a&gt; developed C, and with Brian Kernighan co-authored K&amp;amp;R, a book that served many of us in school and in our professional lives and remains a classic text in the field, if only for its style and elegance. He was also one of the central figures behind UNIX. Major programming languages, notably C++ and Java, are descendants of Ritchie&#039;s work; many other programming languages in use today show traces of his influences.&lt;p &gt;
&lt;strong &gt;Update&lt;/strong&gt;&lt;p &gt;
Bjarne Stroustrup puts the C revolution in perspective: &lt;a href=&quot;http://herbsutter.com/2011/10/12/dennis-ritchie/&quot;&gt;They said it couldn’t be done, and he did it.&lt;/a&gt;&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <pubDate>Thu, 13 Oct 2011 02:45:03 -0400</pubDate>
</item>
<item>
 <title>Open thread: RIP Steve Jobs</title>
 <link>http://lambda-the-ultimate.org/node/4372</link>
 <description>&lt;p &gt;Steve Jobs (1955 - 2011) had a profound influence on the computing world. As others discuss his many contributions and accomplishments, I think it is appropriate that we discuss how these affected programming, and consequently programming languages. Bringing to life some of the ideas of the &lt;a href=&quot;http://lambda-the-ultimate.org/node/3122&quot;&gt;Mother of All Demos&lt;/a&gt;, Jobs had a hand in making event loops standard programming fare, and was there when Apple and NeXT pushed languages such as Objective-C and Dylan and various software frameworks, and decided to cease supporting others. Some of these were more successful than others, and I am sure members have views on their technical merits. This thread is for discussing Jobs -- from the perspective of programming languages and technologies.&lt;p &gt;
&lt;strong &gt;Update:&lt;/strong&gt;&lt;p &gt;
&lt;a href=&quot;http://lambda-the-ultimate.org/node/4372#comment-67525&quot;&gt;Eric Schmidt&lt;/a&gt; on Jobs and OOP&lt;/a&gt;&lt;p &gt;
&lt;a href=&quot;http://lambda-the-ultimate.org/node/4372#comment-67526&quot;&gt;Stephen Wolfram&lt;/a&gt; on Jobs and Mathematica&lt;/a&gt;&lt;p &gt;
&lt;a href=&quot;http://lambda-the-ultimate.org/node/4372#comment-67530&quot;&gt;The iPhone mandate decision&lt;/a&gt;&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <pubDate>Wed, 05 Oct 2011 22:03:55 -0400</pubDate>
</item>
<item>
 <title>The SAFE Platform</title>
 <link>http://lambda-the-ultimate.org/node/4353</link>
 <description>A. Dehon, B. Karel, B. Montagu, B. Pierce, J. Smith, T. Knight, S. Ray, G. Sullivan, G. Malecha, G. Morrisett, R. Pollack, R. Morisset &amp;amp; O. Shivers. &lt;a href=&quot;http://www.crash-safe.org/sites/default/files/plos11-submission.pdf&quot;&gt;Preliminary design of the SAFE platform&lt;/a&gt;. In &lt;i &gt;Proceedings of the 6th Workshop on Programming Languages and Operating Systems&lt;/i&gt; (PLOS 2011). ACM, Oct. 2011.
&lt;blockquote &gt;
ABSTRACT &amp;mdash; Safe is a clean-slate design for a secure host architecture,
coupling advances in programming languages, operating
systems, and hardware, and incorporating formal methods
at every step. The project is still at an early stage, but we
have identiﬁed a set of fundamental architectural choices
that we believe will work together to yield a high-assurance
system. We sketch the current state of the design and
discuss several of these choices.
&lt;/blockquote&gt;
Proving an operating system correct down to the hardware specification and against a threat model &lt;i &gt;does&lt;/i&gt; seem to demand &lt;a href=&quot;http://lambda-the-ultimate.org/node/4351&quot;&gt;new programming languages&lt;/a&gt; and higher-order constructive type theory.</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Mon, 12 Sep 2011 07:41:28 -0400</pubDate>
</item>
<item>
 <title>What needs to be done?</title>
 <link>http://lambda-the-ultimate.org/node/4351</link>
 <description>&lt;p &gt;So suppose like many here (?) you are a believer in the promise of functional programming. And suppose more and more FP features and FP languages are becoming mainstream. Does this mean nothing remains to be done? Certainly not! Among the recurring topics that come up for discussion here are support for concurrency, utilizing GPUs, FRP, dependent typing, fine grained control of effects, native support for web programming and the web stack of technologies and protocols and more.&lt;p &gt;
So what would be your priority list? What would be the first article/web site you&#039;d want the LtU to pay attention to, in order to see the importance of what you deem most important for the future of PLs? Who would be your ideal guest for the proverbial dinner? And what would you ask him (or her!)?&lt;p &gt;
&lt;strong &gt;Added clarification:&lt;/strong&gt;: As can be understood from the discussion below, this message has nothing to do with FP in particular. That&#039;s just the teaser. The questions in the second paragraph are entirely general.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <pubDate>Fri, 09 Sep 2011 12:58:20 -0400</pubDate>
</item>
<item>
 <title>the gnu extension language</title>
 <link>http://lambda-the-ultimate.org/node/4345</link>
 <description>&lt;p &gt;I found this to be an entertaining and interesting read: &lt;a href=&quot;http://wingolog.org/archives/2011/08/30/the-gnu-extension-language&quot;&gt;the gnu extension language&lt;/a&gt;, by Andy Wingo, maintainer of Guile.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;Guile is the GNU extension language. This is the case because Richard Stallman said so, 17 years ago. Beyond being a smart guy, Richard is powerfully eloquent: his &quot;let there be Guile&quot; proclamation was sufficient to activate the existing efforts to give GNU a good extension language. These disparate efforts became a piece of software, a community of hackers and users, and an idea in peoples&#039; heads, on their lips, and at their fingertips.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;The two features of Guile he highlights are macros (&quot;With most languages, either you have pattern matching, because Joe Armstrong put it there, or you don&#039;t&quot;) and delimited continuations.&lt;/p&gt;
&lt;p &gt;The accompanying slides, &lt;a href=&quot;http://www.gnu.org/ghm/2011/paris/slides/andy-wingo-guile.pdf&quot;&gt;The User in the Loop&lt;/a&gt;, for the 2011 GNU Hackers Meeting are also noteworthy, because they are not as dry as usual PL fare - instead Wingo revives the spirit of the Portland Pattern Repository:&lt;/p&gt;
&lt;ul &gt;
&lt;li &gt;&quot;Thesis: Some places just feel right&quot;
&lt;li &gt;&quot;Architectural patterns help produce that feeling&quot;
&lt;li &gt;&quot;E11y [extensibility] is fundamental to human agency and happiness&quot;
&lt;li &gt;&quot;Moglen: ‘Software is the steel of the 21st century’&quot;
&lt;li &gt;&quot;Building Materials: Le Corbusier&#039;s concrete; GNU&#039;s C&quot;
&lt;/ul&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <pubDate>Thu, 01 Sep 2011 11:14:58 -0400</pubDate>
</item>
<item>
 <title>Guidance to avoiding vulnerabilities in programming languages (ISO/IEC 24772)</title>
 <link>http://lambda-the-ultimate.org/node/4297</link>
 <description>&lt;p &gt;I don&#039;t recall a discussion here on &lt;a href=&quot;http://www.iso.org/iso/catalogue_detail.htm?csnumber=41542&quot;&gt;ISO/IEC TR 24772&lt;/a&gt;, &quot;Guidance to avoiding vulnerabilities in programming languages through language selection and use.&quot; This report describes programming language vulnerabilities in a generic way, and is supported by language specific annexes.&lt;p &gt;
An introduction to this report can be found on page 46 of this issue of the &lt;a href=&quot;http://www.ada-europe.org/AUJ/PDF/AUJ_30_1.pdf&quot;&gt;Ada User Journal&lt;/a&gt; (how unweb like!). A lengthier discussion can be found in &lt;a href=&quot;http://www.ada-europe.org/AUJ/PDF/AUJ_30_3.pdf&quot;&gt;this issue&lt;/a&gt; of the same publication.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <pubDate>Wed, 22 Jun 2011 06:17:47 -0400</pubDate>
</item>
<item>
 <title>Rob Pike: Public Static Void</title>
 <link>http://lambda-the-ultimate.org/node/4279</link>
 <description>&lt;p &gt;Rob Pike&#039;s &lt;a href=&quot;http://itc.conversationsnetwork.org/shows/detail4764.html&quot;&gt;talk&lt;/a&gt; about the motivation for Go is rather fun, but doesn&#039;t really break new ground. Most of what he says have been said here many times, from the critic of the verbosity of C++ and Java to the skepticism about dynamic typing. Some small details are perhaps worth arguing with, but in general Pike is one of the good guys -- it&#039;s all motherhood and apple pie.&lt;p &gt;
So why mention this at all (especially since it is not even breaking news)? Well, what caught my attention was the brief reconstruction of history the Pike presents. While he is perfectly honest about not being interested in history, and merely giving his personal impressions, the description is typical. What bugs me, particularly given the context of this talk, is that the history it totally sanitized. It&#039;s the &quot;history of ideas&quot; in the bad sense of the term -- nothing about interests (commercial and otherwise), incentives, marketing, social power, path dependence, any thing. Since we had a few discussions recently about historiography of the field, I thought I&#039;d bring this up (the point is not to target Pike&#039;s talk in particular).&lt;p &gt;
Now, when you think about Java, for example, it is very clear that the language didn&#039;t simply take over because of the reasons Pike marshals. Adoption is itself a process, and one that is worth thinking about. More to the point, I think, is that Java was (a) energetically marketed; and (b) was essentially a commercial venture, aimed at furthering the interests of a company (that is no longer with us...) Somehow I think all this is directly relevant to Go. But of course, it is hard to see Go gaining the success of Java.&lt;p &gt;
All this is to say that history is not just &quot;we had a  language that did x well, but not y, so we came up with a new language, that did y but z only marginally, so now we are building Go (which compiles real fast, you know) etc. etc.&quot;&lt;p &gt;
Or put differently, those who do not know history are doomed to repeat it (or some variation of this cliche that is more authentic). Or does this not hold when it comes to PLs?&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <pubDate>Mon, 23 May 2011 04:17:34 -0400</pubDate>
</item>
<item>
 <title>A Larger Decidable Semiuniﬁcation Problem</title>
 <link>http://lambda-the-ultimate.org/node/4272</link>
 <description>&lt;p &gt;In &lt;a href=&quot;http://plg.uwaterloo.ca/~gvcormac/rasup.pdf&quot;&gt;A Larger Decidable Semiuniﬁcation Problem&lt;/a&gt;(2007), Brad Lushman and Gordon V. Cormack of University of Waterloo&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;[...] present a graph-theoretic framework in which to study instances of the semiunification problem (SUP), which is known to be undecidable, but has several known and important decidable subsets. One such subset, the acyclic semiunification problem (ASUP), has proved useful in the study of polymorphic type inference. We present graph-theoretic criteria in our framework that exactly characterize the ASUP acyclicity constraint. We then use our framework to find a decidable subset of SUP (which we call R-ASUP), which has a more natural description than ASUP, and strictly contains it.&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <pubDate>Fri, 13 May 2011 12:12:38 -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>Interview With Albert Gräf - Author of the Pure Programming Language</title>
 <link>http://lambda-the-ultimate.org/node/4232</link>
 <description>&lt;blockquote &gt;&lt;p &gt;
Albert Gräf is the author of the Pure programming language. Pure is a functional programming language based on term rewriting. It has a syntax featuring curried function applications, lexical closures and equational definitions with pattern matching, and thus is somewhat similar to languages of the Haskell and ML variety. Pure is also a dynamic language, and is more like Lisp in this respect. The interpreter has an LLVM backend that does JIT compilation.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;&lt;a href=&quot;http://blueparen.com/node/6&quot;&gt;Part 1&lt;/a&gt; and &lt;a href=&quot;http://blueparen.com/node/7&quot;&gt;Part 2&lt;/a&gt;&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <pubDate>Wed, 16 Mar 2011 10:09:05 -0400</pubDate>
</item>
<item>
 <title>Keyword and Optional Arguments in PLT Scheme</title>
 <link>http://lambda-the-ultimate.org/node/4221</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.cs.utah.edu/plt/publications/scheme09-fb.pdf&quot;&gt;Keyword and Optional Arguments in PLT Scheme&lt;/a&gt;, Matthew Flatt and Eli Barzilay, 2009 Workshop on Scheme and Functional Programming.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
The lambda and procedure-application forms in PLT Scheme support arguments that are tagged with keywords, instead of identiﬁed by position, as well as optional arguments with default values. Unlike previous keyword-argument systems for Scheme, a keyword is not self-quoting as an expression, and keyword arguments use a different calling convention than non-keyword arguments. Consequently, a keyword serves more reliably (e.g., in terms of error reporting) as a lightweight syntactic delimiter on procedure arguments. Our design requires no changes to the PLT Scheme core compiler, because lambda and application forms that support keywords are implemented by macros over conventional core forms that lack keyword support.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;As usual, a solid paper by the PLTers, this time on flexible argument passing.  Making named arguments apparent at compile-time (by introducing keyword symbols that may not be used as ordinary values) seems right and enables some optimizations. There are also some nice Racket-specifics in there, such as the use of the customizable application form &lt;code &gt;&lt;a href=&quot;http://docs.racket-lang.org/reference/application.html?q=%23%25app#(form._((lib._racket/private/base..rkt)._~23~25app))&quot;&gt;#%app&lt;/a&gt;&lt;/code&gt;, which - together with &quot;applicable structure types&quot; - allows the implementation of named arguments in &quot;userland&quot;.  The paper is rounded out by a performance evaluation and a description of similar facilities in other languages.&lt;/p&gt;
&lt;p &gt;I think this is a very good design (and implementation technique) for named arguments.  A facility [edit: syntax support] for receiving all named arguments of a function seems to be missing though - but it can probably be added in userland, too.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <pubDate>Sat, 05 Mar 2011 20:03:45 -0500</pubDate>
</item>
<item>
 <title>Invertible Syntax Descriptions: Unifying Parsing and Pretty Printing</title>
 <link>http://lambda-the-ultimate.org/node/4191</link>
 <description>&lt;p &gt;In &lt;a href=&quot;http://www.informatik.uni-marburg.de/~rendel/unparse/rendel10invertible.pdf&quot;&gt;Invertible Syntax Descriptions: Unifying Parsing and Pretty Printing&lt;/a&gt;, Rendel Tillmann and Klaus Ostermann at the University of Marburg, Germany apply the &quot;don&#039;t repeat yourself&quot; principle to parsers and pretty printers.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Parsers and pretty-printers for a language are often quite similar, yet both are typically implemented separately, leading to redundancy and potential inconsistency. We propose a new interface of syntactic descriptions, with which both parser and pretty-printer can be described as a single program. Whether a syntactic description is used as a parser or as a pretty-printer is determined by the implementation of the interface. Syntactic descriptions enable programmers to describe the connection between concrete and abstract syntax once and for all, and use these descriptions for parsing or pretty-printing as needed. We also discuss the generalization of our programming technique towards an algebra of partial isomorphisms.&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</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>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Wed, 26 Jan 2011 19:21:21 -0500</pubDate>
</item>
<item>
 <title>Language Virtualization for Heterogeneous Parallel Computing</title>
 <link>http://lambda-the-ultimate.org/node/4179</link>
 <description>&lt;p &gt;Hassan Chaﬁ, Zach DeVito, Adriaan Moors, Tiark Rompf, Arvind Sujeeth, Pat Hanrahan, Martin Odersky, and Kunle Olukotun describe an approach to parallel DSLs that is a hybrid between external DSLs and internal DSLs in &lt;a href=&quot;http://infoscience.epfl.ch/record/148814/files/paper.pdf&quot;&gt;Language Virtualization for Heterogeneous Parallel Computing&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;As heterogeneous parallel systems become dominant, application developers are being forced to turn to an incompatible mix of low level programming models (e.g. OpenMP, MPI, CUDA, OpenCL). However, these models do little to shield developers from the difﬁcult problems of parallelization, data decomposition and machine-speciﬁc details. Ordinary programmers are having a difﬁcult time using these programming models effectively. To provide a programming model that addresses the productivity and performance requirements for the average programmer, we explore a domain-speciﬁc approach to heterogeneous parallel programming. &lt;/p&gt;
&lt;p &gt;We propose language virtualization as a new principle that enables the construction of highly efﬁcient parallel domain speciﬁc languages that are embedded in a common host language. We deﬁne criteria for language virtualization and present techniques to achieve them.We present two concrete case studies of domain-speciﬁc languages that are implemented using our virtualization approach.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;While the motivation of the paper is parallelization the proposed design looks like &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb397951.aspx&quot;&gt;LINQ expression trees&lt;/a&gt; dialed to 11.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/15">Meta-Programming</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/16">Parallel/Distributed</category>
 <pubDate>Tue, 11 Jan 2011 10:42:34 -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>
</channel>
</rss>

