<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - History</title>
 <link>http://lambda-the-ultimate.org/taxonomy/term/7/0</link>
 <description></description>
 <language>en</language>
<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>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>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>Passing a Language through the Eye of a Needle </title>
 <link>http://lambda-the-ultimate.org/node/4277</link>
 <description>&lt;p &gt;&lt;i &gt;Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes, &lt;a href=&quot;http://queue.acm.org/detail.cfm?id=1983083&quot;&gt;&quot;Passing a Language through the Eye of a Needle: How the embeddability of Lua impacted its design&quot;&lt;/a&gt;, ACM Queue vol. 9, no. 5, May 2011.&lt;/i&gt;&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;A key feature of a scripting language is its ability to integrate with a system language. This integration takes two main forms: extending and embedding. In the first form, you extend the scripting language with libraries and functions written in the system language and write your main program in the scripting language. In the second form, you embed the scripting language in a host program (written in the system language) so that the host can run scripts and call functions defined in the scripts; the main program is the host program.&lt;br &gt;
...&lt;br &gt;
In this article we discuss how embeddability can impact the design of a language, and in particular how it impacted the design of Lua from day one. Lua is a scripting language with a particularly strong emphasis on embeddability. It has been embedded in a wide range of applications and is a leading language for scripting games.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;An interesting discussion of some of the considerations that go into supporting embeddability. The design of a language clearly has an influence over the API it supports, but conversely the design of an API can have a lot of influence over the design of the language.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/17">Software Engineering</category>
 <pubDate>Wed, 18 May 2011 01:55:55 -0400</pubDate>
</item>
<item>
 <title>Memory Models: A Case for Rethinking Parallel Languages and Hardware, CACM, August 2010</title>
 <link>http://lambda-the-ultimate.org/node/4211</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://rsim.cs.illinois.edu/Pubs/10-cacm-memory-models.pdf&quot;&gt;Memory Models: A Case for Rethinking Parallel Languages and Hardware&lt;/a&gt; by Sarita V. Adve and Hans-J. Boehm&lt;/p&gt;
&lt;p &gt;This is a pre-print of the actual version.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;The era of parallel computing for the masses is here, but writing correct parallel programs remains far more difficult than writing sequential programs. Aside from a few domains, most parallel programs are written using a shared-memory approach. The memory model, which specifies the meaning of shared variables, is at the heart of this programming model. Unfortunately, it has involved a tradeoff between programmability and performance, and has arguably been one of the most challenging and contentious areas in both hardware architecture and programming language specification. Recent broad community-scale efforts have finally led to a convergence in this debate, with popular languages such as Java and C++ and most hardware vendors publishing compatible memory model specifications. Although this convergence is a dramatic improvement, it has exposed fundamental shortcomings in current popular languages and systems that prevent achieving the vision of structured and safe parallel programming.&lt;/p&gt;
&lt;p &gt;This paper discusses the path to the above convergence, the hard lessons learned, and their implications. A cornerstone of this convergence has been the view that the memory model should be a contract between the programmer and the system - if the programmer writes disciplined (data-race-free) programs, the system will provide high programmability (sequential consistency) and performance. We discuss why this view is the best we can do with current popular languages, and why it is inadequate moving forward. We then discuss research directions that eliminate much of the concern about the memory model, but require rethinking popular parallel languages and hardware. In particular, we argue that parallel languages should not only promote high-level disciplined models, but they should also &lt;em &gt;enforce&lt;/em&gt; the discipline. Further, for scalable and efficient performance, hardware should be co-designed to take advantage of and support such disciplined models. The inadequacies of the state-of-the-art and the research agenda we outline have deep implications for the practice, research, and teaching of many computer science sub-disciplines, spanning theory, software, and hardware.
&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/4">Critiques</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/16">Parallel/Distributed</category>
 <pubDate>Sun, 27 Feb 2011 01:22:37 -0500</pubDate>
