Welcome to the seventh issue of The Left Fold, a weekly programming article digest. Submissions for future issues are solicited.
Craft
- Peter Seibel on Coders at Work: video of the author discussing trends observed while interviewing for the book. Topics include how to read code, the importance of altering black box code in an era dominated by libraries, and the surprising secret to becoming an expert debugger (hint: 24:30). Worth the hour running time.
Advocacy
Why I chose Common Lisp over Python, Ruby, and Clojure: language and libraries aren't changing too fast. (reddit)
Eleven Theses on Clojure: takeaway from a few days with the language. (reddit)
How a type system helps you write better code: enforced documentation and ease of refactoring.
Why Perl Lost It: reflection on why Perl no longer enjoys the prominence it used to. (reddit)
Why the 'J' in JRuby?: reflection on using the JVM as a target for Ruby.
Programming Languages
On understanding data abstraction, revisited: the difference between abstract data types and objects, and why it's important.
Why Object-Oriented Languages Need Tail Calls: to preserve object-oriented abstractions. (LtU)
Python's Moratorium: discussion by one of the authors of the proposal to freeze changes to Python's syntax and semantics.
JVM: tailcalls meet invokedynamic: discussion of the issues around implementing tail calls, especially with the new invokedynamic.
Miscellaneous
git: why you shouldn't fast-forward: it loses important information. (reddit)
Web form design guidelines: an eyetracking study: detailed look into the small details that make signup forms usable.