find me on
 
twitter del.icio.us
linkedin flickr
goodreads flixster
facebook aim
dopplr stackoverflow
tweets
 
del.icio.us
 
recent posts
 
history
 
March 2010
M T W T F S S
« Feb    
1234567
891011121314
15161718192021
22232425262728
293031  
 
jason.prado (@) gmail.com real tangible
 
Programming is like wishing on a genie
 

I’m reading Guy Steele’s interview in Coders at Work, and I found one of his analogies to be pretty neat:

And if you look at the fairy tales, people want to be able to just think in their minds what they want, wave their hands, and it happens. And of course the fairy tales are full of cautionary tales where you forgot to cover the edge case and then something bad happens.

As a pretty accurate real world example, he offers:

…suppose I were to tell my smart computer, “OK, I’ve got this address book and I want the addresses to always be in sorted order,” and it responds by throwing away everything but the first entry. Now the address book is sorted. But that’s not what you wanted.

Yeah, that’s how programming feels. I remember running into situations exactly like that when programming in Epilog and when trying to annotate code to pass through a static analysis tool. Those problems made me think that the logical/declarative paradigm is just not cut out for being written by humans, whereas functional and certainly imperative models of computation are actually more intuitive, despite their complexity.

I’m not sure Steele would draw the same conclusion, but his list of more than a dozen languages he has worked in seriously does not include Prolog.

Summer Reading List
 

With summer here it seems I have tons more time to read and get things done. It also helps that Silverlight 3 shipped and work doesn’t quite take up all my time and energy. This is that I’ve been reading/plan to read:

Read:

  • The Areas of My Expertise
  • Me Talk Pretty One Day
  • The Yiddish Policemen’s Union
  • Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series)

To read:

  • Starship Troopers
  • Stranger in a Strange Land
  • Beginning iPhone 3 Development: Exploring the iPhone SDK
  • More Information Than You Require
  • A Model World
  • House of Leaves
  • McSweeney’s Thrilling Tales

Fowler’s book on refactoring is the greatest thing I’ve ever read; I highly recommend it if you do the “programming” of any kind. Also, Chabon is quickly becoming my favorite author. Kavalier and Klay was excellent, and The Yiddish Policemen’s Union was neat, but my favorite works by him are his short stories. Especially Ocean Avenue; it’s pretty much “the contemporary, quotidian, plotless, moment-of-truth revelatory story” that Chabon derides, but it is hilarious and touching and brilliant. I look forward to reading his The Martian Agent this summer as well.

Rabbit at Rest
 

A few weeks ago I finished the Rabbit novels by John Updike. I’d started reading them summer after freshman year and I’ve had volumes 3 and 4 on my bookshelf for almost two years now.

I don’t mean to write a review, but I want to mention that Rabbit at Rest might be the best book I’ve ever read. It capstoned the series so perfectly. I was amazed at how much new and unexpected it brought to the series while staying perfectly true to the characters Updike created decades earlier. It also did a great job of depicting a changing America and one middle American’s place in it. I must admit that much of my familiarity with American history over the past few decades comes from reading Updike.

The part of the series that will always stick with me the most, though, is Janice’s frustration over seeing Rabbit change from the young hero, destined for great things, to just another mediocre commoner. Each step of Rabbit’s degradation resulted from his merely making the easiest choice he could, and the reader see where that road inevitably ends: mediocrity.

Since finishing Rabbit I’ve read The Legend of Colton H. Bryant, The Road, and now I’m on The Kite Runner. I could seriously, seriously use an uplifting read if anyone has any recommendations.