28.9.12

Brian Goetz on the future of Java


Brian Goetz, author of Java Concurrency in Practice, is leading Project Lambda, Oracle's effort to add lambda expressions to Java.   Below is an excerpt from comments he posted last year on the design.
Oracle's position is that Java must evolve -- carefully, of course -- in order to remain competitive. This is, of course, a difficult balancing act. It is my belief that the best direction for evolving Java is to encourage a more functional style of programming. The role of Lambda is primarily to support the development and consumption of more functional-like libraries; I've offered examples such as filter-map-reduce to illustrate this direction. There is plenty of evidence in the ecosystem to support the hypothesis that, if given the tools to do so easily, object-oriented programmers are ready to embrace functional techniques (such as immutability) and work them into an object-oriented view of the world, and will write better, less error-prone code as a result. Simply put, we believe the best thing we can do for Java developers is to give them a gentle push towards a more functional style of programming. We're not going to turn Java into Haskell, nor even into Scala. But the direction is clear.
Thanks to Maurice Naftalin for pointing me to these comments, in response to some questions I raised regarding his FAQ.

27.9.12

Lambda for Java: the FAQ

Java 8 will, at long last, contain lambda expressions. Maurice Naftalin, my co-author on Java Generics and Collections, has started a Lambda FAQ.  Have a look, your comments may feed into the 2nd edition of JGaC.

24.9.12

ICFP 2012

Thanks to the organisers of ICFP 2012, and to Malcolm Wallace and his assistants for videoing and posting talks rapidly. For me, the emergent theme was the rise of DSLs.  Kunle Olukotun's keynote (video above) argued that DSLs are reaching maturity as a technology for programming parallel and heterogeneous hardware (although less was said on the equally important question of distributed systems).  Lee Pike et al's Experience report: a do-it-yourself high-assurance compiler presented a case study of a real-life DSL used for monitoring safety on aircraft, and a series of techniques to implement DSL's at low cost while increasing confidence that the implementation is correct, and another whole session was devoted to techniques for implementing DSELs (1 2 3).  Olivira and Cook's Functional programming with structured graphs applies PHOAS to representing cyclic structures.  Nothing to do with DSL's, below is a link to the video of my talk, Propositions as Sessions.

27.8.12

CUFP tutorials announced: Haskell (by Jeremy Gibbons and Simon Marlow), F# (by Tomas Petricek), Scala, and more!

24.8.12

Faith, Evolution, and Programming Languages

I just received the following,

Hi Philip,
Your presentation Faith, Evolution, and Programming Languages, published on Aug 9, 2012 and recorded at QCon London 2012 has generated 10,198 page views so far. Congratulations!  Roxan Bacila, Community Contributions Facilitator. 

22.8.12

Star Ratings

Handy information for the Edinburgh Festivals, from XKCD.  I give 4 1/2 stars to Coalition, and four stars to Tubular Bells for Two, Blues!, and The Bongo Club.

14.8.12

Is it Anti-Semitic to call it Apartheid?

Jonathan Ben-Artzi, a mathematician at Cambridge University, refusenik, and nephew of Israeli Prime Minister Benjamin Netanyahu, argues in an interview in favour of classifying Israeli attitudes towards Palestinians as apartheid.
You studied at Brown University. I’m sure you’re familiar with our political discourse here in the United States. Comparing Israeli policies toward the Palestinians with apartheid in South Africa inevitably invites charges of anti-Semitism and extremism.

It has always seemed like a correct analogy to me, in that Israel is facing demographic pressures, and has set up a quasi state with no real sovereignty. They’re pretending that that quasi state is in fact independent. In apartheid South Africa these were called Bantustans.
[Update: My thanks to Ohad Kammar for pointing out I misread the above: the second paragraph is not Ben-Artzi's answer, but part of the interviewer's question, which makes the view expressed of considerably less interest. My apologies for the error.]

26.7.12

How to write good

Useful rules from Frank L. Visco and William Safire.  Spotted via a post from Perdita Stevens.

16.7.12

The truth wears off

The truth wears off, Jonah Lehrer, The New Yorker, 13 December 2010.  Recommended by Amer Diwan in his keynote at PLDI 2012.  It's hard to establish an effect by rigorous experiment.  This article describes cases, mostly medical, where a demonstrated effect becomes harder to replicate as time passes.

Lambda Calculus, Then and Now, by Dana Scott

Last May, I was honoured to be invited to speak at Princeton's Turing Centennial Celebration.  My talk was scheduled between Dana Scott and Leslie Valiant.  Dana's talk was not an easy act to follow.  The talk summarises the history of lambda calculus from 1930 to the present, a resource for future scholars.  I'm pleased that a version is now available.  Dana asked me to indicate he would be pleased to receive any suggestions or criticisms.