Saturday, February 26, 2005

[geek][politics] OOT: Object-Oriented Thinking (or, "The Secret Languages of Code")

Okay, I lied. Sorta. This'll be geek and politics, in one entry - and I'm not even going to be discussing Open Source or Intellectual Property, or PATRIOT Act-enabled snooping, or the hiring of Gator's CPO by Homeland Security. Nope. I'm going to be talking about language, metaphor, and a book. More specifically, this book: So, I'm reading this book, and so far (I'm about 2/3s through it), I'm feeling kind of conflicted about it. One of Dr. West's theses is that better software is produced by better programmers. Okay, I'll buy that. The other major premise of the book is that the way to get better programmers is to get them thinking about their code properly, ie. as objects. Now, this is probably old hat for anyone sticking it out this long, but for those of you playing along at home, object-oriented programming is about abstracting entities into code, encapsulating data within, well, an object. Your program then exposes those properties (data elements) and methods (actions) that you desire: a button on a program has a title - this is a property; the button responds to being clicked by a mouse - this is a method (yeah, I know - in most GUI environments, it raises an event or otherwise sends a message, but still...). The idea is that you consciously model a construct in code. West makes the case that a central element of object-oriented thinking is missing from most discussions (and implementations) of the topic: behavior. He would like to see objects discussed less in formalistic terms of methods and properties but rather how best do we model the desired behavior. So, what does this have to do with politics? Well, I was quite surprised to see West refer to Dr. George Lakoff's linguistic theories. Lakoff, for those unfamiliar with his work, has built his career around the concept (grossly oversimplified) that the language we use influences the way we think and the way we think influences the language we choose. Both the language we choose and the way we think in turn have the combined effect of defining what is 'real' to us. Lakoff is currently the darling of many intellectual Democrats and progressives - they talk about 'framing' and 'memes' and actively changing the debate. I take a somewhat less idealized view of things - George Luntz, the GOP pollster/strategist, is actively out there researching words and phrases that work instead of merely talking about it; the man coined the phrase 'death tax', by way of illustration. I wish I could take credit for this analogy, but someone I recently read observed that Lakoff is the theoretical physicist, but Luntz is the guy with the particle accelerator, smashing ideas together and seeing how words spin off. Personally, I'm of the opinion that we need more people like Luntz than Lakoff, but that's another entry for another day... Actually, West does more than refer to Lakoff - he posits that the proper way to think about objects is to think about their behavior - not about what specifically they do, but broadly what they need to do. He believes that we as programmers spend way too much time trying to build requirement upon requirement into our classes and objects, and that if we'd just back off, we'd design simpler objects which would in turn lead to better software. He lays out a compelling case, that changing our language will change the way we think about our software. In changing the way we think about our software, we will be fundamentally altering the landscape in which our software operates. He lays out a compelling vision, depicting a titanic class between formalist culture and relativist culture, technocrats and managers against geeks and artists. On an emotional level, I get it. At an intellectual level, I get it. The process he's describing, the methodology he proposes, totally gel with the way I've long thought about my programs. Even when I was writing largely procedural code, I was holding in my head metaphors that made it a lot easier for me to visualize what I was trying to achieve. West believes that by training developers to accept fuzziness and chaos, to embrace uncertainty and relativism, to adopt an almost Zen-like approach to software-by-metaphor, better software will come about. Here is where I think the book falls short: I want to believe it (really, really, really). So much of it meshes so well with my own outlook, and the density of supporting material is astounding. But overall, I think the tone is too messianic to be persuasive to anyone who hasn't already been sipping at the Kool Aid. Another problem with the book is the vocabulary (and, to a degree, the density of the supporting material). You can tell this book was written by an academic - for instance, I've never seen another programming book use the word 'hermeneutics' or make reference to Heidegger. Philosophy, yes. Programming, no. I work with a recently-naturalized Korean American - he won't make it past the introduction of this book. I work with a well-educated and well-read but somewhat conservative programmer - he won't make it past the first chapter because of the almost mystical fervor with which Dr. West approaches this topic. Reading this book has shown me places where I haven't been writing 'true' object-oriented code. Some of that is the nature of working with a strongly-typed language, but much of it has been instances where my earlier conditioning was coming through. Objectively looking at the code in question, I wasn't happy with it but couldn't quite figure out why. In this regard, the book has already provided some valuable insight. In short, I this book is almost a Gnostic text of sorts - to the believer or not-quite-believer actively seeking the message this book tries deliver, it will be a wonder. To a skeptic (or traditionalist or dogmatic) not so much (read some of the negative Amazon reviews to get a flavor of the degree of negativity - wow!). Ultimately, that's too bad - I think there's a lot of wonderful material in this book that'll be lost, and I do think my profession will be the less because of it.

0 Comments:

<< Home

Friday, February 25, 2005

[random][geek] Why a blog?

