Software is terrible

“Web design, the first 100 years” has been making rounds in my feeds for the past week and is well worth the 30 minutes it’ll take to read it the first time. Despite its title, the talk is less about design as a visual substrate than it is about design as an intent.

Maciej Cegłowski (the man behind Pinboard) takes a stab at explaining why it is that technology is failing the people and fooling itself, all the while entertaining the fantasy of its own influence. Why are today’s applications, platforms and hardware generally mediocre despite the great promises that were made in the early days of the electronic era? Moore’s law hit a wall, the average smartphone barely holds a charge for more than 16 hours and networks are managed by the likes of Comcast and AT&T. The experience of computing feels increasingly constrained rather than liberating.

Are we done with it or just about the touch the void?

We started with music and publishing. Then retailing. Now we’re apparently doing taxis. We’re going to move a succession of industries into the cloud, and figure out how to do them better. Whether we have the right to do this, or whether it’s a good idea, are academic questions that will be rendered moot by the unstoppable forces of Progress. It’s a kind of software Manifest Destiny.

To achieve this vision, we must have software intermediaries in every human interaction, and in our physical environment.

But what if after software eats the world, it turns the world to shit?

Consider how fundamentally undemocratic this vision of the Web is. Because the Web started as a technical achievement, technical people are the ones who get to call the shots. We decide how to change the world, and the rest of you have to adapt.

Cegłowski classifies the actors of the Web in three mutually exclusive buckets: you can chose to consider the web as a network, a mean of control or a threat. The first bucket is happy — this is the web as we know it, the one where you can binge on Wikipedia, write a rant to your church mailing list or create Bittorrent. The second bucket is full of folks eager to have more of it all — it’s the folks who keep We put a chip in it running. The third bucket is trying to leave Earth because the singularity will otherwise ruin everything.

A long time ago, I think I was in the second bucket. Move fast, code away, break things. But what I’ve learned over the past 10 years of writing software professionally is that writing software should probably be considered as a last resort. The cost and pain of writing and using software is likely to trump the cost of the problem it actually seeks to address. The failure to deliver ever-more powerful hardware on a clock-like schedule revealed an ugly truth.

Software is terrible

Software doesn’t fix broken processes, it actually exposes them and sheds light on their bizarre limit conditions and impossibility to be generalized. Trying to simultaneously design and automate a new process is a great way to get nowhere. Not only do engineers have finite amount of time and patience, but they get away with so much. Why would they care about usability or stability when users were conditioned to reboot their PC, to routinely work around common bugs, to save and backup their work at every occasion? And then at the smallest sign of defiance, when the user is finally enjoying a working system, it’s time for an upgrade. Because, fuck you user, we know better. Thank you for your purchase, please come back.

A full year after I purchased it and after dozens of updates, my GPS watch is still incapable of properly syncing wirelessly with my phone – that’s despite the manufacturer shipping an app for it. And I have to go through a desktop to update the firmware. Who cares if half the internet population doesn’t even own a PC? My 2013 phone is just finally getting upgraded to Lollipop, six full months after the manufacturer promised the OTA would land. These are minor examples but they are infuriating – what other industry would get away with that kind of incompetence and deceitfulness?

Well, the answer is probably the military, or construction, which is a sad state of affairs. Software came with the promise to be better, to be a bicycle for the mind. The fact that it had so many past examples of failures to learn from makes its suckitude inexcusable. A few weeks ago, we reached the point where we can realistically exploit bad software design to remotely take control of a running vehicle. Will DMVs train drivers to reboot their cars when they start behaving at freeway speeds?

Software didn’t prevent the Germanwings’ plane from being smashed on the side of that mountain. It might be hubris to consider that it could have, or maybe not. It certainly warned the pilots of AF447 what the situation was and they were confused about what to do about it. The examples are numerous and the end result is the same and it is tragic – even when software is as good as it gets, we choose to let operators remain in control. Weirdly enough, we’re on a fast track to allow self-driving cars on our roads.

Software is a never-ending illustration of the knowledge gap that each human has about its own species. The biggest mistake we routinely make is assuming that everyone thinks like us – hence having the same problems and needing the same solution. The second biggest mistake is thinking that no one thinks like us. Software is terrible because it is human. That also makes it great, and surprising, and playful and allows for quick hacks of genius to be implemented.

