About

Welcome to Panela, Matt Harrison's take on mostly Open Source, Linux, Python, innovation in those areas, other buzzwords and Dick Proenneke. It comes complete with the illustrations as needed. Note the opinions expressed here are merely my opinions and not the opinions of my employer.

about Matt

Calendar

««Mar 2010»»
SMTWTFS
  123456
78910111213
14151617181920
21222324252627
28293031

Mailing List

My RSS Feeds








Of tomatoes and programming languages

posted 2008.09.03 Wed

When we purchased our house, there was a semi-neglected little garden in the back yard. It had been planted in the spring but pushed down in importance as the house was put up for sale during the summer. Having grown up with a three quarter acre garden that my grandfather worked on (my siblings and I being the slave labor), it was in my blood to continue the tradition of reaping and sowing.

It seems the staple of any garden is tomatoes. After tomatoes, perhaps squash or strawberries, but definitely tomatoes. I guess I have bad taste buds, because I never really liked tomatoes. I'd tolerate them in salads, but a plain tomato? Blech!

Well all that changed the first summer I took over the garden. Perhaps because my garden was a garden of weeds and tomatoes. I found out one of the reasons why tomatoes rule in the garden is because they are easy to grow. I also realized another reason, a fresh tomato tastes much better than anything you can buy (unless you have access to a good farmers market).

Belgian Pink hiding behind basil

I had read about "heirloom" tomatoes, and that if I was really serious about tomatoes, I'd grow heirlooms. What are heirlooms? In one sentence, they are the tomatoes your great-grandfather would have eaten. The basic story is that since the dawn of time favorite seeds were stored at the end of each season to plant next year. After WWII when transportation became more industrialized, and the nation less agricultural (ie people stopped growing their own food), tomatoes needed to be shipped. The problem is that the normal tomatoes weren't good for shipping, since they had delicate skins. So "hybrid" tomatoes were bred, that looked uniform, ripened at the same time (or better yet, ship green and ripen with gas), and had thick skin. Note that flavor/texture wasn't high on the priority list for these transportation friendly tomatoes.

Another interesting factoid I found out about (heirloom) tomatoes is that they come in all different shapes and colors. So I planted some yellow (Mr. Stripey), purple (Black Krim), and pink (German Johnson and Brandywine) tomatoes that were among the many found among the selection of hybrids at the local nursery.

Unripe Black Krim

This year, I planted the above along with an early tomato (Stupice) which I enjoyed in late June. I also planted 2 non-heirloom varieties, a Green Zebra (you guessed it, it's green) and Sun Gold (a very good orange cherry tomato), though I prefer purple Cherokee Cherries.

Why all this blabber about my garden? I'm getting there. In the past month or so, the garden has been going full bore. And I've had extra to share. I've brought caprese salads to dinner invitations. I've offered many tomatoes to friends and neighbors.

When presented with a rainbow of tomatoes, which tomato do the receivers taste or choose? The roundest and reddest. Bumps, non-uniform shape, greens, purples, even pinks scare them. Which is great for them, but I think they are missing out. You see, my favorite, Black Krim, is neither round nor red. Often the shoulders are a greenish tinge, and the shape is not consistent nor necessarily flattering to the untrained eye. Because the appearance looks different, these people never get to appreciate its wonderful slightly smoky, salty flavor. Or a yellow or green (ewww, green, would you eat it in a box?) with their citrus like almost fruity flavor. So a wonderful pink, purple, yellow or green tomato is passed over for more of the same old.

If they do happen to taste the Krim, they go back for seconds or comment about the wonderful flavor. (It happened Monday night at a Labor Day BBQ).

So what does this have to do with programming? After an aside, I'll get to that.

A few years ago, I was assigned to help a co-worker code a "term suggester" (think of it as a program that tells you what delicious tags to use). He was a TCLer, I was using Perl when able. Neither had an interest in learning the other's language. So we compromised on python. In 3 days, there was a prototype. We had fun. Neither of us looked back.

So back to my point. At the recent UTOSC, I gave an introduction to python. (Not my best talk, had about 10 slide left when time was up). Some of the feedback was that "I'm not sure I like the amount of energy they put into not just making their code look pretty, but also forcing users to make their code look pretty". You hear that a lot. But it is usually from someone who has never tried python, but the looks of enforced whitespace seem scary.

After prodding a little more as to what this statement meant, I got "Forcing people to do something like that seems to me as if the people in charge have decided that people will inherently write poor code unless forced to do otherwise."

I'm interpreting that as forced indentation has the appearance of a handcuff. Not that this handcuff is bad in anyway, but the badness is that you are being forced to use it. It appears wrong that you are forced here. Perhaps.

So now it's time for a bad analogy. Most python people never think about whitespace. Most people writing their first python programs, never think about it after the first week. It is a non issue. Perhaps on the outside, for people who have never tried it, it appears to look uncomfortable.

The same could be said about static typing (for java folk moving to a dynamic language). Perhaps you think you miss it. But after your productivity is up, and you test your code (you do test your code right?), you find the appearance of dynamic langauges isn't that bad.

(Possibly I'm biased. Just like we tend to favor our children, I think my tomatoes are the best. Note that I've also spent hours dumping manure into the garden, tiling, weeding, planting, staking, and pruning.)

Ripe and unripe Green Zebras

So I've had canned tomatoes, store bought tomatoes in the middle of winter, and vine ripened still warm (another thing that ruins tomatoes is refrigerating them) Black Krims. I'll take the slightly weird looking Krim. I've gotten over the looks of it long ago. Of course if other people enjoy other types of tomatoes, who am I to tell them what to eat. Especially if they are "fun" to eat. More power to them. At least they are getting their vegetables.

By the way Joseph (since I know you like to dabble in the kitchen), feel free to come up and get some tomatoes, my garden is very close to your work. ;)

tags:          

links: digg this    del.icio.us    reddit




1. Niki left...
2008.09.05 Fri 6:14 am

people can write goof or bad code as they wish. Python supports only good code (whistespace == block boundary).