Welcome to the fourth issue of The Left Fold, a weekly programming article digest.
Programming Languages
Go, an experimental language from Google: Rob Pike, Ken Thompson, and other Google employees released "a systems programming language" designed to be "expressive, concurrent, [and] garbage-collected". (reddit, news.yc, LtU, slashdot).
More details and select reactions:
An hour-long talk and slides.
A comparison of Go with Brand X, a very similar, existing programming language. Search for "And the winner is" for a summary and revelation of Brand X's surprising identity. (expanded from this mailing list post, reddit, news.yc)
The talk claims performance "typically within 10-20% of C". Independent benchmarks of the more complete of two implementations may be found at the Computer Language Benchmarks Game (reddit). A Stackless Python user replicated the concurrency demo in the talk (reddit, news.yc).
Unfortunately, the Go authors forgot to Google the name beforehand (little interesting in the bug comments). The author of Go! has asked them to change the name.
Clojure: upcoming polymorphic primitives: Discussion of the motivation behind two new features of the language, datatypes and protocols, and how they help polymorphism and decouple Clojure from Java. Clojure experience helpful.
Can Java Be Saved?: advocates for several changes to Java with examples.
Programming Language Implementations
invokedynamic on the JVM (pdf): description of the implementation of an important building block for dynamic languages. (introduction, Lang .NET 2009 talk by the author)
PyPy Düsseldorf Sprint Report: writeup of improvements to inlining, guard chains, and exceptions.
An LLVM backend for GHC (pdf): design, implementation, and thoughts. (reddit, news.yc)
Development
Branch coverage: an improved measure of code coverage using branches.
Gnote vs Tomboy memory showdown with smem: smem is a tool designed to give more useful measurements of memory usage than resident set size. This article give motivation and an example. (reddit)
Extreme Agility at Facebook: very high-level overview of how Facebook frequently pushes changes with little downtime and QA. (news.yc)
Algorithms
- Clearance-based Pathfinding and Hierarchical Annotated A* Search: with examples from real-time strategy games featuring differently-sized units.
Advocacy
Erlang at Facebook (pdf): description of how it's used and what they like.
Haskell is beautiful in practice: display of what one programmer likes about Haskell in the context of an RPC implementation. (news.yc)
Philosophizing about Programming; or "Why I'm learning to love functional programming": advocates for functional programming based on experience maintaining large software projects (reddit)
Documentation
- Writing great documentation: an ongoing series on technical documentation.
Fun
- cdecl: a web interface to "the C gibberish to English translator"
The Left Fold
By popular demand, an email subscription to The Left Fold is now available. See the icon (source) at the top-right of this page.
Starting this week I am omitting links to discussions on other sites that I did not find informative.