The other day, my friend Ned's cousin asked Ned what he thought was the best first language for new programmers. The cousin didn't have much computing experience, but at 15 years old the future was looming fast, and he thought programming seemed interesting and that it might be something he could get into.
"So naturally," Ned explained, "I told him to learn Scheme."
[ What's your take on the best first programming language? Join our discussion. | Also on InfoWorld: "My kid could code that." | Cut straight to the key news for technology development and IT management with our once-a-day summary of the top tech news. Subscribe to the InfoWorld Daily newsletter. ]
Huh?! Scheme? When Ned first opened up the can o' worms of "which programming language is the best," it seemed like a fine opportunity for an argument, Monty Python style. He'd say Perl, someone else would say C++, a third would counter with Visual Basic, and from there we'd move right on to throwing rolls and upending furniture. But Scheme? This was a bait-and-switch I hadn't expected.
Scheme: The Latin of programming?
Mind you, Ned isn't alone. Lots of prominent universities include Scheme in their first-year computer science curriculum. Many require it. In fact, I'd venture that if you learned nothing but C++ or Java in your college coursework, you probably went to a bad school; if you learned Scheme, chances are you went to a good one.
Scheme is a dialect of Lisp, one of the oldest programming languages still in use. It offers minimal syntax and very few operators. Equally important, Scheme supports the functional programming paradigm, which means it treats programs as the expression of mathematical functions. Any computing problem can be expressed using a unique mathematical notation called the lambda calculus; in a sense, Scheme is merely a parser for programs expressed in lambda calculus.