raganwald
Thursday, August 12, 2004
  The 59th Street Bridge Programming Language
Yesterday I learned a new programming language, Groovy. Well, I wrote a simple program in Groovy. I need to do much more with it before I learn to "think in Groovy."

This is important. There's a huge benefit to learning a new programming language, so much so that The Pragramatic Programmers recommend learning a new language every year. Learning a new programming language can be difficult.

Let's be precise: learning to write working programs in a new language is relatively easy, but the first impulse is to think in the style of the languages you already know and write programs using the syntax of the new language. Learning to think in the new language, to write programs in the style of the new language, now that's hard.

If we were talking about human languages, we would be talking about learning to speak a new language idiomatically. It's the idioms you want to learn, not the syntax.

As it is, Groovy has some features that make idioms I already know much, much easier. First-class closures alone make Groovy more expressive than Java (I was going to say "more powerful than," but I want to avoid controversy).

That being said, I want more than just convenience out of a new programming language. I already can compile Lisp programs into bytecodes for the JVM, and I can write my own macros for any Groovy feature I like. What I want are the new idioms.

For example, GPath isn't a feature, it's a way of using closures and Groovy's flexible syntax to make collection expressions that look remarkably declarative (GPath was inspired by XPath, of course). I'm hoping that as I learn Groovy, I learn new idioms.
 


Did you enjoy this post? You can find more like it at weblog.raganwald.com. Better yet, subscribe in a reader, and you'll get my essays and links of interest to software developers, with no extra charge for delivery! Did I mention that I love coffee? If you would like to “fuel” my writing, please consider buying me a large black coffee, no sugar, for just $1.47. Thanks!
Comments on “The 59th Street Bridge Programming Language:
Post a Comment




<< Home
Reg Braithwaite
Selected portfolio items

What, Where & When
meshU, Toronto, May 20 / RubyFringe, Toronto, July 18–20

Share
ick.rubyforge.org / andand.rubyforge.org / unfold.rb / string_to_proc.rb / dsl_and_let.rb / comprehension.rb / lazy_lists.rb

Beauty
IS-STRICTLY-EQUIVALENT-TO-A / Spaghetti-Western Coding / Golf is a good program spoiled / Programming conventions as signals / Not all functions should be object methods / Abbreviation, Accidental Complexity, and Abstraction

The Not So Big Software Design / Writing programs for people to read / Why Why Functional Programming Matters Matters / But Y would I want to do a thing like this? / Economizing can be penny-wise and pound foolish

Work
The single most important thing you must do to improve your programming career / The Naïve Approach to Hiring People / No Disrespect / Certification? Bring It On! / Take control of your interview / Three tips for getting a job through a recruiter / My favourite interview question

Jobs

Management
Exception Handling in Software Development / What if powerful languages and idioms only work for small teams? / Bricks / Which theory fits the evidence? / Still failing, still learning / What I’ve learned from failure

Notation
(1..100).inject(&:+) / The challenge of teaching yourself a programming language / The significance of the meta-circular interpreter / I’ll take Static Typing for $800, Alex

Code
Block-Structured Javascript / Haskell, Ruby and Infinity / Closures and Higher-Order Functions

Opinion
Why Apple is more expensive than Amazon / Why we are the biggest obstacles to our own growth / Is software the documentation of business process mistakes? / We have lost control of the apparatus / What I’ve Learned From Sales I, II, III

Whimsey
Billy Martin’s Technique for Managing his Manager / Three stories about The Tao / Programming Language Stories / Why You Need a Degree to Work For BigCo