walls.corpus

By Nathan L. Walls

  • Sunset, Jan. 2, 2021/Williams Township
  • On Bougher Hill/Williams Township
  • Sunrise, Dec. 19, 2020/Williams Township
  • Sunset, Dec. 27, 2020

Lonely coding

Marco Arment created Instapaper, one of my absolute favorite ways to cache and read links I just don’t have time to read right now. He was very recently interviewed by Bridging the Nerd Gap, and was talking about his set-up, coffee, editors and other geek bits. There’s much to respect there.

Then, when asked his hardest to replace tool, he names PHP. I know good, valuable PHP can be written. Instapaper is written in PHP. Flickr is, too. I’m not so much interested in his choice of language, but his rationale at using it:

Most people judge PHP on bad tutorial code they saw ten years ago. But it’s a very capable, advanced language that supports many modern programming amenities

Very true, and I’ve been guilty.

But then, he outlines what he doesn’t like:

… Its method names, parameter orders, and general styles are inconsistent. Its core designers and Zend are all over the place and often make decisions that I strongly disagree with. It doesn’t have any practical support for parallelism. And nearly every third-party module or library I’ve ever used has been terrible.

Coding professionally in PHP is lonely. While I know this isn’t the case, it always feels like we’re the only ones using it at this scale, because we hit so many bugs in critical modules …

I feel a strong aversion to that lonely feeling as a developer. That’s one reason why I’ve grown more attached to Ruby and moved away from Perl as my preferred language in recent years. It isn’t the community around the language. I’m certain PHP has a sizable community. Instead, there’s something else – are the developers I want to learn from where I am? I know there are benefits to being a great teacher, so even being the smartest guy in the room doesn’t have to be all bad. But I don’t see any benefit in being a programming monk.

Further, I’d find it very frustrating as a developer if I felt the language maintainers and I were working at cross-purposes. And to not have great third-party libraries? I’ve run into my share of RubyGem and CPAN crap, but there’s always been a number of great things that provide much better solutions than I could make (or, given my interests, would care to make). This all sounds like this frustrates Arment as well, but for the life of me, I couldn’t see myself continuing to hold on to the tool if all this were true. I’m fascinated Arment can.