The above title should be spoken in as close to a Groucho Marx voice as you can get... Think "Why a duck?" and you'll be in the right ballpark. If you're more politically inclined than geeky, the content ratio of this blog has probably been your cup of tea. If you're geekily inclined you've probably wondered if I'm going to actually add any substantive geek content, of if I'm gonna stay stuck on stupid and continue to rant about politics. The answers are "Yes, I'm going to add some 'real' geek content" and "Yes, I'm probably going to stay stuck on stupid". I like politics too much to not write about them, and for the last few months politics have weighed most heavily upon my mind. Given my political orientation, this should come as no surprise, and I've found writing to be a great release. I think another factor in my decisions about what to write has been some insecurity about my own geek credentials... When I opened this blog, I had every intention of writing about coding, trends, toys, neat stuff I'd learned or read or stumbled across. As I started posting though, I began to get cold feet. Politics comes easy - I'm secure enough in my political beliefs that whipping out a rant and posting it on the Web comes easily to me. Writing about geek stuff? Not so much. You see, I started off as a political animal - then the Cold War ended and the Bush 1's recession kicked in, and I found myself conducting (and eventually supervising) survey research for a political marketing firm in Boston. This led to a job doing data editing and validation for a major research firm in Maryland, where I started programming surveys in a proprietary language. From there, I wound up with a programming job with another major research firm. I had been programming for 5 or 6 years before I started to learn any languages other than specialized procedural languages for coding surveys. My first 'real' (ie., marketable) languages? Visual Basic 6 and MS Access VBA, which I was able to transmute into some 'real' programming gigs. You see the roots of my insecurity? I have no formal training in any of this stuff, and my first 'real' language was a widely ridiculed one... Fortunately, along the way, I've picked up a decent mastery of T-SQL (MS SQL Server-flavored) and I've been able to move on to C#. At this point, I'm being paid to have fun: learn new stuff, write code, work on a good product... And slowly, I'm coming to realize that I might have some stuff to offer on this front - I just have to work up the courage to start tossing it out there. Over the next few weeks, I'm going to try and refrain from political content and focus on other topics. Maybe some music; maybe some books, some TV, some movies. But definitely, more geek content. The request line is open.

2 Comments:

Blogger Kristina said...

Heh. I can count on one hand the number ot geeks I know who have any formal training in this stuff. In fact, there's a particular brand of geek cred that comes from being self-taught, no?

That being said, I'm only a pseudo geek myself and very much enjoy reading your political stuff. But geek away at will.

3/04/2005 04:20:00 PM  
Blogger protected static said...

pseudo nuthin'... as you confessed here

3/04/2005 04:35:00 PM  

<< Home

Sunday, February 20, 2005

[random] Gonzo no more...

"Uncle Duke" is dead, from a self-inflicted gunshot wound. What a loss... From one of his ESPN.com columns, Hey, Rube, the first one he wrote after 9/11:
[...]We are At War now, according to President Bush, and I take him at his word. He also says this War might last for "a very long time." Generals and military scholars will tell you that eight or 10 years is actually not such a long time in the span of human history -- which is no doubt true -- but history also tells us that 10 years of martial law and a war-time economy are going to feel like a Lifetime to people who are in their twenties today. The poor bastards of what will forever be known as Generation Z are doomed to be the first generation of Americans who will grow up with a lower standard of living than their parents enjoyed. That is extremely heavy news, and it will take a while for it to sink in. The 22 babies born in New York City while the World Trade Center burned will never know what they missed. The last half of the 20th century will seem like a wild party for rich kids, compared to what's coming now. The party's over, folks. The time has come for loyal Americans to Sacrifice. ... Sacrifice. ... Sacrifice. That is the new buzz-word in Washington. But what it means is not entirely clear. Winston Churchill said "The first casualty of War is always Truth." Churchill also said "In wartime, the Truth is so precious that it should always be surrounded by a bodyguard of Lies." That wisdom will not be much comfort to babies born last week.[...]
RIP, Hunter S. Thompson

0 Comments:

<< Home

Monday, February 07, 2005

[politics] This Machine Kills Fascists

Image Hosted by ImageShack.us Nuff' said. Tip 'o the hat to Eric Alterman; I don't always see eye-to-eye with Dr. A, but I almost always enjoy his column. The image comes from the Smithsonian.

0 Comments:

<< Home

Friday, February 04, 2005

[geek][politics] Google-bombing for Choice!

Got this idea from Rad Geek via 'Clicked!' on MSNBC. So... what is Google-bombing? In short, the way Google indexes websites, it factors in the text that is displayed for a link along with the actual link itself... The more that a certain phrase is associated with a certain URL, the more more relevant Google considers the URL to be. Anti-abortion wingnuts have successfully written enough links that look like this: <a href = "some website with anti-abortion propaganda goes here">Roe v. Wade</a> that Google was linking to their propaganda more often than to, say, the actual text of the decision itself. By writing countering links, Google will rebuild it's index over time and real information about Roe come up more often than far-Right anti-abortion hysteria and disinformation. So, bombs away!

Anti-abortion ideologues beware: I'm promoting objective, factual information on:

You can too. Join me in Bombing for Choice.

0 Comments:

<< Home

Tuesday, February 01, 2005

[politics] Just say "No" to torture, part 3.

Sen. Murray has just announced that she too will vote against Gonzales. The full press release can be found here, but here's a juicy bit:
The attorney general has a direct impact on the rights, lives, and liberties of every American. He is not merely an advisor to the president. He is the chief law enforcement officer of our country. He may even be called on to investigate wrongdoing by the very president who appointed him. Because of these unique responsibilities, an attorney general must meet certain standards. In addition to being honest and independent, an attorney general must actively enforce the laws and ensure the public's confidence in our legal system. The attorney general must also display the highest standards of fairness, trust, and respect for the law. Unfortunately, a review of Mr. Gonzales' record in Texas, at the White House, and before the Senate Judiciary Committee shows he falls short of those standards.

0 Comments:

<< Home