C4[boom]; John Welch’s Take on the End of the Coder’s Conference

C4[boom];

We come not to praise a conference, but to bury it

It is always, always painful to read about a conference dying, especially when it’s one that a lot of people love. When MacHack died, even though I’d never been, I missed it. It was a unique gathering of people, talents, and fun. Recently, another conference, C4 died, or more accurately, was taken out and shot by its organizer, Jonathan “Wolf” Rentzsch. Before I get into his reasons, I want to say that Wolf has every right to do this. Whether I, you, or anyone agree with his reasons or not, it’s his show, he can kill it for whatever reason he wants, up to and including his alarm going off too early one morning.

That’s the joy of private enterprise. The people in charge get to make those decisions. We, as attendees, fans, or speakers, do not. I’ll not begrudge Wolf that right for any reason.

Wolf also stated his reasons for doing so, and while again, they’re perfectly valid for him, neither I, you, or anyone are required to agree with them, and just as he has the right to state them, the rest of us have the right to our opinions of them. Freedom of speech is not freedom from criticism. You stick your statements out in the public square, you get to deal with the reaction to them. Such is life in a democracy or even a constitutional republic.

Wolf’s statement is heartfelt and sincere, no surprise, Wolf’s a heartfelt, sincere kind of guy. I’ve sort of known him for a while now, he even invited me to speak at C4 in 2009. (Hmm…that makes C4 the second conference that ended after I spoke at it…nahhhhh.) I like the guy. That doesn’t mean I always agree with him, but he’s an indie developer, I’m an IT guy who is more at home in medium to large shops than SOHO setups. It is fair and accurate to say we have rather different views of the world.

Along with heartfelt and sincere, Wolf’s statement is all over the friggin’ map. It reads like he was really upset, and angry, and just kind of dumped his emotions onto bits, hit post, and went off to a bar. That’s rather odd, because normally, even when I disagree with what he’s saying, Wolf is a really good writer. This post strikes me as really odd. I mean, he spends the first half of the post arguing about how glacial software development is, and complaining that he’s using tools that were obsolete over a decade ago, yet seems to miss one important fact:

He, and guys like him are a huge part of the reason WHY that is a problem.

Every time someone says that “real” languages must have C-like syntax and/or must have dot syntax, and must be just like the stuff they’re used to…they’re holding back progress. Every time someone looks at things that make typing more convenient as a critical feature, (autocomplete, etc.), they’re holding back progress.

In 1995, I was writing in-house applications for things like open enrollment, job applications, benefits signups, etc. Nothing even remotely exciting, but important stuff. These applications tied in things like disparate databases, were primarily tied around the telephone as your user interface, and even were starting to integrate this new trick called the World Wide Web.

I wrote no code. Zero. None. Fifteen years ago.

I built a flowchart, named some objects, set up the various server connections, database connections, and bang, program. I used a platform called the Edify Electronic Workforce, (now a part of Convergys), and it ran on OS/2 of all things. Visual programming. No coding. No typing of arcane syntax. The Mac had a great one as well at the time, Prograph. The idea was, instead of typing and typing, you just built your application visually. Great idea. Now, what do we have on the Mac that’s even similar, much less common and easily available?

Quartz Composer, and maybe Automator. W00t. Now, there are a lot of visual languages out there, but they’re experiments, or used for very small projects with limited functionality. Robotics love visual languages, they map well to the physical world.

What happened? Well, guys like Wolf, and other “software engineering fans,” who decided that anything too different from what they like and use is bad. Wolf even had a “funeral” for AppleScript, stating that it should be replace with?

Javascript. Because “programmers” like Javascript more, and eventually, it’s better. Even though it’s terrifying for non-programmers.

You can’t push an envelope if you keep it sealed.

So Wolf complains bitterly about the pace of progress in languages and development tools, all the while not realizing that he is part of the problem. Rather than pushing for things to be easier for all, for the barrier to entry to be lowered, so that you get even more people involved, and even more ideas that won’t exist without them, he was, right in front of me, pushing to raise it higher, so that he could feel more “efficient.” Efficiency is good, but it is not ever going to radically change anything. Shutting more people out of software engineering is not going make it improve faster.

If you don’t like the glacial pace of software engineering Wolf, if you dislike using obsolete tools, then stop trying to kill anything that challenges your assumptions. Don’t complain about wet feet when you’re drilling holes in the boat.

Then he brings up section 3.3.1, and he does so in a shockingly bad way.

But first, he has to jump back a line or two, and castigate Apple for not advancing software engineering more. Well, no kidding. Apple is not a software engineering company, they are a company that makes hardware and software. For Apple, software engineering is a means to an end, not the end itself. If you became an Apple user because you are all about software engineering cutting edge…you have, were always, and will continue to waste your time. Complaining that Apple isn’t pushing the envelope for software engineering is to completely misunderstand what that company does. If that is Wolf’s issue, that he’s misunderstood Apple for years, then perhaps his frustration here is understandable, albeit misguided.