</item>
<item>
 <title>The IO Monad is 45 years old</title>
 <link>http://lambda-the-ultimate.org/node/4169</link>
 <description>&lt;p &gt;Oleg Kiselyov wrote a mail to haskell-cafe today titled, &lt;a href=&quot;http://www.haskell.org/pipermail/haskell-cafe/2010-December/087788.html&quot;&gt;The IO Monad is 45 years old&lt;/a&gt;.  I thought LtU readers might like this.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <pubDate>Wed, 29 Dec 2010 13:57:25 -0500</pubDate>
</item>
<item>
 <title>Pure and Declarative Syntax Definition: Paradise Lost and Regained, Onward 2010</title>
 <link>http://lambda-the-ultimate.org/node/4150</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.lclnet.nl/publications/pure-and-declarative-syntax-definition.pdf&quot;&gt;Pure and Declarative Syntax Definition: Paradise Lost and Regained&lt;/a&gt; by Lennart C. L. Kats, Eelco Visser, Guido Wachsmuth from Delft&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;Syntax definitions are pervasive in modern software systems, and serve as the basis for language processing tools like parsers and compilers. Mainstream parser generators pose restrictions on syntax definitions that follow from their implementation algorithm. They hamper evolution, maintainability, and compositionality of syntax definitions. The pureness and declarativity of syntax definitions is lost. We analyze how these problems arise for different aspects of syntax definitions, discuss their consequences for language engineers, and show how the pure and declarative nature of syntax definitions can be regained.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;I haven&#039;t compared this version with the Onward 2010 version, but they look essentially the same.  It seems timely to post this paper, considering the other recent story &lt;a href=&quot;http://lambda-the-ultimate.org/node/4148&quot;&gt;Yacc is dead&lt;/a&gt;.  There is not a whole lot to argue against in this paper, since we all &quot;know&quot; the other approaches aren&#039;t as elegant and only resort to them for specific reasons such as efficiency.  Yet, this is the first paper I know of that tries to state the argument to software engineers.&lt;/p&gt;
&lt;p &gt;For example, the Dragon Book, in every single edition, effectively brushes these topics aside.  In particular, the Dragon Book does not even mention scannerless parsing as a technique, and instead only explains the &quot;advantages&quot; of using a scanner.  Unfortunately, the authors of this paper don&#039;t consider other design proposals, either, such as Van Wyk&#039;s &lt;a href=&quot;http://www.umsec.umn.edu/publications/Context-Aware-Scanning-Parsing-Extensible-Language&quot;&gt;context-aware scanners&lt;/a&gt; from GPCE 2007.  It is examples like these that made me wish the paper was a bit more robust in its analysis; the examples seem focused on the author&#039;s previous work.&lt;/p&gt;
&lt;p &gt;If you are not familiar with the author&#039;s previous work in this area, the paper covers it in the references.  It includes &lt;a href=&quot;http://lambda-the-ultimate.org/user/438&quot;&gt;Martin Bravenboer&lt;/a&gt;&#039;s work on modular Eclipse IDE support for AspectJ.&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/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/17">Software Engineering</category>
 <pubDate>Mon, 29 Nov 2010 12:19:39 -0500</pubDate>
</item>
<item>
 <title>The Triumph of Types: Principia Mathematica&#039;s Impact on Computer Science</title>
 <link>http://lambda-the-ultimate.org/node/4145</link>
 <description>&lt;small&gt;&lt;a href=&quot;http://www.srcf.ucam.org/principia/files/rc.pdf&quot;&gt;The Triumph of Types: Principia Mathematica&#039;s Impact on Computer Science&lt;/a&gt;. Robert L. Constable&lt;/small&gt;&lt;p&gt;
