Stack Exchange clickbait "editor war"

In Modern IDEs are magic. Why are so many coders still using Vim and Emacs?, the writers John Biggs and Ryan Donovan go a long way to offend and patronize programmers “of a certain generation” in an effort to promote IDEs (but not a particular IDE). They’re kicking a sleeping dog for no good reason.

At first I thought this was an April Fools / Onion style article. I can see where they are trying to make jokes, and, having been around comics, I’ve been told that’s the worst feedback. “I can see what you were trying to do there” explains that not only did it fail, but the mechanics were apparent. The content and the mechanism failed.

My advice about code editors is simple and disinterested: use whatever you want as long as it doesn’t force anyone else to use what you want. Along with that, try different editors throughout your career. Done and done. If you want to use emacs, that’s fine as long as I don’t have to use emacs and you get your work done.

Today I’ve used vi, nano, BBEdit, and XCode. I’ve used scores of other editors throughout my career. I spent over a year in emacs because I figured I had to learn it and that was a suitable time to discover if I liked it past the initial effort. It was fine, although some of the key combos were backward from the EDT editor in VMS, which I was also using heavily at the time. I’ve used various IDEs, but I don’t like to live in one despite their efforts to take over your screen (a particular bit of culture from Windows). But, I really don’t care what anyone else uses or what they like. And, many people I work with have tried lots of things just because they are curious people.

Their idea has a much better version written by Sourcerer Bot: Vim, Emacs and their forever war. Does it even matter any more?, and Oliver Steele thinks it’s the difference between language people and tools people. There are lots of interesting ideas, just not in this Stack Exchange blog post.

Who are these guys?

Their sophomoric tone and zeal to offend makes me wonder if they just graduated a coding boot camp. Why are either of these people interesting to the StackOverflow audience? There are plenty of communities out there who have celebrities who I wouldn’t recognize, and no one probably recognizes me. Maybe these two have really good reputations and this is the first time I’ve encountered them.

John Biggs has five GitHub repos and two contributions in the last year. He hasn’t asked any questions on StackOverflow, nor answered any. Curiously, his StackOverflow author profile doesn’t link to his programming CV or even his StackOverflow account. His TechCrunch profile says “After spending his formative years as a programmer, …” and his articles are mostly puff piece regurgitations of corporate public relations messages with no deeper investigation. It’s not quite clickbait, but I think it’s solidly within the realm of deadline-based infotainment. He’s also the Editor-in-Chief at Gizmodo, where he writes straightforward pieces that mostly follows the inverted pyramid and makes cogent statements. All of that is to say that this guy has been around long enough to be able to write a better post.

Ryan Donovan is a tech writer at Stack Exchange. He’s the same person that was soliciting blog submissions for pay this January. He’s been a writer since 1998 and has a degree in Creative Writing. No excuses there, either. He lists is role at StackOverflow as “Content Marketer”, which sounds close to “Content Farmer”.

I’ve noticed that the Stack Exchange editors like to share the bylines, which I think is horrendous. I’ve never added myself to a byline for any article I’ve edited, whether in the magazine I used to run or the various outlets I helped. That’s really sketchy to me, even when I’ve effectively changed every sentence of a submission. An editor helps a writer develop and express their ideas, but the editor neither takes credit for them nor endorses them. That’s why an editor is not credited as a writer, and shouldn’t be.

What’s even worse is that low quality of the writing from two experienced people. Two! It takes more than one person to be this bad. But, I think that’s also the source of the internal inconsistency throughout the article. This is Jekyll & Hyde writing: two articles with competing ideas intertwined. One wants to push the boundaries with the age-ist ideas, and the other wants to reflect (not prescribe) reality.

It’s not that bad. As a writer I know we try things and sometimes it doesn’t land like we think it would. We try a new style (and this is much edgier than anything I’ve read from John) and don’t quite get it to work. I’ve done that too, but I’ve usually had an editor either push back or reject the article. This stuff takes practice. No big whoop—it’s one short, inconsequential article in a career.

