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.
Why Clojure?: An Interview with Rich Hickey
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
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
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
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?
DSLs rule! Now if only they weren’t so unruly.
Shady Illuminations: Is Google’s New Language a Goer?
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.
Paolo plumbs the depths of nothingness to show the power of metaprogramming in Ruby.
Better CSS with Sass: Make Your Website Stylesheets Sassy
Brian shows off some of the magic of Sass, a DSL for generating stylesheets.
The Bruce Tate Interview How Do You Dive Deeply into Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell in One Book?
Behind the scenes with the author of Seven Languages in Seven Weeks.
Agile Microsoft: An Introduction to ASP.NET MVC
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
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
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
Improve your tests with custom expectations
Page Objects in Python: Automating Page Checking without Brittleness
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
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
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
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.
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
Why you should start using Bundler to manage your Ruby gems right now.
New Series: Everyday JRuby Part 1: Writing a Plugin
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
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
Wherein Ian creates a simple game and then shows you several ways to deploy it.
Punk Rock Languages: A Polemic
In an era of virtual machines and managed environments, C is the original Punk Rock Language.