Back to section 3.3.1, and this completely, utterly, totally wrong comment:

“Section 3.3.1 makes developers wholly reliant on Apple for software engineering innovation.”

To be blunt, this statement is bullshit as written. Note that Wolf isn’t saying “…makes iPhone developers…”. He’s baldly stating ‘developers’. That’s complete FUD, and honestly, I’m a little surprised that any amount of emotion would override accuracy like that, especially from a software engineer. Accuracy is rather important to him. Apple is not just the iPhone, no matter what the various chicken littles think. Mac devs don’t give a rat’s patootie about 3.3.1, and in fact, iPhone/iPad devs who only write in-house applications don’t care about it either. That statement is demonstrably and verifiably false. Period.

However, I think it is the next two paragraphs that are the real point of Wolf’s essay:

“But unlike previous issues such as the senseless iPhone SDK NDA, the majority of the community isn’t riled by 3.3.1. On this issue, Apple apologists have the loudest voice. They offer soothing, distracting yet fundamentally irrelevant counterpoints to Apple’s naked power-grab.

With resistance to Section 3.3.1 so scattershot and meek, it’s become clear that I haven’t made the impact I wanted with C4. It’s also clear my interests and the Apple programming community’s interests are farther apart than I had hoped.”

First, no, we aren’t all angry and steaming about 3.3.1. Some of us even agree with it. Secondly, no Wolf, everyone who isn’t as riled up about this as you is an apologist. Some of us have had to work in situations where critical applications were designed with “write once, work poorly everywhere” tools. Java, etc. Those applications are not nice to use, regardless of platforms. They suck on Windows, they suck on Unix, they suck on the Mac. Cross-platform tools, ala Java and now Flash do not “push the envelope of software engineering” on any level. In fact, by ignoring platforms in favor of commonality, they retreat from the envelope. Rather than encouraging innovation, they actively squash it by pushing developers to only write that which is safe.

Someone who is a “champion” of software engineering innovation championing tools that encourage, even enforce mediocrity is just a bit strange.

But is Wolf pissed off about Apple, or is he pissed off that he was all set to lead the charge against 3.3.1 and realized that no one was really behind him? It’s seems that it’s the latter, and that’s kind of lame. It’s even lamer to be so completely intellectually lazy and pull out the “apologist” label for everyone who doesn’t agree with you, because Wolf should know better.

Being an apologist is a specific thing and “anyone who disagrees with me” is not that thing. I know a lot of Apple and Microsoft apologists. I know a lot of people who disagree with me on some opinions I have of those companies and their products who are not apologists. The latter far outnumber the former. I think it is pretty…well, again, lame, for someone who in theory is an advocate of “independent” developers to suddenly tar everyone not on his side with such a silly brush.

Here’s the thing about independents: sometimes, that independence is inconvenient for you. Sometimes, that independence means you don’t win, even if you’re Wolf Rentzsch. Everyone gets to have their own thoughts on 3.3.1. Everyone gets to have their own opinions on 3.3.1. Disagreeing with Wolf, and agreeing with Apple does not make you an Apple apologist, nor does the opposite make you a Wolf Rentzsch apologist.

Disagreement does not equal attack. It is entirely possible for intelligent people to disagree on things, and not be apologists. Heck, TMO’s Dave Hamilton and I have epic disagreements on Twitter. Epic. But I know that Dave is an intelligent guy, who thinks about things. I know that even if I think his opinion on a subject is completely wrong, that he arrived there the correct way, via critical thought and analysis. In turn, he knows that I use the same methods for the things I care about.

It’s respect, when you think about it. I respect Dave enough to know that disagreement isn’t attack, it’s just a different interpretation of the same evidence. That happens all the time in the real world. What doesn’t happen enough is that people understand that just because someone else has a different result for the same evidence, that doesn’t mean you’re wrong, or they’re wrong. It means there’s more than one way to be right. If you’re really lucky, and a little observant, you might learn a few things you didn’t know before you started arguing. That’s the best. You just have to not treat disagreement as attack.

That to me, is the saddest part about Wolf’s post, and his actions. In a very real sense, he has said “If you disagree with me on this, you are against me. If you do not support my cause, you are against my cause.” He’s made this yet another binary “there can be only one” issue, and for someone who lives in a world of one and zero, yes and no, I can almost see where he’s coming from, and why he would tend toward that line of thinking. I just think it’s wrong, and terribly limited. Reality is analog, it is filled with nuance, shades of grey, and millions of variations. Reality is most definitely not binary.

The people who disagree with you aren’t against you Wolf. We never were. I’m sorry to see C4 go, my one time there was interesting, educational, and fun. I met some really excellent people. But, if this is how you feel about things dude, then maybe shutting it down is for the best.