The editor wars

First, there’s the vim versus emacs thing. It’s mostly a joke within programming communities, even if some people are pretty serious about it. There’s no “war” or people fighting about it; there are internet people stridently defending their choice, perhaps, but that’s almost no one. For every opinion you see on the internet, there are thousands more people who just don’t care. The selection bias of people on Twitter (the new usenet) is not reality.

This debate is an evergreen and tired topic. It’s the sort of title that makes people like me read the article. It’s also the reason I’ve blocked several domains on my laptop so my browser can’t connect to them.

I don’t know if either writer has used vi or emacs, and if they haven’t, I don’t care what they think. If they have, I want to understand how they chose their editor. Plenty of people have different preferences than I do (probably all of them) and it’s that difference that is interesting. I’m less interested in father issues (see the later “Zune” comment).

The reporter’s job, in the case of no experience, is to talk to people and figure out what’s up. They quote two people in the article (with distracting, odd allusions to movies). No stats, surveys, white papers, or Gardner surveys appear. Not only that, those two people have the same opinion and are both counterpoints to the unsupported idea of the post. They don’t quote anyone on their side, but they don’t give any evidence to support anything they assert either.

Ageism

The writers add a second, more useless dimension to the debate: age. They don’t specify which age they are assuming. These sort of statements are the sort that constitute harassment in a workplace, and I’d counsel any colleague (or even boss) about that sort of behavior. It’s acceptable on this blog, although it violates the StackOverflow Code of Conduct.

Is John Skeet, the best asset StackOverflow has, “of a certain generation”? He and I are roughly the same age and have both been around StackOverflow since the beginning. Who does Stack Exchange think provides most of the value on their sites, and why is it appropriate to attack “a certain generation” when the article’s subtitle is “a grumbling shuffle of ingrained habit and stubborn resistance to change”?

None of these statements speak to the merits of choosing an editor, but use rhetorical fallacies to avoid the merits by questioning credibility and promoting stereotypes. Remember, neither of these writers are developers:

  • “of a certain generation”
  • “a point where neither seems to really want to fade off into the sunset”
  • “a grumbling shuffle of ingrained habit and stubborn resistance to change”
  • “As my father would attest, using his Microsoft Zune long after its support ran out, if it ain’t broke”
  • “for users who didn’t start coding in the last five years”
  • “an act of willful defiance”
  • “It’s mental mom’s spaghetti”
  • “their antiquated status in modern development environments”
  • “unable to let go of the past”
  • “unwilling to fully embrace the future of code editing”
  • “As coders’ careers evolve less through their expertise than who is signing their paychecks”

They put their thumbs on the scales despite their petulant writing correctly identifying why people use vi (although they don’t do the same for emacs, making this quite imbalanced):

  • “it was an extra license to look into,”
  • “Vim is always available. Any Linux machine has it.”
  • “Vim has a small footprint, low latency, fast startup, allows for more screen space”
  • “there is always a constant code editor available to them regardless of which IDE the company prefers”
  • “Visual Studio, for example, has massive performance issues when there are too many files associated with a project file.”
  • “PyCharm for Python development, it would sometimes become ‘confused’ and give bad feedback on its syntax analysis”

As many people have pointed out in the Reddit and Hacker News threads, the “vi crowd”, if there is such a thing, also use IDEs where appropriate. It’s not at all the situation that this article tries to make you believe. People tend to try lots of things and develop preferences. It’s not about age, but lacking any other argument in favor of IDEs, this is what they have.

Real reporting

There’s a question on the Unix stack site, What are the pros and cons of Vim and Emacs?, and I think it has some decent answers. Why doesn’t the blog promote Stack Exchange content though? Ryan is a “Content Marketer”—he should be pushing the value of Stack Exchange and featuring content. Does he even know about these assets? What does he really expect a reader to do next?

They also failed to include one of the more interesting products of Stack Exchange: the annual developer survey. Here’s the breakdown from the 2019 developer survey section on its tools:

  • 55.6% Visual Studio Code
  • 32.5% Visual Studio
  • 30.4% Notepad++
  • 25.9% Vim
  • 4.1% emacs

