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

| Editorial

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.

Sign Up for the Newsletter

Join the TMO Express Daily Newsletter to get the latest Mac headlines in your e-mail every weekday.

19 Comments Leave Your Own

Lee Dronick

Excellent editorial Jeff!

D

Fairly unimportant to the gist of the piece, but it’s clear the author doesn’t have any real Java development experience (ie, its strengths and weaknesses).

John C. Welch

Actually, i wrote it, not jeff, and I’m well aware of Java’s weaknesses and strengths, including what is needed to implement a cobol - java conversion project for an insurance company.

Java, as it turns out is excellent for the same kinds of things you used Cobol for. It’s stable, the cross-platform nature lends itself well to client-server applications, it scales really well, and is a great language for the kinds of corporate development that, surprise, it’s mostly used for.

It is not however terribly fast, the cross-platform GUI toolkit is fugly on every OS, and it doesn’t make use of any platforms specific strengths.

IT is not designed to do that. It’s designed to let you have, as much as possible, one codebase and one implementation across platforms. But that brings with it a lot of compromise. For enterprise - style applications, those compromises aren’t a real big deal.

But for a platform where appearance, form, speed, and overall code size are important? Java’s not going to be a great fit. Nor is any other “runs on every platform known to man” languages.

If Java was so friggin’ awesome, Sun, (*Sun* mind you), would have thrown their support behind NeoOffice, instead of releasing a “native” version of Open Office for every platform it runs on.

When the people who created java don’t use it for that kind of cross-platform implementation, that tells you something.

jragosta

I agree completely - excellent article.

Lee Dronick

John, I apologize for the mistake of confusing you with Jeff

Mark Hernandez

Yay!  Thank you, John.  I’m glad one of our analyses of the situation was elevated to a blog article!

There are lots of people who are pretty darn smart who comment in comment sections, which is were the “discussion, analysis and development of consensus” happens.  But the important points made down here are often ignored and don’t make it back to the “static trigger statement” and the person who made it (Rentzsch in this case).  I hope yours DOES make it back to him and he learns something.

The whole “fixed statement” followed by “dynamic discourse” format (i.e. blog post/comment section) needs to be improved upon, but at least we have something.  And I’m glad MacObserver elevated yours to get noticed.  It’s very reasonable and enlightening, which is what we are all after—trying to understand.

And I still think another unspoken truth about C4 is that the “tech conference accessible only to the privileged few” concept doesn’t work anymore in the 21st century.  I believe strongly that it’s a real part of this story which shouldn’t be ignored.

Mark

Bosco (Brad Hutchings)

Hey John… I can see why Rentzsch tweeted me last night that he wasn’t interested in arguing in blog comments when I invited him to comment Mark’s silliness on Bryan’s post.

As I read Rentzsch’s posting, it seemed an ode to The Cluetrain Manifesto, a listing of disjointed but interrelated statements that sometimes seemed to progress in order and other times seemed to diverge in order. If that’s what he had in mind, it’s a meme that seems long forgotten, and obviously went over John’s head.

Rentzsch is saying that this Apple stuff just doesn’t seem right. Hell, the rest of the industry agrees! See Adobe’s PR campaign that launched today. See the Droid commercials that go out of their way to add keywords like “open” and “freedom”.

@Mark: Another thing that happens in the comment section is that I have my own personal drinking game where I take a shot every time someone mentions “consensus”. I was plastered last night. Seriously pal, who castrated you and appointed you queen of discourse? About the only thing worse that Jehovah’s Witnesses showing up at my door are consensus seekers showing up anywhere. The thought makes me throw up in my mouth.

Donald

@Bosco: Re: “Rentzsch is saying that this Apple stuff just doesn?t seem right. Hell, the rest of the industry agrees!...”

It has been said: Great minds think alike, and fools seldom differ.

John C. Welch

