Pretty image
You should learn a new language this year. Maybe we can help.

Somewhat surprisingly, C++ was the subject of a moderately interesting discussion recently on our Yahoo group. The topic was “What’s up with C++ (books)?” and the poster pointed out that there are lots of people programming in C++ and there are book-worthy things happening in the C++ world, like the prominence of the Boost libraries, but that production of new books on C++ topics practically stopped about six years ago.

You probably aren’t surprised at this. As our own Dave Thomas said in the discussion, we “don’t we have C++ books under development... [b]ecause no one asks for them, and we’re here to serve the readers.” But if lots of people are programming in C++ and there are developments in C++-related tools that would justify new books, why aren’t those programmers asking for those books?

As Jared Richardson points out, some programmers read books, go to conferences, read blogs, and stay up to date on developments in their field, while some programmers tend to get their knowledge by talking to others on their team and mostly just spend their time grinding out code. C++ programmers, he suggests, are in the second camp.

I’m guessing that you’re in the first camp.

In The Pragmatic Programmer, Andy and Dave suggest as a goal that you learn at least one new language every year. Seeing how different languages encourage different approaches to the same problems will expand your own problem-solving bandwidth. Andy and Dave are talking there to the programmers in the first camp, so they’re talking to you. And I’m guessing that you already have that goal of learning a new language every year.

But real immersion in a new language is quite a plunge. If you want to dip your toe in the water before diving into the stream, we can help with that. The fact that every article of every issue of PragPub is available online for free means that we can facilitate your toe-dipping. The articles range from John Shade’s lightweight take on Google’s Go language and a quiz in which you are asked to identify languages based on snippets of code to serious discussions of languages from Clojure, Scala, Python, Ruby, and Objective C to HTML5, SASS, JavaScript, and CoffeeScript. Here, then, is a guide to every article on a programming language published in PragPub to date.

  • Why Clojure?: An Interview with Rich Hickey

    by Rich Hickey in PragPub July 2009

    Rich Hickey created Clojure, a modern dialect of Lisp that targets the JVM. In this PragPub interview, Rich explains what that means to you.

  • When Things Go Wrong: Clojure’s Exceptional Handling of Exceptions

    by Stuart Halloway in PragPub July 2009

    As Stuart demonstrates in this deep immersion in Clojure coding, one of Clojure’s strengths is how it shines when things go wrong.

  • The Quiz: This Month: A is for APL

    by Dave Thomas in PragPub July 2009

    A monthly diversion at least peripherally related to programming. You’ll find the solution here.

  • Writing an iPhone App: Thinking Different(ly) about the iPhone

    by Chris Adamson in PragPub August 2009

    Developing iPhone apps is in some ways remarkably like writing desktop apps—and in many ways jarringly different.

  • Language Workbenches: Is This the Era of the DSL?

    by Michael Swaine in PragPub October 2009

    DSLs rule! Now if only they weren’t so unruly.

  • Shady Illuminations: Is Google’s New Language a Goer?

    by John Shade in PragPub December 2009

    Google releases a new programming language and John Shade finds a bit of Python in it.

  • Much Ado About Nothing: Gazing into the Abyss of Ruby’s nil, amongst Null Objects, Ghost Methods, and Black Holes.

    by Paolo Perrotta in PragPub January 2010

    Paolo plumbs the depths of nothingness to show the power of metaprogramming in Ruby.

  • Better CSS with Sass: Make Your Website Stylesheets Sassy

    by Brian Hogan in PragPub February 2010

    Brian shows off some of the magic of Sass, a DSL for generating stylesheets.

  • JavaScript: It’s Not Just for Browsers Any More: Three Significant Events in 2009 Changed the JavaScript Landscape

    by Jason Huggins in PragPub March 2010

    Node.js is a toolkit for writing high-performance network servers in JavaScript. And it’s events all the way down.

  • The Bruce Tate Interview How Do You Dive Deeply into Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell in One Book?

    by Bruce Tate in PragPub May 2010

    Behind the scenes with the author of Seven Languages in Seven Weeks.

  • Agile Microsoft: An Introduction to ASP.NET MVC

    by Jonathan McCracken in PragPub June 2010

    Microsoft’s Model-View-Controller web presentation framework is being called “Rails for .NET.”

  • Why ASP.NET MVC?: An Interview with Phil Haack of Microsoft

    by Phil Haack in PragPub June 2010

    We chat with the Project Manager for the ASP.NET MVC project at Microsoft.

  • Not Quite New in iOS 4: Three New-to-You Features for iPhone Developers

    by Daniel Steinberg in PragPub July 2010

    Three unsung developer features of iOS 4 will make your life easier and change your code dramatically: blocks, gestures, and properties without ivars.

  • Great Expectations: Better Testing Through DSLs with Ruby and Scala

    by Paul Butcher in PragPub August 2010

    Improve your tests with custom expectations

  • Page Objects in Python: Automating Page Checking without Brittleness

    by Adam Goucher in PragPub August 2010

    The Page Object pattern is the key to implementing smart automated checks. Here’s how Python programmers can make use of it.

  • HTML5: Accessibility For All: Accessibility, Unobtrusiveness, and Progressive Enhancement with HTML5

    by Brian Hogan in PragPub October 2010

    One in every ten people in the world has some sort of disabiliy. That’s 650 million potential users of your software, and 650 million people you should think about when developing web sites.

  • Getting Clojure: Extending Java Classes Using Proxy

    by Gregg Williams in PragPub November 2010

    It’s incredibly easy to call Java code from Clojure, but who would have thought that modifying an existing Java library would be such uncharted territory? Gregg shares what he has learned.

  • Chad Fowler on Ruby: An Interview with a Ruby Pioneer

    by Chad Fowler in PragPub December 2010

    A legend in the Ruby community shares his recollections and insights and hopes, from the early days of Ruby enthusiasts to the future of Ruby on silicon and Ruby for phones.

  • What’s New in Ruby 1.9.2: If you’re not using it, you should be.

    by Dave Thomas in PragPub December 2010

    It’s been a long time coming, but we finally have a worthy successor to Ruby 1.8. Fast, fully featured, and fun, Ruby 1.9.2 should be your Ruby of choice.

  • Three Bundler Benefits: Bundler Gives You Pay-as-you-go Gem Management

    by Paolo Perrotta in PragPub December 2010

    Why you should start using Bundler to manage your Ruby gems right now.

  • New Series: Everyday JRuby Part 1: Writing a Plugin

    by Ian Dees in PragPub December 2010

    Wherein Ian begins a series of articles on using Ruby on the JVM to solve everyday problems.

  • Grokking Pattern Matching and List Comprehensions: Two Language Features that Rock

    by Bruce Tate in PragPub January 2011

    Bruce explores two powerful features of modern programming languages that can make your code more beautiful and you more productive.

  • Everyday JRuby Part 2: Sharing Your Software

    by Ian Dees in PragPub January 2011

    Wherein Ian creates a simple game and then shows you several ways to deploy it.

  • Punk Rock Languages: A Polemic

    by Chris Adamson in PragPub March 2011

    In an era of virtual machines and managed environments, C is the original Punk Rock Language.

  • A CoffeeScript Intervention: Five Things You Thought You Had to Live with in JavaScript

    by Trevor Burnham in PragPub May 2011

    Trevor takes us on a tour of some of the ways this hot new language improves on JavaScript.