Havens of near-sanity

Not all software is that bad. Google Now is a recent example of product that hardly ever ceases to amaze. A continuous, preemptive, predictive, personal search engine that sits in my pocket all the time. It makes attempts to understand me, though it does come at the price of trusting Megacorp with pretty much all of my data. Which is fine as long they don’t take your access away.

My DLSR camera routinely impresses me, too. It boots in under half a second, performs the most common task I use it for swiftly and neatly. It’s incredibly customizable, It connects seamlessly to a wide range of third-party accessories. It processes dozens of megabytes of data in a fraction of a second, and is optimized to function for days on a battery the size of two AA batteries. It is mediocre at formatting a 32 GB memory card – that’s a great tradeoff. I don’t feel any need to upgrade its firmware, though I probably could. The software is correct and gets out of the way.

And then there’s the box of magical little stuff that is weird, beautiful or hacky. It’s not a huge box but its very existence is comforting.

Computing as a resource is an idea that has gotten an incredible amount of traction in just a few years. Startups no longer wonder how to provision hardware anymore — it’s been such a massive and sudden shift it’s easy to forget how things were done before. The flip of the coin is that AWS nodes are already an abstraction on top of which containerized applications get shipped. Such containers are deployed on an orchestrator which itself is managed by a meta-OS.

Zero f#*!$ given as a service

When is enough good enough? When are we going to stop jumping the software shark? There’s a huge appeal to make server applications easier to manage but every second spent dockerizing an app is a second spent not building a feature. Each layer of abstraction is driving us further away from the metal. At what point do you get to work instead of figuring how stuff works? And it’s not just an enterprise problematic — as Apple has shifted resources over to iOS, Mac OS has been dangerously stagnating for a few years. I just wish it stayed as is but private software entities just don’t have the economic incentive to keep up.

From a programming standpoint, I have a huge bias in favor of tools like Polymer, Quartz Composer or even Yahoo Pipes because they encapsulate the complexity of code and allow the user to literally connect black boxes that are meant to just work. They reason in terms of data flows and signals rather than algorithms. It’s truly software as a service but the runtime is on the client side. Turning on an 8-year-old iPhone is all it takes to realize remote software as a service is still a buzzword.

At the turn of the 19th century, electricians were living gods: their skill-set was considered highly technical and rewarded accordingly. Electricity was disrupting industries, reshaping cities, accelerating the world. Because we collectively recognized the usefulness of free-flowing energy available at all times, we commodified it – essentially making the job of an electrician dull and repetitive and moving on to problems of a higher level.

Knowing to code is irrelevant. It merely equates to ordering electrons in a circuit to go either right or left. Knowing when or why the electron should go right or left is what matters. At some point, someone ten times dumber than present software engineers likely will be able to do the same. This is a great thing and I’m looking forward to the day where software can get out of the way and become the smart substrate it promised to be.

Rather than teach everyone how to code, let’s teach them to think. The coding can come later; it’s easier.

Rob Pike


Same-sex marriage becomes legal in the U.S.

This morning, the Supreme Court ruled to grant to all same-sex couples the right to marry. States may no longer refuse to issue marriage licenses, to anyone.

No union is more profound than marriage, for it embodies the highest ideals of love, fidelity, devotion, sacrifice, and family. In forming a marital union, two people become something greater than once they were. As some of the petitioners in these cases demonstrate, marriage embodies a love that may endure even past death. It would misunderstand these men and women to say they disrespect the idea of marriage. Their plea is that they do respect it, respect it so deeply that they seek to find its fulfillment for themselves. Their hope is not to be condemned to live in loneliness, excluded from one of civilization’s oldest institutions. They ask for equal dignity in the eyes of the law. The Constitution grants them that right. The judgment of the Court of Appeals for the Sixth Circuit is reversed.

A few years ago, I was lucky to attend a talk given by Cleve Jones at Google. If you don’t know who Cleve Jones is, you may have seen him portrayed by Emile Hirsch in the movie Milk. Jones was part of Milk’s entourage. A leader in the fight for equal LGBT civil rights, Jones went on to also become a strong voice in defense of the people afflicted with HIV and AIDS. He’s, essentially, a legend.