The role the ideas of Principia Mathematica played in type theory in programming languages is often alluded to in our discussions, making this contribution to a &lt;a href=&quot;http://www.srcf.ucam.org/principia/&quot;&gt;meeting&lt;/a&gt; celebrating the hundredth anniversary of Whitehead-and-Russell&#039;s opus provocative.&lt;p&gt;
To get your juices going here is a quote from page 3:&lt;p&gt;
&lt;blockquote&gt;
...I will discuss later our efforts at Cornell to create one such type theory, Computational Type Theory (CTT), very closely related to two others, the Calculus of Inductive Constructions (CIC) implemented in the Coq prover and widely used, and Intuitionistic Type Theory (ITT) implemented in the Alf and Agda provers. All three of these efforts, but especially CTT and ITT, were strongly influenced by Principia and the work of Bishop presented in his book Foundations of Constructive Analysis.
&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Sat, 27 Nov 2010 13:59:22 -0500</pubDate>
</item>
<item>
 <title>The Resurgence of Parallelism</title>
 <link>http://lambda-the-ultimate.org/node/3963</link>
 <description>&lt;p &gt;&lt;i &gt;Peter J. Denning and  Jack B. Dennis, &lt;a href=&quot;http://cacm.acm.org/magazines/2010/6/92479-the-resurgence-of-parallelism/fulltext&quot;&gt;The Resurgence of Parallelism&lt;/a&gt;, Communications of the ACM, Vol. 53 No. 6, Pages 30-32, 10.1145/1743546.1743560&lt;/i&gt;&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;&quot;Multi-core chips are a new paradigm!&quot; &quot;We are entering the age of parallelism!&quot; These are today&#039;s faddish rallying cries for new lines of research and commercial development. ... The parallel architecture research of the 1960s and 1970s solved many problems that are being encountered today. Our objective in this column is to recall the most important of these results and urge their resurrection.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;A brief but timely reminder that we should avoid reinventing the wheel. Denning and Dennis give a nice capsule summary of the history of parallel computing research, and highlight some of the key ideas that came out of earlier research on parallel computing. This isn&#039;t a technically deep article. But it gives a quick overview of the field, and tries to identify some of the things that actually &lt;i &gt;are&lt;/i&gt; research challenges rather than problems for which the solutions have seemingly been forgotten.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/16">Parallel/Distributed</category>
 <pubDate>Fri, 28 May 2010 19:45:49 -0400</pubDate>
</item>
<item>
 <title>Algol 58/60</title>
 <link>http://lambda-the-ultimate.org/node/3954</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.mcjones.org/dustydecks/archives/2004/07/04/2/&quot;&gt;Paul McJones&lt;/a&gt; has been curating ALGOL section of &lt;a href=&quot;http://www.softwarepreservation.org/projects/ALGOL/&quot;&gt;Software Preservation Group&lt;/a&gt;. He &lt;a href=&quot;http://www.mcjones.org/dustydecks/archives/2010/05/16/148/&quot;&gt;notes&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
I recently created an ALGOL section at the Computer History Museum’s Software Preservation Group web site, covering the language standardization efforts — for ALGOL 58 (also known as the International Algebraic Language), ALGOL 60, and ALGOL 68 — and also covering many implementations, dialects, and offshoots, complete with source code, manuals, and papers for many of these. The history of ALGOL has attracted many writers, and the final section of the web site links to many of their papers.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Also see his follow up blog about &lt;a href=&quot;http://www.mcjones.org/dustydecks/archives/2010/05/16/159/&quot;&gt;Whetstone ALGOL&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <pubDate>Mon, 17 May 2010 15:10:26 -0400</pubDate>
</item>
<item>
 <title>A Formal System For Euclid&#039;s Elements</title>
 <link>http://lambda-the-ultimate.org/node/3899</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://journals.cambridge.org/repo_A674ohNM&quot;&gt;A Formal System For Euclid&#039;s Elements&lt;/a&gt;, Jeremy Avigad, Edward Dean, and John Mumma. Review of Symbolic Logic, Vol. 2, No. 4, 2009. &lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Abstract. We present a formal system, E, which provides a faithful model of the proofs in Euclid’s Elements, including the use of diagrammatic reasoning.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Diagrammatic languages are a perennial favorite discussion topic here, and Euclid&#039;s proofs constitute one of the oldest diagrammatic languages around. And yet for hundreds of years (at least since Leibniz) people have argued about whether or not the diagrams are really part of a &lt;em &gt;formal&lt;/em&gt; system of reasoning, or whether they are simply visual aids hanging on the side of the true proof. The latter position is the one that Hilbert and Tarski took as well when they gave formal axiomatic systems for geometry. &lt;/p&gt;
