
What Is 'What Is Code?' - edward
http://motherboard.vice.com/read/what-is-what-is-code
======
dpweb
Disclaimer: I'm older than average. I can't help feeling nostalgic for the
good old days before our thing went mainstream.

Price of success I suppose, but now we have proclamations like "The world
belongs to people who code. Those who don't understand will be left behind".
Another example in a daily stream of hyperbolic mass media reports, reminding
us yet again that 'software is eating the world'.

I have to say I preferred when the whole thing was regarded more as an
exciting hobby - mostly by and for those who took the time to study the craft
- than a world dominating force. This article may have value, but in those
days you knew you were free of the grand statements. Money backs this new
world, not code.

~~~
fredgrott
old enough to remember byte magazine?

~~~
dpweb
i loved computer shopper - PRINT version

~~~
walterbell
Jason Scott visiting that memory lane:

[http://ascii.textfiles.com/archives/1835](http://ascii.textfiles.com/archives/1835)

[https://archive.org/details/computer_shopper](https://archive.org/details/computer_shopper)

------
owenversteeg
I think it's an absolutely amazing piece. I know, I'm on HN, I'm not allowed
to appreciate anything, but hear me out.

A lot of people here seem to be criticizing it because it has something they
don't think fits everyone: austenallred thinks most people won't like its
brief explanation of classes, others seem to delight in picking out things
they think most people wouldn't understand and writing snarky comments about
them. But "fitting everyone" would be impossible due to the gigantic range of
people reading the article. This article brought together everyone: old and
young, the suits and the programmers, PHP script-kiddies and artisanal Haskell
sculptors into one mass of enchanted readers.

The people I know that read this have almost nothing in common: wannabe
teenage intellectuals, middle managers, a kind, witty man in his 70s, spouses
of programmers, people learning to code. As another commenter said, this
article is something new: an article as an event. [0] An article as art. [1]
But instead of dividing people, as may be expected (news events all too often
separate crowds into opposing mobs; modern art separates people faster than
oil and water) it brought them all together to talk about code.

[0]
[https://news.ycombinator.com/item?id=9738351](https://news.ycombinator.com/item?id=9738351)

[1]
[https://news.ycombinator.com/item?id=9738706](https://news.ycombinator.com/item?id=9738706)

------
danso
> _Tyrangiel says the piece is worth reading, not only because of the
> herculean efforts behind programming the page, but because it truly does
> bridge the gap between laypeople and programmers._

I'd like to see the proof in the pudding...in the original piece, Ford
described how it was commissioned by the Bloomberg Businessweek editor who
asked Ford, “Can you tell me what code is?”

It'd be interesting to hear from the editor -- after spending weeks (months?)
editing all 38,000 words of Ford's piece -- can he/she now tell _everyone
else_ what code is? I liked the piece (though I didn't finish all of it and
skimmed a few parts)...but a lot of it struck me as reading that was very
interesting/amusing because I was already a coder...I'm interested in what
non-coders learned from it.

~~~
austenallred
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.

~~~
moron4hire
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.

~~~
uptownJimmy
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.

~~~
austenallred
To be clear, I don't think it's the writer's fault. "Teach CS101 in one
paragraph" is simply an impossible task

~~~
TheOtherHobbes
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.

But it's superb at the former.

------
Tloewald
WIC seemed to me more like a self indulgent brain dump than a work of art or a
useful piece of information. First of all, it treats code as being somehow
uniquely impenetrable as a value proposition - when we have plenty of similar
examples such as any kind of creative art (why is one script worth $100M and
another $0 and how can you reliably create one and not the other?) or highly
refined mass produced good (e.g. Silicon chips or soda cans) or valuable
insight (e.g. Progress in physics can be very expensive and yet be represented
as a few scribbles on a page).

You don't need to reduce a computer to a clock with benefits to explain code
any more than you need to explain how a typewriter works to explain writing.

~~~
justinhj
A typewriter is an optional tool for producing a written work. With
programming the computer is a necessary object required for converting the
intentions of a programmer into both information about the world and actions
within it. I think it's fundamental to understanding code to grasp a
meaningful model of what a computer is and how it turns key presses into code
on the screen and in a file, how it turns the code in that file into a
sequence of simple instructions and finally what those instructions do.

This article did a good job of that as well as many other aspects of software
development.

~~~
Tloewald
A keyboard is just as optional as a typewriter. When I first learned to
program the device I learned on did not have a keyboard in the sense
described; many people have learned to program by, e.g. Flipping switches on a
panel.

The first computer-like things (e.g. Jacquard looms) were programmed by
physical objects — indeed one of the first gadgets I learned to program used
punchcards you punched manually with a pencil.

The digression into keyboards exemplifies the "self indulgent brain dump"
issue I am complaining about. It reminds me of "Mathematics made difficult"
except that the book in question was humorous and not pretending to make its
subject more accessible.

~~~
justinhj
I didn't mention keyboards in my comment.

------
runj__
Joshua Topolsky and Paul Ford discussed the piece here:
[https://soundcloud.com/tomorrowpodcast/episode-10-paul-
ford-...](https://soundcloud.com/tomorrowpodcast/episode-10-paul-ford-and-
josh-whip-the-dip)

One part of the podcast that stuck with me was the idea of an article as an
event. It really was quite a while ago people talked about a text as an event.
I mean, like a new book or something.

I guess Buzzfeed (and the like, which is everyone nowadays) is sort of trying
to pay for their real journalism with "aww"-clicks and "omg!"-clicks, it
wouldn't surprise me if cool articles like this became more of a commonplace
thing.

~~~
skybrian
Lots of websites have been attempting to turn their long online feature
articles into events. This goes back at least to when New York Times did
Snowfall, and probably earlier. I assume that's why Paul Ford got the job on
this one.

But they don't appear every day. Or maybe they do, but not always as
successfully?

I agree that another success means that we'll probably see more attempts.

------
Mithaldu
The article mentions 'What is Code?' was open-sourced. Where is the repo?

Edit: Found it.
[https://github.com/BloombergMedia/whatiscode](https://github.com/BloombergMedia/whatiscode)

Damn, the network graph looks like the devil's hot kitchen.

~~~
danso
edit: via Ford's twitter account:
[https://twitter.com/ftrain/status/609705511651528704](https://twitter.com/ftrain/status/609705511651528704)

> the original was org-mode but it had to become word

I'm surprised -- almost _annoyed_ , honestly -- to see that the story body is
just one giant honking HTML file:

[https://github.com/BloombergMedia/whatiscode/blob/master/ind...](https://github.com/BloombergMedia/whatiscode/blob/master/index.html)

Maybe it started life as separate files that were assembled, and is now only
being edited ad hoc after the first public commit [1]? Maybe...but there's no
reason why the repo couldn't contain the component pieces (by that, I mean the
individual sections of the page), and rebuild them via grunt. In fact, that
would make it far easier to do ad-hoc fixes...as fixing HTML by hand is always
a pain in the ass...nevermind working within a 3,000+ line file.

I guess I'm just "annoyed" because mitigating the problems of working with
large, raw HTML -- and other parts of the textfile-to-publishing process -- is
one of those things that is so wonderfully the domain of the programmer. For
non-programming journalists, there's just no concept of being able to create a
one-command deterministic "build" of a story...so separating the story into
multiple files is very impractical...because it means you have to reassemble
them by copying-pasting when it's publication time. Also, since the average
writer tends to work in Word or some other proprietary document format (I've
spent a lot of my web production career translating .docx files to HTML to be
pasted into a Wordpress body field)...jumping into different files is not as
easy as it is when you're working with Markdown and Sublime Text. Also, much
harder to do a article-wide search-and-replace across multiple .docx files.

After learning Markdown (specifically, Kramdown) and static content systems
like Jekyll and Middleman...I honestly could not be paid to go into a job
where I had to build/publish content a non-automated process...e.g. a rich
text editor, whether Word or WordPress. Being able to produce good writing
means, well, first being a good writer, of course...but it's far easier to
focus on being a good writer when the production process is made frictionless.

[1]
[https://github.com/BloombergMedia/whatiscode/commit/837bc712...](https://github.com/BloombergMedia/whatiscode/commit/837bc712583afa43af92c310f1e3a85817c9585e#diff-
eacf331f0ffc35d4b482f1d15a887d3b)

~~~
moron4hire
> as fixing HTML by hand is always a pain in the ass

you have a really low bar for what constitutes a pain in the ass.

~~~
danso
You have no idea :)

------
pjungwir
This kind of thing is a shame:

    
    
        > You expect your staff to speak in plain language.
        > This policy has served you well in many facets of
        > operations, but it hasn’t worked at all when it
        > comes to overseeing software development.
    

I totally agree you should aim for a lay understanding of things outside your
specialty. Programming is technical, but so are business, law, accounting, and
medicine. I feel like explaining tech to non-tech people is something I'm
really good at, and I see how hard it is for other programmers. I suspect that
if our profession can learn to communicate better it will profit us all---but
then on the other hand I don't see my own ability making me rich. Maybe I just
haven't figured out how to make the most of it.

And this statement makes me mad:

    
    
        > All of the computer code that keeps the website
        > running must be replaced. At one time, it was
        > very valuable and was keeping the company 
        > running, but the new CTO thinks it’s garbage.
    

A project manager said to me once that he'd never heard one programmer praise
another's code. It's always "This is crap!" Another thing I think I'm good at
is coming on to a new project and adopting the style, patterns, and
architecture without wanting to reinvent everything. It takes patience to read
and understand, and not start too quickly to write. I feel like that behavior
sets me apart from even other good programmers, but I don't know how to take
advantage of it.

------
vinnyc
Great read for someone on the business side of the coding community. Very in
depth and relevant to those with no coding experience and experts at the same
time, curious to see how this sparks coverage on coding and its application to
those who haven't ventured into it yet

------
tempodox
Wow, that's meta. I find the original article truly a piece of art. It
explains code to laypersons but in a way that's also interesting for seasoned
programmers. Being able to bridge that gap requires more than just knowing
what code is.

------
digorithm
The real "piece of art" is the discussion going on here about such topic. (It
is no sarcasm, it's a really good/deep/insightful discussion, guys)

------
peter303
I thought it was summer filler for the magazine. Lot of the weeklies turn into
semi-weeklies during the summer vacation months.

P.S. Filler doesnt mean its fluff. it was very interesting.

------
shostack
I am an "early" programmer. I'm on Chapter 7 of Hartl's Rails Tutorial, took a
step back to learn Ruby early on and continued. This was all supplementing my
knowledge of HTML, CSS and some basic JS.

I recently decided to start the "From NAND to Tetris" Coursera course which
led me to starting Petzold's "Code" and then this article comes along.

There are people like my wife who have zero knowledge of coding, and likely
won't ever care enough about it to make it through this article (I tried, she
didn't get very far). They just have no interest, and I can respect that.

However for people like myself, I've realized that the more layers of the
onion I peel back, the more intrigued I become. When I think about it, I was
fascinated by fantasy-based magic systems when I was younger. I'm talking
things like D&D, Mage: The Ascension, etc. Then I read "The Wiz Biz" by Rick
Cook and realized that I was sucked in at the end when he realized how he
could harness the basic "first principles" of this fantasy magic system to
build abstractions that allowed for modern day coding principles.

My mind was blown, but I didn't realize just how much at the time.

Harry Potter interested me from the standpoint of "wow, I'd love to learn
magic in an academic environment--how cool would that be?" And then I found
myself hooked on the Magicians Trilogy by Lev Grossman which got as deep as
I'd ever seen a book get on some of the mechanics of the actual magic system.

Finally, I put two and two together and realized that what appealed to me
about all of this was the gradual understanding/building of a complex system
based on its simple component parts, and the deep knowledge that was needed to
master it. Then I realized that this was why I'm currently geeking out on
going under the hood of modern day abstractions and working up from First
Principles.

Again, I'm an "early" programmer. I don't fully grok half the crap I read. But
I've realized that learning software development on my own is about as close
as I'll ever get to working real, modern day magic. Clarke's 3rd law "Any
sufficiently advanced technology is indistinguishable from magic." is very
much top of mind lately. The fact that I can twiddle my fingers on a couple
buttons and conjure up pictures, video, any information I want, etc. is pure
magic.

There are many people out there like me who are amazed by the raw scope of how
far we've come, and this article did an amazing job at reminding me of that,
even though I may not have been the target audience, and that is why I enjoyed
it immensely.

Some people are scared and overwhelmed by complexity, while others seek to
understand it and tear it apart. I firmly believe the latter would have much
more interest in this article than the former.

~~~
SteveMoraco
^that said it really well.

New to hacker news. Loving the discussion that goes on here.

First off, I love that the article we're discussing compares WIC to Snowfall.
An apt comparison to be sure.

[http://www.nytimes.com/projects/2012/snow-
fall/#/?part=tunne...](http://www.nytimes.com/projects/2012/snow-
fall/#/?part=tunnel-creek)

So now, about What Is Code, not about the commentary on it:

I got into this article today not knowing it was ~40k words. I was tired by
the time I got to the silly certificate at the bottom, but I stayed intrigued
the whole way. It was well paced and had a fascinating amount of depth.

I admire the authors' ability to write unapologetically from his own
perspective. The sheer scope of this piece was a delight to dive into.

So same here. Not the target audience and enjoyed it immensely.

------
gaius
It is _really_ about teaching Bloomberg readers how to commoditize expensive
programmers.

~~~
dasil003
Business has been trying to do that for 50 years, but it doesn't really work
because the scope of software systems too broad and varied. In a way software
is an anti-commodity in its diversity. As much as "real" engineers rightfully
decry software as easy and less rigorous than physical engineering
disciplines, at the same time, the potential scope of software is greater than
physics itself—it is math incarnate. The only way to commodify programmers
would be to willingly limit software's scope to some established domain that
is well understood by the powers that be.

I don't see one article, no matter how brilliant, providing the tools make any
meaningful progress on that little management wet dream.

~~~
richardbrevig
> it is math incarnate.

I learned how to write functions and subroutines a _long_ time before learning
algebra. The way that functions were taught in my math class were so
confusing. Eventually I realized they were the same as what I learned coding.

------
MilnerRoute
I like how one of the pictures for the article is a color swatch for 'taupe'.

------
Ftuuky
Iḿ a non-coder and I felt light I already knew all he said in the piece. I
guess it's useful for some CEOs, now they kinda understand what their
employees are talking about.

