From “Poly” meaning “many”…

If you haven’t been following this debate between Jeff Goldstein and Patterico, and you care about language, truth, education and how all those play into politics, you should.

In one corner, we have the guy who has dedicated himself to pantsing the Los Angeles Times, one of the worst papers that ever was or will be.

In the other corner, we have a stalwart defender of language and meaning, and a bad ass catch-wrestler who could probably beat you up. He’s got footnotes and links back to some pretty hefty essays on this whole argument, which is his blogging raison d’etre.

The recent flare-up was the Rush Limbaugh brouhaha staged by the White House.

A lot of the conservative response was, “Well, Rush is inflammatory and he should take care to not be so provocative.” This is Patterico’s side.

Goldstein’s response is basically that when the speaker’s intention to communicate is subordinate to the listener’s intention to impute meaning, the game is already lost.

The fact that the whole thing was staged by the White House as a distraction, and that the entire context of Rush’s talk proves his intention was exactly the non-controversial sentiment that the “be more cautious” crowd would have preferred him to express, demonstrates that Goldstein is correct.

If you don’t believe that, cast your mind back to the election, when Sarah Palin was ridiculed for saying she could see Russia from her house. Which, of course, she never even said. Or look at Jindal, who was ridiculed for walking up to a podium. Now cast your mind forward to all the apologists of Obama’s recent “Special Olympics” comment: How many of those people defending him attacked others for similar behavior?

Patterico’s reasonable-ness is his downfall. He sounds a bit like the abused wife who’s just sure that if she just minds her Ps and Qs, she won’t get hit again. And in the case of conservatives trying to gain some kind of fair hearing in the current environment, it’s a seductive argument: We can tailor our messages in a way that they won’t distort them. (Or at least that there is as “reasonable segment” of them who won’t.)

But the truth is a lot harder: If we’re ever to have honest debate in the world again, we have to break the stranglehold on the media. We have to insist on being taken on what we mean, not grovel when bad actors impute villanous motives to us. We have to change the educational system so that people learn to respect communication and are able to destroy the rhetorical sleights-of-hand engaged in by would-be totlitarians.

In other words, I think Patterico doesn’t really see how bad things are, or how big the problem really is. But I can understand: It really is bad, and the problem is huge. It’d be nice if we could actually make ground just by being reasonable.

But the unfortunate reality is that “reasonable” people never make ground. Because there’s always a “good reason” why they can’t.

Usage

I have, from a very young age, had to work to dumb down my speech and writing. Really, as bad as I am now, as a teen, Troop would have had to beat me up on sheer principle. It took me years to master the word “ain’t”.

Of course, referring to it as “dumbing down” is somewhat pretentious in itself. It’s a combination of reducing vocabulary and using simpler, smaller or more common words and slang, using simpler grammatical constructions but primarily being concerned with communication.

That’s what it’s all about, ultimately, right? Communication?

A lot of grammar is contrived. That is to say, it’s bullshit. Not ending a sentence with a preposition, for example, is one of many Latin rules that were imposed on English that just don’t make sense. It’s one thing to champion a rule for the sake of consistency if it doesn’t sacrifice any clarity, but the preposition thing results in some highly convoluted phrasings.

One I’ve given up recently is the use of “their” for “his or her”. I’ve gone from using “his” (meaning “his or her”) to phrasing sentences so that “their” agreed with the verb (“The children open their presents” versus “Each child opens his presents”) to just using their, even though it doesn’t agree (“Each child opens their presents.”). My justification is the 1,000+ years prior to the subject-verb agreement rule where English speakers have used “their” with no ramifications.

I was thinking of this because I’ve given up on “Yeah!” I think most people see that and pronounce the “eah” as though it were the same vowel sound as in “bat”, which it can be. But it can also sound like the vowel in “bay”.

Problem is, in writing, as an exclamation, it’s not really useful. If I write:

“Yeah!”

You don’t know if I’m doing an Austin Powers “Yeah, baby!” or if I’m cheering for something.

So I’ve broken down and started using:

“Yay!”

This post is really just a not gentle reminder that your host is a serious word nerd.

More On Languages, Programmers and the Hiring Thereof

This is an extension of an ongoing discussion Esther Schindler and I are having here and at CIO.com, which started as a discussion of programming language popularity, and has extended itself into a discussion of what sort of people one should hire. It’s got a lot of “in-references”, so if you’re not a pretty heavy programming geek, you’ll probably want to skip it.

Blake, you speak as though the choice is between the okay-quality experienced developer and the brilliant developer who doesn’t happen to have programmed in, say, ObjectREXX or JavaScript or what have you. But it doesn’t really work like that.