It hardly went over my head, it’s that i disagree with him. The fact that the rest of the Mac dev community didn’t rise up with wolf is how things work sometimes. Sometimes, the rest of the world doesn’t see things as being particularly bad.

As far as Adobe goes…yeah…they’re so very open. Unless a company they don’t like is doing something they don’t want. Like threatening to sue Microsoft for wanting to include PDF generation in Office 2007. Or prodding the feds to investigate Apple.

also, keep in mind that Adobe, and no one else controls the Flash spec. It’s not open, it’s published, and for now, Adobe’s being kind. Sort of. If you want to write your own Flash plugin, you can, unless you’re playing DRM’d content. it seems Adobe doesn’t include that in their “Open” standard. For DRM’d Flash, you have to use Adobe’s plugin.

Oops.

Of course, right now, there’s a full release of Flash that runs smoothly and cleanly on every platform but the iPhone/iPAd.

Oh, wait, no there’s not, and the ARM versions may be delayed past general release.

Oops.

But it’ll be available, real soon now, right?

then Adobe will show how open they are.

Oh, and Google? Open? Surrrre they are.

Unless they decide your adsense account has something fishy going on. Then they shut it down, and you have no appeal, hell, you can’t even get details as to what happened so that you can maybe follow up on your own, you know, defend your case?

google’s reason for denying you pertinent information on why they canceled your account?

“Well, that would reveal the critical proprietary data we use for Adsense.”

Isn’t.

That.

convenient.

Google is quite adept at making you think they’re some kind of hippie kum-ba-ya collective, but they’re just as rapacious as anyone else.

Perhaps you should start looking past the marketing and PR to actual actions?

NatasRevol

John,

I’d like to know how you wrote this without using at least 25 f-bombs.

Great post anyway.  The thought running through my head was “Is Wolf a Sith lord?” 

I don’t like that Apple is limiting their platform, but I do understand that a) it’s their choice to do so, and b) they don’t want the Java experience on their platform - run kind of everywhere, depending on the version, but ugly.

I’m not sure why everyone is SO up in arms over Apple’s choice.  Either accept their choices, or don’t be an iPhone OS developer (losing probably significant money).  But don’t whine so much.  You just come across as a spoiled brat that everyone ignores.

Bosco (Brad Hutchings)

I?m not sure why everyone is SO up in arms over Apple?s choice.? Either accept their choices, or don?t be an iPhone OS developer (losing probably significant money).? But don?t whine so much.? You just come across as a spoiled brat that everyone ignores.

Funny. That’s pretty much what I say to my customers when they report bugs in my software. Buy it or don’t buy. Complaining that something is wrong just makes them look like spoiled whiney ass bitches.

</sarcasm>    <—And it’s so sad I have to put that in there for you guys.

John C. Welch

Funny. That?s pretty much what I say to my customers when they report bugs in my software. Buy it or don?t buy. Complaining that something is wrong just makes them look like spoiled whiney ass bitches.

</sarcasm>? ? <?And it?s so sad I have to put that in there for you guys.

You have to put that there, because your point is inane. Everything is not exactly the same. A bug is not a policy. Nor is it a furniture polish, a fondue, or a maker of julienne fries.

3.3.1 is an issue for a small number of people.

It is a non-issue for everyone else, and that is what neither you nor Wolf are able to accept. That most people don’t care. I would suggest that you start getting comfortable with the apathy of the non-technical world towards your twee arguments over ‘open’, because they don’t care.

DOes the device do what I need? Then it’s good. If it doesn’t, it’s bad. If it happens to be pretty and easy to use, bonus.

That’s the part that burns you. That most people don’t care. That you have to accept that for the vast majority of the world, this stuff that’s got you in a lather is meaningless, and you can’t stand that.

Oh, and here’s another one for your emo threats to go to Google, because they’re more “Open”

Google sure is ‘open’

So Google’s open…unless you’re an adsense customer.
Or an investor.

