My impression reading the "code" parts of it was, "There's no way in hell I would understand this if I weren't a coder." You'd understand the culture, sure, but if you've never programmed would you grok this paragraph?
> So what if, whaaaat if, we made a little box called Customer (call it a “class,” as in the taxonomical sense, like a Customer is a subclass of the species human, which is a subclass of mammal, etc.), and we put the data and methods relating to customers into that box. (And by box, it’s literally just “public class Customer {}” and anything inside the {} relates to that particular class.)
It's a solid effort, but for someone who isn't technical, jumping from,"ok we have a thing called a class" to "and that's object oriented programming!" is just not something you can do in one paragraph, no matter how well it's written.
The piece uses this bewildering-for-the-lay-person language sparingly, and I think it's intended to be bewildering. It seemed to me to be meant to confuse you at times, to then later make it clearer, or to provide an escape hatch, if the reader so desired to give it a try. It's meant to give an impression of, an emotional connection to, what it means to be a programmer. To be a programmer is to take on understanding that bewildering language. It's not just some magic that we can do because we "get" computers. It was hard work that got us here.
I agree with both of you. I think the piece is brilliantly done, and the writing is just jaw-droppingly good. But I said to myself, about half-way through reading it: there's just no way a non-coder is going to "get it".
But then, how much better a job could anyone do to explain it to a non-coder? Past a certain point, you either dive in, or you don't.
I think it's brilliant too - possibly the first ever piece of genuine digital journalism.
And I think it's worth making a distinction between two aims - understanding a little about code and the culture around it, and learning how to write professional code.
Obviously you're not going to do the latter in 38,000 words.
> So what if, whaaaat if, we made a little box called Customer (call it a “class,” as in the taxonomical sense, like a Customer is a subclass of the species human, which is a subclass of mammal, etc.), and we put the data and methods relating to customers into that box. (And by box, it’s literally just “public class Customer {}” and anything inside the {} relates to that particular class.)
It's a solid effort, but for someone who isn't technical, jumping from,"ok we have a thing called a class" to "and that's object oriented programming!" is just not something you can do in one paragraph, no matter how well it's written.