&lt;p &gt;But was this necessary, or just a contingent fact of the logical machinery available to them? Avigad and his coauthors show the former point of view also works, and that you can do it with very basic proof theory (there&#039;s little here unfamiliar to anyone who has read Pierce&#039;s book). Yet it sheds a lot of light on how the diagrams in the Elements work, in part because of their very careful analysis of how to read the diagrams -- that is, what conclusion a diagram really licenses you to draw, and which ones are accidents of the specific figure on the page. How they consider these issues is a good model for anyone designing their own visual programming languages. &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>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Sun, 04 Apr 2010 07:37:14 -0400</pubDate>
</item>
<item>
 <title>Google TechTalk: The Evolution of End-User Programming</title>
 <link>http://lambda-the-ultimate.org/node/3821</link>
 <description>&lt;p &gt;End-User Programming has been a topical discussion lately in mainstream software outlets.  The IEEE journal &lt;em &gt;Software&lt;/em&gt; recently had an issue dedicated to end-user programming challenges; see Joel Brandt&#039;s &lt;a href=&quot;http://hci.stanford.edu/publications/2009/brandt_software09_opportunistic_programming.pdf&quot;&gt;Opportunistic Programming: Writing Code to Prototype, Ideate and Discover&lt;/a&gt; and Martin Erwig&#039;s &lt;a href=&quot;http://web.engr.oregonstate.edu/~erwig/papers/SEforSpreadsheets_IEEESoftware09.pdf&quot;&gt;Software Engineering for Spreadsheets&lt;/a&gt;.  Also, a few years ago a consortium of universities formed &lt;a href=&quot;http://eusesconsortium.org/&quot;&gt;End-Users Shaping Effective Software&lt;/a&gt;, which includes Martin Erwig&#039;s PLT work on &lt;A href=&quot;http://web.engr.oregonstate.edu/~erwig/units/&quot;&gt;bringing type systems to spreadsheets&lt;/a&gt;.&lt;/p&gt;
&lt;p &gt;Recently, Google invited Allen Cypher to give a TechTalk on &lt;a href=&quot;http://www.youtube.com/watch?v=MxpjGZinies&quot;&gt;The Evolution of End-User Programming&lt;/a&gt;, which appears to be a recapitulation of his &lt;a href=&quot;http://dx.doi.org/10.1109/VLHCC.2009.5295315&quot;&gt;VL/HCC paper by the same name&lt;/a&gt;.  Allen was the editor of &lt;a href=&quot;http://acypher.com/wwid/WWIDToC.html&quot;&gt;Watch What I Do&lt;/a&gt; (an &lt;a href=&quot;http://lambda-the-ultimate.org/papers&quot;&gt;LtU recommended reading&lt;/a&gt;).&lt;/p&gt;
&lt;p &gt;Towards the end of the talk, Allen mentions the practical issues of knowing when to use what tool, and that novice users struggle with finding the right tool for the right job.  What&#039;s notable about discussion of end-user software engineering is how little attention its proponents pay to its critics biggest criticism: Security.  In the IEEE Software realm, probably the most open critic has been Warren Harrison (see: &lt;A href=&quot;http://eusesconsortium.org/docs/ieeeSoftware-editorial-JulAug04.pdf&quot;&gt;The Dangers of End-User Programming&lt;/a&gt;).  For example, Ko&#039;s 2009 ACM Computing Survey &lt;a href=&quot;http://www.cs.cmu.edu/~Compose/Ko2009EndUserSoftwareEngineering.pdf&quot;&gt;The State of the Art in End-User Software Engineering&lt;/a&gt; only mentions security once, in the context of designing end-user description languages for security, but does not assess how well this technique compares to techniques software engineers might employ.  It seems strange that leading researchers in visual languages and end-user programming do not discuss the potential usage of object capability systems, especially as companies try to monetize a percentage of the value added by users who mash-up their service with other services.&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>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/17">Software Engineering</category>
 <pubDate>Fri, 12 Feb 2010 13:24:32 -0500</pubDate>
</item>
<item>
 <title>Why Normalization Failed to Become the Ultimate Guide for Database Designers?</title>
 <link>http://lambda-the-ultimate.org/node/3762</link>
 <description>&lt;p &gt;While trying to find &lt;a href=&quot;http://lambda-the-ultimate.org/user/2398&quot;&gt;marshall&lt;/a&gt;&#039;s &lt;a href=&quot;http://lambda-the-ultimate.org/node/3761#comment-55076&quot;&gt;claim&lt;/a&gt; that Alberto Mendelzon says the universal relation is an idea re-invented once every 3 years (and later finding a quote by Jeffrey Ullman that the universal relation is re-invented 3 times a year), I stumbled across a very provocative rant by a researcher/practitioner: &lt;A href=&quot;http://papers.ssrn.com/sol3/papers.cfm?abstract_id=905060&quot;&gt;Why Normalization Failed to Become the Ultimate Guide for Database Designers?&lt;/a&gt; by Martin Fotache.  It shares an interesting wealth of experience and knowledge about logical design.  The author is obviously well-read and unlike usual debates I&#039;ve seen about this topic, presents the argument thoroughly and comprehensively.&lt;/p&gt;
&lt;p &gt;The abstract is:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;With an impressive theoretical foundation, normalization was supposed to bring rigor and relevance into such a slippery domain as database design is. Almost every database textbook treats normalization in a certain extent, usually suggesting that the topic is so clear and consolidated that it does not deserve deeper discussions. But the reality is completely different. After more than three decades, normalization not only has lost much of its interest in the research papers, but also is still looking for practitioners to apply it effectively. Despite the vast amount of database literature, comprehensive books illustrating the application of normalization to effective real-world applications are still waited. This paper reflects the point of view of an Information Systems academic who incidentally has been for almost twenty years a practitioner in developing database applications. It outlines the main weaknesses of normalization and offers some explanations about the failure of a generous framework in becoming the so much needed universal guide for database designers. Practitioners might be interested in finding out (or confirming) some of the normalization misformulations, misinterpretations, inconsistencies and fallacies. Theorists could find useful the presentation of some issues where the normalization theory was proved to be inadequate, not relevant, or source of confusion.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;The body of the paper presents an explanation for why practitioners have rejected normalization.  The author also shares his opinion on potentially underexplored ideas as well, drawing from an obviously well-researched depth of knowledge.  In recent years, some researchers, such as Microsoft&#039;s Pat Helland, have even said &lt;a href=&quot;http://blogs.msdn.com/pathelland/archive/2007/07/23/normalization-is-for-sissies.aspx&quot;&gt;Normalization is for sissies&lt;/a&gt; (only to further this with later formal publications such as advocating we should be &lt;a href=&quot;http://www-db.cs.wisc.edu/cidr/cidr2009/Paper_133.pdf&quot;&gt;Building on Quicksand&lt;/a&gt;).  Yet, the PLT community is pushing for the exact opposite.  Language theory is firmly rooted in formal grammars and proven correct &#039;tricks&#039; for manipulating and using those formal grammars; it does no good to define a language if it does not have mathematical properties ensuring relaibility and repeatability of results.  This represents and defines real tension between systems theory and PLT.&lt;/p&gt;
&lt;p &gt;I realize this paper focuses on methodologies for creating model primitives, comparing mathematical frameworks to frameworks guided by intuition and then mapped to mathematical notions (relations in the relational model), and some may not see it as PLT.  Others, such as Date, closely relate understanding of primitives to PLT: Date &lt;a href=&quot;http://lambda-the-ultimate.org/node/877&quot;&gt;claims the SQL language is to blame&lt;/a&gt; and have gone to the lengths of creating a teaching language, Tutorial D, to teach relational theory.  In my experience, nothing seems to effect lines of code in an enterprise system more than schema design, both in the data layer and logic layer, and often an inverse relationship exists between the two; hence the use of object-relational mapping layers to consolidate inevitable problems where there will be &lt;a href=&quot;http://www.bkent.net/Doc/manyform.htm&quot;&gt;The Many Forms of a Single Fact&lt;/a&gt; (Kent, 1988).  Mapping stabilizes the problem domain by labeling correspondances between all the possible unique structures.  I refer to this among friends and coworkers as the N+1 Schema Problem, as there is generally 1 schema thought to be canonical, either extensionally or intensionally, and N other versions of that schema.&lt;/p&gt;
&lt;p &gt;&lt;strong &gt;Question: Should interactive programming languages aid practitioners in reasoning about their bad data models, (hand waving) perhaps by modeling each unique structure and explaining how they relate?&lt;/strong&gt;  I could see several reasons why that would be a bad idea, but as the above paper suggests, math is not always the best indicator of what practitioners will adopt.  It many ways this seems to be the spirit of the idea behind such work as Stephen Kell&#039;s interest in approaching modularity by supporting evolutionary compatibility between APIs (source texts) and ABIs (binaries), as covered in his Onward! paper, &lt;a href=&quot;http://www.cl.cam.ac.uk/~srk31/research/papers/kell09mythical.pdf&quot;&gt;The Mythical Matched Modules: Overcoming the Tyranny of Inflexible Software Construction&lt;/a&gt;.  Similar ideas have been in middleware systems for years and are known as &lt;em &gt;wrapper architecures&lt;/em&gt; (e.g., &lt;a href=&quot;http://www.vldb.org/conf/1997/P266.PDF&quot;&gt;Don’t Scrap It, Wrap It!&lt;/a&gt;), but haven&#039;t seen much PLT interest that I&#039;m aware of; &quot;middleware&quot; might as well be a synonym for Kell&#039;s &quot;integration domains&quot; concept.&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/7">History</category>
 <pubDate>Fri, 08 Jan 2010 19:24:16 -0500</pubDate>
</item>
<item>
 <title>Back to the Future: Lisp as a Base for a Statistical Computing System</title>
 <link>http://lambda-the-ultimate.org/node/3726</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.stat.auckland.ac.nz/%7Eihaka/downloads/Compstat-2008.pdf&quot;&gt;Back to the Future: Lisp as a Base for a Statistical Computing System&lt;/a&gt; by Ross Ihaka and Duncan Temple Lang, and the accompanying &lt;a href=&quot;http://www.stat.auckland.ac.nz/%7Eihaka/downloads/Compstat-2008-Slides.pdf&quot;&gt;slides&lt;/a&gt;.&lt;/p&gt;
&lt;p &gt;This paper was &lt;a href=&quot;http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/3b8ccb9acabc12e2/85cd002bc538e561&quot;&gt;previously discussed&lt;/a&gt; on comp.lang.lisp, but apparently not covered on LtU before.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;The application of cutting-edge statistical methodology is limited by the capabilities of the systems in which it is implemented. In particular, the limitations of R mean that applications developed there do not scale to the larger problems of interest in practice. We identify some of the limitations of the computational model of the R language that reduces its effectiveness for dealing with large data efficiently in the modern era.&lt;/p&gt;
&lt;p &gt;We propose developing an R-like language on top of a Lisp-based engine for statistical computing that provides a paradigm for modern challenges and which leverages the work of a wider community. At its simplest, this provides a convenient, high-level language with support for compiling code to machine instructions for very significant improvements in computational performance. But we also propose to provide a framework which supports more computationally intensive approaches for dealing with large datasets and position ourselves for dealing with future directions in high-performance computing.&lt;/p&gt;
&lt;p &gt;We discuss some of the trade-offs and describe our efforts to realizing this approach. More abstractly, we feel that it is important that our community explore more ambitious, experimental and risky research to explore computational innovation for modern data analyses.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Foot note:&lt;br &gt;
Ross Ihaka co-developed the R statistical programming language with Robert Gentleman.  For those unaware, R is effectively an open source implementation of &lt;a href=&quot;http://en.wikipedia.org/wiki/S-PLUS&quot;&gt;S-PLUS&lt;/a&gt;, which in turn was based on &lt;a href=&quot;http://en.wikipedia.org/wiki/S_programming_language&quot;&gt;S&lt;/a&gt;.  R is sort of the lingua franca of statistics, and you can usually find R code provided in the back of several Springer Verlag monographs.&lt;/p&gt;
&lt;p &gt;Duncan Temple Lang is a core developer of R and has worked on the core engine for TIBCO&#039;s S-PLUS.&lt;/p&gt;
&lt;p &gt;Thanks to LtU user bashyal for providing the links.&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/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <pubDate>Thu, 17 Dec 2009 10:01:40 -0500</pubDate>
</item>
</channel>
</rss>