At some point, you might stop expecting corporations to be anything but rapacious. But i doubt it. You’ll spend your life overpersonalizing your relationship with them, and being hurt when your assumptions fall apart yet again.

John C. Welch

I?d like to know how you wrote this without using at least 25 f-bombs.

Easy. You don’t know me as well as you think you do.

NatasRevol

I?d like to know how you wrote this without using at least 25 f-bombs.

Easy. You don?t know me as well as you think you do.

I meant that as a joke; I almost put a smiley.  I enjoy your rantings on bynkii.com, especially against Adobe installers - where f-bombs are very appropriate.

NatasRevol

Funny. That?s pretty much what I say to my customers when they report bugs in my software. Buy it or don?t buy. Complaining that something is wrong just makes them look like spoiled whiney ass bitches.

</sarcasm>  <?And it?s so sad I have to put that in there for you guys.

I knew this was Bosco without even looking.  He’s still bitter because Apple wants him to optimize for their platform, while he just wants to regurgitate the same least common denominator across all platforms.  He doesn’t get that Apple wants the software on their platform to look & perform better than on other mobile platforms.  He just wants to do the least amount of work.

webjprgm

I like keeping the barrier to entry high; that’s part of job security since fewer people can “program” grin. (Though really programming should be a general education class like algebra, which would support your idea of getting more people to do it.)

By the way, graphs work well for data flow but they’re horrible for specifying multiple conditions in a control flow graph.  I quickly lost interest in visual languages when I had to drag-and-drop in “IF” boxes and click around to set them up.  It’s much faster to type those.  Really one should use the best tool for the job, which means using a mix of visual and text programming.  Thus the technologies we should push most are interoperability between different programming languages, like making things run on the JVM or CLR.  Neither is perfect, though, especially since Java’s JVM doesn’t handle proper tail recursion and thus all the LISP languages are mostly excluded. (Scala tries, but can’t convert every tail recursive function into a loop, thus is insufficient.)  Also, languages like PLT Scheme which try to allow many different input formats (and have a different, non-C syntax) suffer from poor performance simply because they haven’t implemented the full, optimized tool chain that they’ve said is possible in academic papers (and demonstrated in toy compilers).  Thus I conclude that we have many good ideas, we just need to get enough support to build the tools to usable levels.

stop trying to kill anything that challenges your assumptions

So, how is Apple challenging Wolf’s assumptions? They just say third party tools are not allowed.  Apple’s tools follow the same old habits, and even worse sometimes, as evident by the fact that they only recently added in memory management to Obj-C, which doesn’t even work on the iPhone.  I don’t think berating Apple is part of why programming tools are progressing too slowly.

About wanting Apple to push software engineering… everyone wishes Apple (as <sarcasm>the best company in the world</sarcasm>) would implement their personal pet project.  For some people that’s a Verizon iPhone, for some it’s a tower between iMac and Mac Pro, for some it just happens to be better software development tools.

Reality is most definitely not binary

Computer’s aren’t binary either, they have millions of values by combining yes’s and no’s.  He’s just using a 1-bit representation of belief rather than a full byte.  My view is (where 1 = I agree):
0 - Flash is Bad
1 - Flash is Poorly implemented
1 - Third-party tools should exist
0 - Multi-platform tools are bad
1 - Multi-platform tools cause lowest common denominator
0 - Apple can’t write 3.3.1
1 - Apple should write 3.3.1
0 - I’m happy that Apple wrote 3.3.1
1 - I wish Apple would be more specific with what is bad and allow other third-party tools
0 - I wish Apple would allow Flash
1 - Apple is heavy handed and goes too far
1 - I have an iPhone (and I like it)
1 - I would write iPhone apps still


Good article, thanks for the discussion.

John C. Welch

By the way, graphs work well for data flow but they?re horrible for specifying multiple conditions in a control flow graph.? I quickly lost interest in visual languages when I had to drag-and-drop in ?IF? boxes and click around to set them up.? It?s much faster to type those.?