Well, yeah, it works like that when you foster an IT programming culture that favors results over dogma. Heh. It has to: You’re working in Scheme or Smalltalk or Eiffel; you’ve just ruled out the programmer who, you know, graduated in ‘97 with a Java specialization because of all the money in the tech bubble.

Usually, an employer whose job req says “ObjectREXX would be a good plus” gets plenty of resumes from programmers who do have that experience.

Think if I ran an ad today for ObjectREXX programmers I’d get plenty of resumés? There’s…uh…me…and…you? The same is true for a lot of great tools, like Squeak, Lisp, even regular REXX, and for that matter, even Delphi. But perhaps there’s a point of agreement there.

At some level, what you’re saying is: “This technology is good enough that we can afford to take a hit in the hiring department.” A lot of us made that choice with OS/2, for example, and for the 10 years we used it, it was a good risk, even though it was almost impossible to find people in our area who knew it. It was just that productive.

Recently I worked with a company that programmed their tool in Delphi 7, and they had a bear of a time finding qualified people. We had some heavy discussions about better tools, because I saw that they had developed these huge systems to work around the problems that arise with statically typed languages. I’d say it actually hurt them, because to understand their code, you had to be well-versed in relatively cutting edge Delphi (even though they had stalled at D7, they were using interfaces, modeling tools, code generators, etc.).

But had they used Smalltalk, for example, they could have hugely reduced their burden, and in some respects made their code more accessible. The deal breaker was that they were pretty heavily reliant on code that others had written. I do some Java, not because I’m a fan of the language, but because sometimes that’s where the code I don’t want to write is.

And HR departments, keyword-driven as they are, probably don’t pass along the resumes of the candidates who write, “But I can learn!” in the cover letters. So you may be happy to entertain the brilliant-but-inexperienced, and you might never encounter them.

IT really shouldn’t use HR for hiring much, if at all. They’re not competent to even filter out the first tier candidates. I’ve seen plenty of HR departments post ads where the only qualified candidates would be liars. You know, put ECMAScript and JavaScript on your resumé and see which one gets you hired.

Besides, people who can learn–in my experience, anyway–they don’t advertise it because they don’t realize how rare and precious a commodity it is. Certainly I didn’t until, at one job, I picked up a threadbare manual for a proprietary language and environment, and coded a specimen cataloging system in two weeks, while the consultants whose proprietary environment it was were still busy negotiating their six-month/six-figure contract for the same system.

I don’t say it to boast, as it was a mean feat that any reasonably competent programmer willing to learn could have done. But I couldn’t, as you say, have gotten a job doing it. But I love having random programming challenges thrown at me, and I encourage the hiring of others who feel the same. In fact, the aforementioned Delphi 7 crew I worked with had a test: They gave you two hours to write as much of a program as you could. Easily one of the more fun application tests I’ve ever done.

Plus, of course, someone might say they’re willing to learn, but they don’t actually do so. It’s another tangent entirely, but there’s few things as awful as employing someone who really wants to be good at something but is only semi-competent.

The beauty of IT is that you can often shuffle that person off to a different role. I’m always checking out the systems guys for the latent programmer. You put people in as network admins and switch them to help desk, because they’re good with people, or maybe to DBAs, or wherever.

I wouldn’t recommend any hiring be done on the basis of candidate assertions. At least not ones like “I love to learn.” or “I’m a real people person.” But a programmer can talk to another programmer and within a few minutes ascertain what they’re really capable of.

I do take your point, but I’ve seen lots of discussions among developers and consultants about their need to stay “relevant” with the choice of language (or toolset or whatever) they focus on. If there are lots of jobs asking for C#, and few asking for ObjectREXX, many developers will choose an option that makes them more marketable.

When I was doing ObjectREXX (and VisProRexx!), I was also doing C++, not because I think it shouldn’t have a stake driven through its heart, but because my best tool for small, fast code was Borland’s OS/2 IDE. And I don’t keep up the unholy trinity of PHP, Perl and Python for fun (well, okay, Python is fun). And I can’t write a line of Ruby without thinking, “Well, this is just Smalltalk for the faint-hearted.”

I get the need for relevance. But if I saw a guy whose career path went from C to C++ to Java to C#, I’d hesitate before hiring. What does he do for fun? Because I’m not interested in hiring a programmer who doesn’t program for fun.

On Programming Language Popularity

My old pal and CIO editor Esther Schindler has written a blog entry with the deliberately inflammatory title of “Is Computer Language Popularity Important?”

Well, you gotta drive traffic somehow.

And it is a good, if hoary, question. While Esther follows up the question of which language is “best” by adding “best for what?”, it should be fairly obvious that the continuation of “Is popularity important” is “important to whom?”

Before going into that, though, let’s pick some points (hey, it’s almost a fisking):