Is it even true that developers don’t use IDEs? Visual Studio Code is available for all major platforms and most respondents use it, although half of the respondents work on Windows as their primary platform. Visual Studio is the second most reported IDE. Notepad++ is the third. There’s a heavy Windows focus here, but the site is a .NET technology after all.

And, 25.6% of the respondents report that their primary operating system is Unix, which is essentially the same number of people who reported Vim as their editor. There’s What tools does Linux programmer use to develop programs? that has some interesting answers. Again, this is interesting content that Stack Exchange can promote.

There’s no Vim versus Emacs here; it’s more about the platform. Linux comes with an editor suitable for code, and people use it. Windows doesn’t come with such an editor, so people need to install something else. Visual Studio Code is free. That’s not edgy enough, though.

Why does anyone use an IDE though?

There are more interesting questions such a post might have asked. Why should we use an IDE? “Modern” isn’t enough and “Modern” doesn’t pay the bills. Do you use scissors or lasers, and why aren’t you using the lasers?

Imagine trying to maintain or develop Java, .Net, or Swift in anything but an IDE. Those environments don’t really want you to know how the sausage is made. It’s a convoluted set of steps that the IDE hides from you. Worse yet, since you shouldn’t know these things, you can’t do the same from a different environment. People often use the IDE they are forced to use by the technology that someone else chose for them.

Hillel Wayne notes in his response to the authors, Why I Still Use Vim:

There are fantastic IDEs for some languages, and good enough IDE-lites for most languages.

Leonora Tindall addresses this in Stop Making Students Use Eclipse.

Most IDEs, though, primarily serve two purposes for students. First, in a Java-focused curriculum, it insulates the student from the javac command line program, and the command line environment itself. Second, it catches some basic mistakes and allows the student to defer learning about the finnicky language requirements that aren’t deemed core to the curriculum, like imports and file naming requirements.

She goes on the note the consequence of reliance on an IDE so early in a Computer Science program:

What they can’t do, unless they’ve figured it out on their own, is operate a computer outside of the confines of the IDE they’ve been taught.

She notes that very few students figure it out on their own, even to the point that there is a Missing Semester series of videos for the MIT class of the same name.

As a side note, if you’re able to pass your college class doing only what the instructor told you to do, you aren’t getting your money’s worth. If you could simply watch a video of the class and get the same experience (as many now are during this pandemic), why should you pay so much money?

Think about that. This is MIT, one of the most revered technical schools in the world. These students are the brainics, we’re led to believe. Yet, they don’t figure this out on their own.

These are the same people who show up in the workplace, where no one knows what is happening or how things work. The developers job is to figure those things out. How does this new JavaScript library work? Figure it out. Why does every 100th request fail? Figure it out. Why is my AWS configuration not working? Figure it out. There are no manuals for many of these things: if you can’t learn about the things with manuals, how do you think you are going to learn the things without them? How are you going to do things that people haven’t done before?

In The Perils of JavaSchools, Joel Spolsky, one of the co-founders of StackOverflow, noted the change in CS curricula away from C/C++ or LISP to Java as almost purely a way to influence graduation rates. He notes:

Nothing about an all-Java CS degree really weeds out the students who lack the mental agility to deal with these concepts. As an employer, I’ve seen that the 100% Java schools have started churning out quite a few CS graduates who are simply not smart enough to work as programmer

The most telling statement from the Stack Exchange blog post is something that means the opposite of what the writers think it does, as aligns nicely with what Leonora and Joel have said:

[IDEs] serve an ever-growing segment of young developers who were never forced to thrive in Vim or Emacs environments.

That really means that young developers are stuck if their IDE doesn’t do it for them. They are less creative in investigating, debugging, and exploring because they are limited to what their IDE allows, and I think you’ll see this in the quality of questions and answers on StackOverflow overall.

That’s not an age thing either. That’s a culture thing.