<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - Critiques</title>
 <link>http://lambda-the-ultimate.org/taxonomy/term/4/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>Built to Last</title>
 <link>http://lambda-the-ultimate.org/node/5605</link>
 <description>&lt;p &gt;Mar Hicks. &lt;a href=&quot;https://logicmag.io/care/built-to-last/&quot;&gt;Built to Last&lt;/a&gt;. Logic. Issue 11, &quot;Care&quot;. &lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
It was this austerity-driven lack of investment in people—rather than the handy fiction, peddled by state governments, that programmers with obsolete skills retired—that removed COBOL programmers years before this recent crisis. The reality is that there are plenty of new COBOL programmers out there who could do the job. In fact, the majority of people in the COBOL programmers’ Facebook group are twenty-five to thirty-five-years-old, and the number of people being trained to program and maintain COBOL systems globally is only growing. Many people who work with COBOL graduated in the 1990s or 2000s and have spent most of their twenty-first century careers maintaining and programming COBOL systems...&lt;/p&gt;
&lt;p &gt;In this sense, COBOL and its scapegoating show us an important aspect of high tech that few in Silicon Valley, or in government, seem to understand. Older systems have value, and constantly building new technological systems for short-term profit at the expense of existing infrastructure is not progress. In fact, it is among the most regressive paths a society can take.&lt;/blockquote&gt;
&lt;p &gt;
Recently, work on the history of technology has been becoming increasingly more sophisticated and moved beyond telling the story of impressive technology to trying to unravel the social, political, and economic forces that affected the development, deployment, and use of a wide range of technologies and technological systems. Luckily, this trend is beginning to manifest itself in studies of the history of programming languages. While not replacing the need for careful, deeply informed, studies of the internal intellectual forces affecting the development of programming languages, these studies add a sorely needed aspect to the stories we tell.&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>Mon, 21 Sep 2020 07:10:51 +0000</pubDate>
</item>
<item>
 <title>Tensor Considered Harmful</title>
 <link>http://lambda-the-ultimate.org/tensor-considered-harmful</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://nlp.seas.harvard.edu/NamedTensor&quot;&gt;Tensor Considered Harmful&lt;/a&gt;, by Alexander Rush&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
TL;DR: Despite its ubiquity in deep learning, Tensor is broken. It forces bad habits such as exposing private dimensions, broadcasting based on absolute position, and keeping type information in documentation. This post presents a proof-of-concept of an alternative approach, &lt;strong &gt;named tensors&lt;/strong&gt;, with named dimensions. This change eliminates the need for indexing, dim arguments, einsum- style unpacking, and documentation-based coding. The prototype &lt;strong &gt;PyTorch library&lt;/strong&gt; accompanying this blog post is available as &lt;a href=&quot;https://github.com/harvardnlp/NamedTensor&quot;&gt;namedtensor&lt;/a&gt;.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Thanks to Edward Z. Yang for pointing me to this &quot;Considered Harmful&quot; position paper.&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/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Thu, 27 Jun 2019 14:26:57 +0000</pubDate>
</item>
<item>
 <title>Graydon Hoare: What next for compiled languages?</title>
 <link>http://lambda-the-ultimate.org/node/5466</link>
 <description>&lt;p &gt;Since &lt;a href=&quot;https://news.ycombinator.com/item?id=15051645&quot;&gt;everybody&lt;/a&gt; is talking about &lt;a href=&quot;http://graydon2.dreamwidth.org/253769.html&quot;&gt;this post&lt;/a&gt;,we might as well.&lt;p &gt;