At the developer level, language choice is completely personal. Like picking a brand of hammer or carving knife, the tool should fit well in your hand. Some people think better in Python than in PHP, and God help anyone who thinks in LISP.

The tool analogy is probably the only one available but it’s just not a very good one. If I use CodeGear’s JBuilder to program a web-based front-end in Java, the language doesn’t really parallel with the brand–the brand (Codegear JBuilder) does.

So, is the language the tool, then? No, that’s not a really good analogy either. The environment (JBuilder’s IDE, debugger, etc.) is really the tool. That’s what you’re using to put your materials together with. And therein lies a clue: The language is sort of like the materials–it’s the medium in which you build. (The platform comes in to play as well, like a foundation.)

I doubt anyone would consider the materials used in building as being “completely personal”. But since human-written code is all mulched down in to the same zeroes and ones, there is an interchangeability you get as far as the final product goes.

But even there, the analogy falls apart because code seldom dies. Code is a factory you use to produce software. For any real project, you’ll spend the vast majority of your time going back to the factory to retool the product.

There might be a political correctness to saying the decision is completely personal, but no coder believes that. There are quantifiable differences between toolsets and languages. Otherwise, “best for what?” would make no sense as a question.

Programming language adoption follows the genetic rules behind duck imprinting: the first creature a duckling sees is perceived as its parent. My first programming languages were PL/1 and FORTRAN, and despite writing production code in several others, from standards like C and REXX to obscure languages like Mary2. Yet, I can write FORTRAN code in any language.

A lot of people believe this. And I suppose it must be true for some people. They tell me they think using language, so I believe them. When I tell them I don’t think using language–I think using thoughts that I then translate into language–they often don’t believe me.

Esther and I used to hang out on Compuserve’s Computer Language Magazine Forum with such luminaries as Jeff Duntemann and David Gerrold. (Just to name two: That forum was a freaking Algonquin Round Table of programming genius. It was there I learned what little humility I have.) If memory serves, David was on the language side–but he’s also a professional writer of quality sci-fi, so you know, he’s got that goin’ for him.

When I program, I think of what I want to accomplish–the end result–and then I organize it using whatever conceptual tools I have handy (often graph paper, if I need to write stuff down), and then (and only then) do I code it.

I learned, in order: Basic, Assembler, PL/I, Pascal, C, Smalltalk, Rexx, C++, Eiffel, Java…well, and it gets blurry after this point, but I’ve used most of the common scripting languages (PHP, Perl, Python, Javascript, Ruby) as well as C#. I occasionally still reluctantly do macros in Basic, but I spent most of my seven years programming Basic hoping for something better. (PL/I was great but I sure didn’t have it on my 8086.) I’ve probably done more Pascal programming in the past 20 years than any other language but I surely don’t think in it. (At least, not until the last possible moment.) But I’ve gone through periods where I’ve done nothing but REXX or C# or whatever. (Right now I’m primarily doing Delphi-style Pascal, Squeak-flavored Smalltalk, SQL, Flash, and Javascript.)

In fact, to my mind, a good language is one you don’t think about much. Smalltalk versus, say, C++, with its subtlety and ambiguities.

Smalltalk has probably been the biggest influence on me, and I had been programming for 10+ years before I learned it. (But it’s also not just a language, so it can change the way you see the game.)

How do you decide which languages are “acceptable” in your shop? Is it because your favored development environment (such as Eclipse or .NET) builds in support for one language suite? (Thus shops choosing Visual Studio would bless C#, VB.NET, and occasionally C++, with a smattering of IronPython accepted.) Or do you look for what programming languages are “in” and thus it’s easy to hire developers affordably?

So, now we’re getting to the “whom” in the popularity question. She’s primarily talking about employers. For most programmers, they almost couldn’t care how popular their languages are. For me, I want any language I use to be popular enough that if I have a need for a particular piece of code, I don’t have to write it if I don’t want to, I can find it on the web.

(Obviously this is tongue-in-cheek, but wouldn’t that be great: Only write code when you want to or when it would make you rich.)

As for when I’m hiring, or have a say in hiring, I never look for programming languages. I look for aptitude and flexibility. In most cases, I’d rather take a great programmer and teach them a new language, then a mediocre programmer who’s familiar with a particular paradigm.

I could say a lot more than this but that’s enough for now.

New Link & Etc.

Re “& Etc.”, I love bi-lingual stuttering like “The La Brea Tar Pits” and “The Hoi Polloi”.

Added a link to “Loaded Questions”, which features Kelly Hewitt’s marvelous interviews with various authors. Kelly and I have run the Loaded Shelf and Kingdom RPG together for over three years.

I’m fooling with blogger’s templates and so far, I’m not terribly impressed. It seems eager to discard changes you make. (I realize the technical difficulties of changing from one template to another, mind you. But it all makes me want to develop my own software….)