The Bad Yogurt

  • June 26, 2009 01:14

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.

I Think I'll Have a Yogurt“There’s honey in this!”

Stirring

First Taste“Something’s not right here…”

This Yogurt is Really Bad“I think this yogurt is bad.”

Let Me TryMy mom didn’t believe him at first.  “Give me a taste!” she shouted.

It Really Is Bad!It really was bad.

DissatisfiedHmmpf.

Tim Sweeney on Programming Languages

  • June 25, 2009 02:16

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.