Key topics discussed: &lt;b &gt;modules&lt;/b&gt;(you know, real ones); &lt;b &gt;errors&lt;/b&gt; (&quot;there are serious abstraction leakages and design trade-offs in nearly every known approach&quot;); &lt;b &gt;Coroutines, async/await, &quot;user-visible&quot; asynchronicity&lt;/b&gt;; &lt;b &gt;effect systems&lt;/b&gt;, more generally (you could see that coming, couldn&#039;t you?); &lt;b &gt;Extended static checking (ESC), refinement types, general dependent-typed languages&lt;/b&gt;; and &lt;b &gt;formalization &lt;/b&gt;(&quot;we have to get to the point where we ship languages -- and implementations -- with strong, proven foundations&quot;).&lt;p &gt;
He goes on to discuss a whole grab bag of &quot;potential extras&quot; for mainstream languages, including the all time favorite: units of measure.&lt;p &gt;
Feel free to link to the relevant discussions from the LtU archive... &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/6">General</category>
 <pubDate>Sun, 20 Aug 2017 03:52:33 +0000</pubDate>
</item>
<item>
 <title>Undefined Behavior in 2017</title>
 <link>http://lambda-the-ultimate.org/node/5447</link>
 <description>&lt;p &gt;&lt;a href=&quot;https://blog.regehr.org/archives/1520&quot;&gt;Exhaustive review of Undefined Behaviors in C and C++ in 2017&lt;/a&gt; by Pascal Cuoq and John Regehr.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Recently we’ve heard a few people imply that problems stemming from undefined behaviors (UB) in C and C++ are largely solved due to ubiquitous availability of dynamic checking tools such as ASan, UBSan, MSan, and TSan. We are here to state the obvious — that, despite the many excellent advances in tooling over the last few years, UB-related problems are far from solved — and to look at the current situation in detail.
&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/4">Critiques</category>
 <pubDate>Fri, 07 Jul 2017 17:02:14 +0000</pubDate>
</item>
<item>
 <title>Salon des Refusés -- Dialectics for new computer science</title>
 <link>http://lambda-the-ultimate.org/node/5392</link>
 <description>&lt;p &gt;In the first decade of the twenty-first century, the &lt;a href=&quot;https://www.dreamsongs.com/Feyerabend/Feyerabend.html&quot;&gt;Feyerabend Project&lt;/a&gt; organized several workshops to discuss and develop new ways to think of programming languages and computing in general. A new event in this direction is a new workshop that will take place in Brussels, in April, co-located with the new &lt;a href=&quot;http://2017.programmingconference.org/&quot;&gt;&amp;lt;Programming&amp;gt;&lt;/a&gt; conference -- also worth a look.&lt;/p&gt;

&lt;p &gt;&lt;a href=&quot;https://refuses.github.io/&quot;&gt;Salon des Refusés -- Dialectics for new computer science&lt;/a&gt;&lt;br &gt;
April 2017, Brussels&lt;/p&gt;
&lt;blockquote &gt;
&lt;p &gt;
Salon des Refusés (“exhibition of rejects”) was an 1863 exhibition of artworks rejected from the official Paris Salon. The jury of Paris Salon required near-photographic realism and classified works according to a strict genre hierarchy. Paintings by many, later famous, modernists such as Édouard Manet were rejected and appeared in what became known as the Salon des Refusés. This workshop aims to be the programming language research equivalent of Salon des Refusés. We provide venue for exploring new ideas and new ways of doing computer science.
&lt;/p&gt;&lt;p &gt;
Many interesting ideas about programming might struggle to find space in the modern programming language research community, often because they are difficult to evaluate using established evaluation methods (be it proofs, measurements or controlled user studies). As a result, new ideas are often seen as “unscientific”.
&lt;/p&gt;&lt;p &gt;
This workshop provides a venue where such interesting and thought provoking ideas can be exposed to critical evaluation. Submissions that provoke interesting discussion among the program committee members will be published together with an attributed review that presents an alternative position, develops additional context or summarizes discussion from the workshop. This means of engaging with papers not just enables explorations of novel programming ideas, but also enourages new ways of doing computer science.
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p &gt;The workshop&#039;s webpage also contains descriptions of of some formats that could &quot;make it possible to think about programming in a new way&quot;, including: Thought experiments, Experimentation, Paradigms, Metaphors, myths and analogies, and From jokes to science fiction.&lt;/p&gt;

&lt;p &gt;For writings on similar questions about formalism, paradigms or method in programming language research, see Richard Gabriel&#039;s &lt;a href=&quot;http://dreamsongs.com/Essays.html&quot;&gt;work&lt;/a&gt;, especially &lt;a href=&quot;http://dreamsongs.com/Files/Incommensurability.pdf&quot;&gt;
The Structure of a Programming Language Revolution&lt;/a&gt; (2012) and &lt;a href=&quot;http://dreamsongs.com/Files/WritersWorkshops.pdf&quot;&gt;Writers’ Workshops As Scientific Methodology&lt;/a&gt; (?)), Thomas Petricek&#039;s &lt;a href=&quot;http://tomasp.net/academic/&quot;&gt;work&lt;/a&gt;, especially &lt;a href=&quot;http://tomasp.net/academic/papers/against-types/&quot;&gt;Against a Universal Definition of &#039;Type&#039;&lt;/a&gt; (2015) and &lt;a href=&quot;http://tomasp.net/academic/drafts/unthinkable/unthinkable-ppig.pdf&quot;&gt;Programming language theory Thinking the unthinkable&lt;/a&gt; (2016)), and Jonathan Edwards&#039; blog: &lt;a href=&quot;http://alarmingdevelopment.org/&quot;&gt;Alarming Development&lt;/a&gt;.&lt;/p&gt;

&lt;p &gt;For programs of events of similar inspiration in the past, you may be interested in the Future of Programming workshops: &lt;a href=&quot;http://www.future-programming.org/2014/program.html&quot;&gt;program of 2014&lt;/a&gt;, &lt;a href=&quot;http://www.future-programming.org/2015/programSL.html&quot;&gt;program of September 2015&lt;/a&gt;, &lt;a href=&quot;http://www.future-programming.org/2015/programSPLASH.html&quot;&gt;program of October 2015&lt;/a&gt;. Other events that are somewhat similar in spirit -- but maybe less radical in content -- are &lt;a href=&quot;http://onward-conference.org/&quot;&gt;Onward!&lt;/a&gt;, &lt;a href=&quot;2015.splashcon.org/track/nool2015&quot;&gt;NOOL&lt;/a&gt; and &lt;a href=&quot;http://popl16.sigplan.org/track/OBT-2016-talks&quot;&gt;OBT&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/4">Critiques</category>
 <pubDate>Wed, 23 Nov 2016 16:20:16 +0000</pubDate>
</item>
<item>
 <title>Cakes, Custard, and Category Theory</title>
 <link>http://lambda-the-ultimate.org/node/5200</link>
 <description>&lt;p &gt;&lt;A href=&quot;http://www.eugeniacheng.com/&quot;&gt;Eugenia Cheng&lt;/A&gt;&#039;s new popular coscience book is out, in the U.K. under the title &lt;A href=&quot;http://www.amazon.co.uk/Cakes-Custard-Category Theory-understanding/dp/1781252874/ref=sr_1_1?ie=UTF8&amp;amp;qid=1422244697&amp;amp;sr=8-1&amp;amp;keywords=eugenia+cheng&quot;&gt;Cakes, Custard and Category Theory: Easy recipes for understanding complex maths&lt;/A&gt;, and in the U.S. under the title &lt;A href=&quot;http://www.amazon.com/How-Bake-Pi-Exploration-Mathematics/dp/0465051715/ref=sr_1_1?ie=UTF8&amp;amp;qid=1419352340&amp;amp;sr=8-1keywords=eugenia+cheng&quot;&gt;How to Bake Pi: An Edible Exploration of the Mathematics of Mathematics&lt;/A&gt;:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Most people imagine maths is something like a slow cooker: very useful, but pretty limited in what it can do. Maths, though, isn&#039;t just a tool for solving a specific problem - and it&#039;s definitely not something to be afraid of. Whether you&#039;re a maths glutton or have forgotten how long division works (or never really knew in the first place), the chances are you&#039;ve missed what really makes maths exciting. Calling on a baker&#039;s dozen of entertaining, puzzling examples and mathematically illuminating culinary analogies - including chocolate brownies, iterated Battenberg cakes, sandwich sandwiches, Yorkshire puddings and Möbius bagels - brilliant young academic and mathematical crusader Eugenia Cheng is here to tell us why we should all love maths.&lt;/p&gt;
&lt;p &gt;From simple numeracy to category theory (&#039;the mathematics of mathematics&#039;), Cheng takes us through the joys of the mathematical world. Packed with recipes, puzzles to surprise and delight even the innumerate, Cake, Custard &amp;amp; Category Theory will whet the appetite of maths whizzes and arithmophobes alike. (Not to mention aspiring cooks: did you know you can use that slow cooker to make clotted cream?) This is maths at its absolute tastiest.&lt;br &gt;
&lt;/BLOCKQUOTE&gt;&lt;/p&gt;
&lt;p &gt;Cheng, one of &lt;A href=&quot;https://www.youtube.com/user/TheCatsters&quot;&gt;the Catsters&lt;/A&gt;, gives a guided tour of mathematical thinking and research activities, and through the core philosophy underlying category theory. This is the kind of book you can give to your grandma and grandpa so they can boast to their friends what her grandchildren are doing (and bake you a nice dessert when you come and visit :) ). A pleasant weekend reading.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <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/6">General</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>Fri, 17 Jul 2015 16:47:21 +0000</pubDate>
</item>
<item>
 <title>The Three Laws of Programming Language Design</title>
 <link>http://lambda-the-ultimate.org/node/4754</link>
 <description>&lt;p &gt;Joe Armstrong(of Erlang) while reviewing Elixir(Ruby like language that compiles to Erlang Virtual Machine) states his &lt;a href=&quot;http://joearms.github.io/2013/05/31/a-week-with-elixir.html&quot;&gt;Three Laws of Programming Language Design&lt;/a&gt;.&lt;/p&gt;
&lt;ul &gt;
&lt;li &gt;What you get right nobody mentions.&lt;/li&gt;
&lt;li &gt;What you get wrong, people bitch about.&lt;/li&gt;
&lt;li &gt;What is difficult to understand you have to explain to people over and over again.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote &gt;&lt;p &gt;
Some language get some things so right that nobody ever bothers to mention them, they are right, they are beautiful, they are easy to understand.&lt;/p&gt;
&lt;p &gt;The wrong stuff is a bitch. You boobed, but you are forgiven if the good stuff outweighs the bad. This is the stuff you want to remove later, but you canâ€™t because of backwards compatibility and some nitwit has written a zillion lines of code using the all the bad stuff.&lt;/p&gt;
&lt;p &gt;The difficult to understand stuff is a real bummer. You have to explain it over and over again until youâ€™re sick, and some people never get it, you have to write hundred of mails and thousands of words explaining over and over again why this stuff means and why it so. For a language designer, or author, this is a pain in the bottom.
&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/4">Critiques</category>
 <pubDate>Fri, 31 May 2013 13:26:53 +0000</pubDate>
</item>
<item>
 <title>Oleg: An argument against call/cc </title>
 <link>http://lambda-the-ultimate.org/node/4586</link>
 <description>&lt;p &gt;Oleg provides various &lt;a href=&quot;http://okmij.org/ftp/continuations/against-callcc.html&quot;&gt;arguments against including call/cc as a language feature&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
We argue against call/cc as a core language feature, as the distinguished control operation to implement natively relegating all others to libraries. The primitive call/cc is a bad abstraction -- in various meanings of `bad&#039; shown below, -- and its capture of the continuation of the whole program is not practically useful. The only reward for the hard work to capture the whole continuation efficiently is more hard work to get around the capture of the whole continuation. Both the users and the implementors are better served with a set of well-chosen control primitives of various degrees of generality with well thought-out interactions.
&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/4">Critiques</category>
 <pubDate>Sun, 12 Aug 2012 03:57:13 +0000</pubDate>
</item>
<item>
 <title>Google&#039;s &quot;The Future of JavaScript&quot; internal memo leaked</title>
 <link>http://lambda-the-ultimate.org/node/4355</link>
 <description>&lt;p &gt;Note: Saw this on Sunday (9/11), but waited for it to go viral before posting it here.&lt;/p&gt;
&lt;p &gt;A leaked Google memo, &lt;a href=&quot;http://pastebin.com/NUMTTrKj&quot;&gt;The Future of JavaScript&lt;/a&gt;, from November 2010 is being circulated around the Internet, outlining Google&#039;s supposed technical strategy for Web programming languages.  Google plans to improve JavaScript, while also creating a competitor to JavaScript, Dart (ex-Dash), that it hopes will be the new &lt;em &gt;lingua franca&lt;/em&gt; of the Web.&lt;/p&gt;
&lt;p &gt;Ironically, I saw this leak via a Google Alert keyword search.  It has propagated to at least &lt;a href=&quot;https://gist.github.com/1208618&quot;&gt;Github&lt;/a&gt;, the Dzone social network, &lt;em &gt;The Register&lt;/em&gt; and &lt;em &gt;Information Week&lt;/em&gt; since Sunday.&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/31">Javascript</category>
 <pubDate>Thu, 15 Sep 2011 14:25:34 +0000</pubDate>
</item>
<item>
 <title>The Trouble with Erlang</title>
 <link>http://lambda-the-ultimate.org/node/4350</link>
 <description>&lt;p &gt;Tony Arcieri, author of &lt;a href=&quot;http://reia-lang.org/&quot;&gt;the Reia Ruby-like language for the Erlang BEAM platform&lt;/a&gt;, wrote a piece in July, &lt;a href=&quot;http://www.unlimitednovelty.com/2011/07/trouble-with-erlang-or-erlang-is-ghetto.html&quot;&gt;The Trouble with Erlang (or Erlang is a ghetto)&lt;/a&gt;, bringing together a long laundry list of complaints about Erlang and the concepts behind it, and arguing at the end that Clojure now provides a better basis for parallel programming in practice.&lt;/p&gt;
&lt;p &gt;While the complaints include many points about syntax, data types, and the like, the heart of the critique is two-fold: first, that Erlang has terrible problems managing memory and does not scale as advertised, and that these failures partly follow from &quot;Erlang hat[ing] state. It especially hates shared state.&quot;  He points to the Goetz and Click argument in &lt;a href=&quot;http://www.infoq.com/news/2010/09/javaone2010-concurrency&quot;&gt;Concurrency Revolution From a Hardware Perspective (2010)&lt;/a&gt; that local state is compatible with the Actors model.  He further argues that SSA as it is used in Erlang is less safe than local state.&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/16">Parallel/Distributed</category>
 <pubDate>Fri, 09 Sep 2011 08:50:12 +0000</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 15:47:05 +0000</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 06:22:37 +0000</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 17:19:39 +0000</pubDate>
</item>
<item>
 <title>Joe Duffy: A (brief) retrospective on transactional memory</title>
 <link>http://lambda-the-ultimate.org/node/4069</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.bluebytesoftware.com/blog/2010/01/03/ABriefRetrospectiveOnTransactionalMemory.aspx&quot;&gt;A (brief) retrospective on transactional memory&lt;/a&gt;, by Joe Duffy, January 3rd, 2010.  Although this is a blog post, don&#039;t expect to read it all on your lunch break...&lt;/p&gt;
&lt;p &gt;The STM.NET incubator project was &lt;a href=&quot;http://blogs.msdn.com/b/stmteam/archive/2010/05/12/stm-net-devlab-incubation-complete.aspx&quot;&gt;canceled May 11, 2010&lt;/a&gt;, after beginning public life &lt;a href=&quot;http://blogs.msdn.com/b/somasegar/archive/2009/07/27/stm-net-in-devlabs.aspx&quot;&gt;July 27, 2009 at DevLabs&lt;/a&gt;.  In this blog post, written 4 months prior to its cancellation, Joe Duffy discusses the practical engineering challenges around implementing Software Transactional Memory in .NET.  Note: He starts off with a disclaimer that &lt;em &gt;he was not engaged in the STM.NET project past its initial working group phase&lt;/em&gt;.&lt;/p&gt;
&lt;p &gt;In short, Joe argues, &quot;Throughout, it became abundantly clear that TM, much like generics, was a systemic and platform-wide technology shift.  It didnâ€™t require type theory, but the road ahead sure wasnâ€™t going to be easy.&quot;  The whole blog post deals with how many implementation challenges platform-wide support for STM would be in .NET, including what options were considered.  He does not mention Maurice Herlihy&#039;s SXM library approach, but refers to Tim Harris&#039;s work several times.&lt;/p&gt;
&lt;p &gt;There was plenty here that surprised me, especially when you compare Concurrent Haskell&#039;s STM implementation to STM.NET design decisions and interesting debates the team had.  In Concurrent Haskell, issues Joe raises, like making Console.WriteLine transactional, are delegated to the type system by the very nature of the TVar monad, preventing programmers from writing such wishywashy code.  To be honest, this is why I didn&#039;t understand what Joe meant by &quot;it didn&#039;t require type theory&quot; gambit, since some of the design concerns are mediated in Concurrent Haskell via type theory.  On the other hand, based on the pragmatics Joe discusses, and the &lt;em &gt;platform-wide&lt;/em&gt; integration with the CLR they were shooting for, reminds me of &lt;a href=&quot;http://lambda-the-ultimate.org/node/2990&quot;&gt;The Transactional Memory / Garbage Collection Analogy&lt;/a&gt;.  Joe also wrote a briefer follow-up post, &lt;a href=&quot;http://www.bluebytesoftware.com/blog/2010/05/17/MoreThoughtsOnTransactionalMemory.aspx&quot;&gt;More thoughts on transactional memory&lt;/a&gt;, where he talks more about Barbara Liskov&#039;s Argus.&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/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/16">Parallel/Distributed</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/17">Software Engineering</category>
 <pubDate>Tue, 07 Sep 2010 17:05:44 +0000</pubDate>
</item>
<item>
 <title>Sapir-Whorf 70 years on</title>
 <link>http://lambda-the-ultimate.org/node/4062</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Linguistic_relativity#Programming_languages&quot;&gt;Many a people&lt;/a&gt; have looked at Programming Lanugages through the &lt;a href=&quot;http://en.wikipedia.org/wiki/Linguistic_relativity&quot;&gt;Sapir-Whorf&lt;/a&gt; lens so it&#039;s not uncommon to find people making PL claims using that hypothesis. Also not surprisingly, the topic keeps &lt;a href=&quot;http://lambda-the-ultimate.org/search/node/sapir+whorf&quot;&gt;re-appearing here on LtU&lt;/a&gt;. &lt;/p&gt;
&lt;p &gt;This week&#039;s NY Times magazine has an article titled &lt;a href=&quot;http://www.nytimes.com/2010/08/29/magazine/29language-t.html&quot;&gt;Does Your Language Shape How You Think?&lt;/a&gt; by &lt;a href=&quot;http://www.guydeutscher.org/&quot;&gt;Guy Deutscher&lt;/a&gt; which starts as a retrospective on Whorf but then goes into what new research has shown.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Some 50 years ago, the renowned linguist &lt;a href=&quot;http://en.wikipedia.org/wiki/Roman_Jakobson&quot;&gt;Roman Jakobson&lt;/a&gt; pointed out a crucial fact about differences between languages in a pithy maxim: &lt;em &gt;â€œLanguages differ essentially in what they must convey and not in what they may convey.â€&lt;/em&gt; This maxim offers us the key to unlocking the real force of the mother tongue: if different languages influence our minds in different ways, this is not because of what our language allows us to think but rather because of what it habitually obliges us to think about.&lt;/p&gt;
&lt;p &gt;...&lt;/p&gt;
&lt;p &gt;When your language routinely obliges you to specify certain types of information, it forces you to be attentive to certain details in the world and to certain aspects of experience that speakers of other languages may not be required to think about all the time. And since such habits of speech are cultivated from the earliest age, it is only natural that they can settle into habits of mind that go beyond language itself, affecting your experiences, perceptions, associations, feelings, memories and orientation in the world.
&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/6">General</category>
 <pubDate>Sat, 28 Aug 2010 06:35:20 +0000</pubDate>
</item>
</channel>
</rss>