it was actually not that big a deal. seriously. even for rather large conditionals. and again, the advantage was, you didn’t have to memorize arcane syntax. nor did you have to worry about your program blowing up because you forgot to put a semicolon on the end of a line.

Really one should use the best tool for the job, which means using a mix of visual and text programming.? Thus the technologies we should push most are interoperability between different programming languages, like making things run on the JVM or CLR.? Neither is perfect, though, especially since Java?s JVM doesn?t handle proper tail recursion and thus all the LISP languages are mostly excluded. (Scala tries, but can?t convert every tail recursive function into a loop, thus is insufficient.)? Also, languages like PLT Scheme which try to allow many different input formats (and have a different, non-C syntax) suffer from poor performance simply because they haven?t implemented the full, optimized tool chain that they?ve said is possible in academic papers (and demonstrated in toy compilers).? Thus I conclude that we have many good ideas, we just need to get enough support to build the tools to usable levels.

Seriously, read what you wrote there, and tell me why someone needs to care about that for high-level programming that’s not time-dependent, and spends all day waiting for human input. Once you start requiring code-typing for such things, you’re just creating another version of C. we have C. who cares.

So, how is Apple challenging Wolf?s assumptions? They just say third party tools are not allowed.  Apple?s tools follow the same old habits, and even worse sometimes, as evident by the fact that they only recently added in memory management to Obj-C, which doesn?t even work on the iPhone.  I don?t think berating Apple is part of why programming tools are progressing too slowly.

It’s not just Apple, however, Wolf’s insistence that if you just replaced AppleScript syntax with javascript, then every single problem AppleScript has would go away is a good example of how he, and others, are doing their level best to ensure that nothing that even MIGHT make programming more accessible to the proles gets any traction.

Oh, and when you use 1 and 0 to represent all other values? that’s um. binary.

Bosco (Brad Hutchings)

John, seriously now, I want to understand… Do you just have a thing for Rentzsch? I didn’t see anything in his posting about AppleScript. Look, I remember him from a decade ago when I was with a database vendor, and he was the most enthusiastic customer ever and asked a lot of questions which were mostly really good and often at the edge of what we could answer coherently. “Challenging” might be a good word, but always coming from a good place, and always more than worth the trouble in reciprocated leads.

If you do, it’s cool. I can understand how that might happen. My path hasn’t crossed with his in 9 years, although he’s one of the many people I try to keep up with for fear they might say or do something interesting. And I’m more than with you (I think) on accessible tools. For all platforms. They don’t just let the 85 IQ crowd program. They make it easier for those of us in the 115 IQ crowd to do the same!!! (sarcasm again folks)

webjprgm

@John
What I wrote about languages has two parts:
1 - the ability to mix whatever design/typing format (visual or text, in whatever syntax) so you can, say, make the GUI visually, connect some components visually, define some function in a domain-specific language, and write an algorithm in a C-like syntax all in one program.
2 - fix the tools of the “higher order” languages so that they optimize for speed a bit better.  Some are great already, some are very lacking.

Your objection seems to be point #2, as I thought point #1 was somewhat in accordance with what you said.  I know the arguments for why we shouldn’t care about performance, but I still here Dr. Snell say that only C is practical for high-performance computing (including distributed scientific apps as well as real-time systems), dismissing the fact that LISP languages CAN run as fast as C, or at least close enough to work in 99.999% of applications.  Why would he say that?  Conversely, Dr. McCarthy, who is in love with scheme, says that all arguments that scheme is slower than C are bogus.  Well, let him prove it by actually building the compiler that makes it so.


I think I missed the argument that AppleScript represented a potentially good idea when I first read your article.  So now I get what you meant by criticism of Apple (specifically that AppleScript should be JS) stifling progress.

@Bosco
But they also let the 85 IQ crowd make some horrendous programs that the 115 IQ crowd has to fix…
(Not an objection, just a comment.  I’ll use whatever tool helps me be more productive.)

Log-in to comment