Having the appearance of good design (SIGAVDI #30)

Hello friends,

It’s been another chilly week here in the foothills. I managed to sneak out for a Friday morning hike, and ran across some of the fire damage from November.

David McIver writes, in a post from a couple years back:

Ruby is full of people who think they’re doing good API design, but they’re not. The problem is that in Ruby everyone is designing “DSLs”… You’re not doing good API design – you’re doing something that has the appearance of good API design, but is in reality horrifically non-modular and will break in catastrophic ways the first time something unexpected happens, but the lovely syntax lets you pat yourself on the back and tell yourself what a good API designer you are.

And then there’s Haskell.

The way this problem manifests in Haskell is in how incredibly clever it makes you feel to get something done in it. Haskell is different enough from most languages that everything feels like an achievement when writing it. “Look, I used a monad! And defined my own type class for custom folding of data! Isn’t that amazing?“. “What does it do?” “It’s a CRUD app”.

One of the difficult, and at times disheartening lessons I’ve learned over the years is that there is a fine line in software between skills that actually increase your leverage, versus the ones which just make you feel smarter.

There is an infinite space available for making essentially prosaic knowledge feel excitingly technical and deep. Witness Git, a DVCS that does things that other DVCSes did before it, only much faster… and with an interface that makes you feel like a PhD once you finally master it. (At least, I assume that’s what it would feel like.)

Speaking of Git… have you seen GitKraken? I love the idea of a gorgeous, responsive, and genuinely useful Git GUI. Yes, for the sheer utility of it. But also, slightly more maliciously, because of the thought of certain brains exploding at the blasphemy of accomplishing Very Technical Git Stuff using drag-and-drop.

Legendary designer Don Norman, author of The Design of Everyday Things, has a bone to pick with both Apple’s and Google’s design approaches.

More traditional designers are more applied artists. They claim they take a human-centered approach, but they do it by thinking about the people, which is not the same things as using or testing with people.

And he says that the big company doing the best design work right now is…

…take a sip of coffee…


…clean coffee off of your screen.

To be fair, he also notes that they had nowhere to go but up.

Mariano Grappa chronicles a switch from Scala to Go:

Even the more ambitious attempts at Scala integration struggled on multiple project builds, most notably Jetbrains’ Intellij Scala Plugin, with jump-to-definition taking us to outdated JARs rather than the modified files. We’ve seen broken highlighting on code using advanced language features, too.

More and more I’m convinced that programming languages must be judged holistically, and in particular that they can’t be considered separately from their tooling. The idea that you can just build a beautiful language in a vacuum and the tooling will follow ignores the truth that a programming language is more than mere notation. It’s a medium we manipulate as a way of grappling with our ideas.

Notice that I didn’t say the system would be “more objective.” Algorithms are often presented as if they’re silver bullets, inherently fair and morally neutral thanks to their mathematical nature. But that’s not true. Rather, they should be seen as social constructs that have been formalized and automated.

— When Algorithms Came for our Children

Joe, Joe, the Founder’s Bro

Hired in as CMO

Spent the seed

On his weed

Got a job at the VC

From Mother Goose for Cofoundersby Camille Fournier.

Today I’m just going to link to one self-promotional thing: The bundle deal with Thoughtbot’s Upcase I’ve been hinting at is available now, and it’s a doozy. We are bundling a full year of Upcase with a full year of RubyTapas at a steep discount. There is also a higher tier with some nifty bonuses, as well as offers just for teams. The deal runs this week only, and there’s an extra 10% discount if you take advantage today, Monday the 30th.

When you sell training products to consumers, as I do, promotions like this often make up a big chunk of yearly revenue. I also have some specific motivations to bring in extra income right now: namely, our family vehicle is rusting to pieces (literally!), and our tap water is brown. If I could manage to replace both our truck and our busted household filtration system this year, without going into debt, it would make me a very happy camper indeed. Which is all to say: if you could spread the word about this promotion on the Twitters and whatnot, I’d be very grateful!

This week I’m grateful for the Thrive Themes suite of tools. If you’re not marketing a product using the WordPress platform, you won’t have any use for this. But if you ever do happen to be in that situation, it’s an amazing timesaver for everything from creating opt-in forms and landing pages, to collecting and organizing testimonials.

I think that about wraps it up for this week. Keep in touch, and happy hacking!

— Avdi