I don’t exactly recall the date or even the exact year this talk took place, but the times were grim. Prop 8 had recently passed and the status of same-sex couples who had obtained marriage licenses was unclear, both at the state and federal level. Othere states were slowly legalizing same-sex marriages, while others refused to recognize such licenses. At the federal level, deportation notices were being issued against foreign spouses of gay or lesbian citizens.

Jones, like everyone, wanted this to end. But he was, more than everyone, sick of the petty fights and power struggles happening at the state and local level. He foresaw that this was an decisive enough issue to deserve being brought front of the highest court and hope it would void the states’ right to deny equality to same-sex couples. Today’s ruling fully validates this stance and is the latest milestone in an incredible turn of the public opinion when it comes to accepting the LGTB community. Jones said it better himself — I’m paraphrasing:

If you had told me when I was young that I would one day fight for LGBT people to get married and join the army, I wouldn’t have believed you.

He himself had to go from a time where gays were ostracized from the rest of the civil society to considering belonging in full and fitting into even the most conservative and bourgeois institutions of our society.

This ruling doesn’t just make the situation better for LGBT people, it makes the whole country better for everyone. It illustrates, if not justice, progress. Many discriminatory laws are left to fight against, and these don’t just target LGBT folks. But this is one less. Justice never comes fast enough. But that doens’t mean nothing happens in the meantime either.

All I know now is: Sunday will be one hell of a Pride Parade.


The Silver Punk Rock Club

Some personal news: in the past couple of months, my older sister turned 40 and my younger brother turned 30. 2015 will be the year where my immediate family may no longer find comfort in having at least one last person under the age of 30. Not that we were all 17-year-old coke snorters three months ago and suddenly find ourselves responsible adults and productive members of society – no, this was as insiduous of a process as it gets. Birthdays are just fixed little marks in time that trigger, at least for me, an occasion to situate myself in it. Except that no, this is the first time this actually happens.

I’ve been to a couple of shows in the past two months — Yelle toured in San Francisco again, coming in town as a detour on her way to Coachella. She played in a rather small venue, that I didn’t find up to the standing and energy of the band. Sure, I had seen the same show just 5 months again — twice at that. It was undoubtedly lacking the punch I witnessed last year.

Throwback Sunday: over 14 years ago, one of the first concerts I attended was that of At the Drive-In, who played at the CCO — a rather confidential venue in a suburb of Lyon in France, near the school I was going to at the time. I also found it undeserving of the band’s fame and energy, but I couldn’t be more happy to have a chance to see the band I had been avidly following since my first listen to Relationship of Command 6 months prior. It’s hard now to exactly pinpoint what it was about that show but I hold it in my memory as possibly the best concert I’ve ever attended. It was just that good

Antemasque is the closest thing to At the Drive-In since At the Drive-in died (twice) and I felt compelled to see what they’re worth at the Fillmore. The result ends up being a lot less exciting than Bixler-Zavala’s previous works, with only short punk rock stints and lyrics that, despite their remarkable intelligibility, feel washed out compared to what ATDI and the Mars Volta have produced. People apparently do tend to forget.

And in the past month, I was invited to attend a performance by Helmet. I was completely oblvious to that band – had never seen them and never heard of them, which was in sharp contrast with the friend who extended the invitation and for whom Helmet’s Betty appeared foundational to his taste for hard-rock. And sure, it was undoubtedly a solid alt-metal performance but it was hard to ignore the audience’s median age of 35+. Old punks ironically wearing suits, possibly to keep the promise they had made to themselves 20 years ago.

So, to me right now, feeling older means feeling less excited about things which once were central — I could probably keep up with the rate at which younger artists show up and release things but I presently lack the intellectual energy to sift and filter through all the stuff to find a nugget. Relying on Pitchfork feels irrelevant and artificial. I tend to naturally barricade myself in bands and albums that are familiar, comfortable like an old leather chair that has the imprint of my butt.

It’s a mixed bag of feelings – I feel attached to the stuff that shaped the person I am today and conversely content to allocate time to other things, like rolling my eyes when I hear Kanye West and scheduling when I’ll watch the next episode of Mad Men on Netflix – and realizing the show takes place in a time closer to my date of birth than today is.

I started writing this post about a month ago but this seems to be a common thread with something Jason Kottke published last week, where he ends up quoting Hank Green’s mindblowing XOXO talk from 2014:

You have no obligation to your former self. He is dumber than you and doesn’t exist

OK, cool then.