The other day my parents got a new fridge. I took some photos of the switch, and got these. My brother decided to have a Stonyfield Oikos Greek yogurt, which had gone bad, unrelated to the refrigerator stuff.
“There’s honey in this!”

“Something’s not right here…”
“I think this yogurt is bad.”
My mom didn’t believe him at first. “Give me a taste!” she shouted.
It really was bad.
Hmmpf.
Tim Sweeney posts occasionally on Lambda the Ultimate, a fine blog for programming language aficionados. I admire him for his company’s success with video game engines, and for his understanding of programming languages. He really knows his stuff.
He wrote a few weeks ago in response to a LtU thread:
A while ago, learning Haskell greatly helped me (a C++ programmer) to distinguish between aspects of programming which are fundamentally hard, and aspects which are only hard because of C++’s limitations. But learning logic programming — at the implementation level as much as the language level — makes me realize that even Haskell has shortcomings in expressiveness.
His comment on C++’s limitations and the fundamentally hard parts of programming particularly resonated with me, as I’ve been working mostly in C++, making heavy use of template metaprogramming in recent months. It’s a very… baroque craft. For the sort of work I am doing (roughly, self-optimizing libraries), a reasonable metaprogramming system would be a huge boon; C++ templates and preprocessor hacks are no substitute.
At POPL 2006 Sweeney gave a presentation on where he thinks programming language technology is going: The Next Mainstream Programming Language. He predicts a rise in purely functional style and software transactional memory (both for sake of correct concurrency), improved type systems (eliminate null pointer errors), and lightweight dependent types (to eliminate the majority of array indexing bugs). A bit old now, but check it out; it’s fascinating.