
What is code? - wyclif
http://www.economist.com/blogs/economist-explains/2015/09/economist-explains-3
======
mashmac2
If you haven't seen the Bloomberg version of 'What is code?', take a look.

[http://www.bloomberg.com/graphics/2015-paul-ford-what-is-
cod...](http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/)

It's much longer, but also much more detailed and in-depth.

~~~
wuschel
_Code: The Hidden Language of Computer Hardware and Software_ by _Charles
Petzold_ is an excellent book I have recently begun to read. It's even longer
that the Bloomberg post, and also such much more detailed and in-depth (-;

In fact, I found the book very enjoyable. It gives a nice pedagogic twist on
how information can processed with hardware.

It has been discussed on HN here:
[https://news.ycombinator.com/item?id=1936474](https://news.ycombinator.com/item?id=1936474)

~~~
veritas3241
I just picked this book up as well. I've been trying to find resources that go
from first principles to real-world implementation of something and this is
the best example I've found so far. Enjoy!

------
sanderjd
> Worried that your job is in danger of being automated away by software?
> Learning to code could be a useful insurance policy.

I often worry that we're setting ourselves up for major failure here. There is
no fundamental principle that suggests most kinds of programming are any less
susceptible to automation than any other kind of work. Especially the kinds of
things that are taught in most "learn to code" programs – simple web
applications – are increasingly commoditized or able to be built out of
commodity pieces, and that trend will only increase. Another popular reason to
learn to code is to do data analysis or procedural tasks for your line of
business, but in the long run, those tasks are probably better served by more
purpose-built tools that have more in common with spreadsheets than the types
of things professional software developers do.

I guess my point is that there seems to be a meme that extolls the virtues of
"learning to code" as an _end_ , rather than as a _means_ to be more effective
at something _else_. I'd rather see articles about what those somethings-else
are, and how knowing how to program can augment them, but those seem fewer and
further between.

~~~
outworlder
> There is no fundamental principle that suggests most kinds of programming
> are any less susceptible to automation than any other kind of work

Well, as a fundamental principle, there's the Halting Problem.

The simplest programming tasks will be simplified to some extend or be
commoditised. In much of the same way we can purchase website templates and
website builders can get the trivial sites up and running with no knowledge.
In the past, HTML was required knowledge to publish a blog, but not anymore.

But there's a reason most professional applications are not developed with
such tools. Given that, I expect the careers of programmers that aren't IDE-
pilots are safe for the foreseeable future.

Increasingly complex task will be, and already are, being automated. But so
far, all that progress has only increased the programmer's leverage.

> I guess my point is that there seems to be a meme that extolls the virtues
> of "learning to code" as an end, rather than as a means to be more effective
> at something else.

I completely agree with that. Outside of IT, there are many areas that would
benefit from some programming knowledge and are currently under-served.

~~~
sanderjd
Your appeal to the Halting Problem is basically why I included the "most kinds
of" weasel words. As much as we don't like to admit it, the vast majority of
professional programmers are doing things that are properly categorized as
"the simplest programming tasks". You're right that _so far_ the automation
trend has only increased programmers' leverage, but I don't think there's any
more reason to think that will be an indefinite trend than there was to think
automotive assembly would always be a high-skill job.

I think programming should be thought of as a useful skill (like math or
writing) that for most people comes in handy in small but myriad ways, while a
smaller segment of people gain more expertise and do it professionally (like
mathematicians or writers). Maybe that's how most of this nascent movement is
thinking of it, but it seems to me it's being sold more as a solution to the
future job woes that many foresee.

~~~
Lawtonfogle
>I don't think there's any more reason to think that will be an indefinite
trend than there was to think automotive assembly would always be a high-skill
job.

It isn't. One day even programmers will, in general, be replaced. The way I
see it is that programmers will be one of the last ones to be replaced because
once they are replaced, everything else that can be replaced that isn't will
soon follow (as replacing programmers will send the process of replacing such
jobs into overdrive).

Everyone learning programming does not solve the bigger problem for society,
but it is probably one of the safest careers even if it isn't safe.

~~~
sanderjd
Ah, see, I disagree. There are things that are less fundamentally automatable,
like interpersonal relationships, art, and research. We need to figure out how
to make those sorts of things make more sense economically, rather than racing
to the bottom on traditional types of labor.

~~~
Lawtonfogle
Art is becoming automated. Even if it never makes it to the top tier of
creativity that humans possess (and it may very well make it there), very few
humans will make it to a tier high enough to compete with the automation,
especially on the skill per effort chart.

For research, I haven't paid much attention to automation for stereotypical
research (scientists doing science in labs), but there is a lot of automation
happening in discovery process for legal research that is cutting down the
number of individuals needed. I doubt it has maxed out the potential for
automation anymore than other areas.

As for interpersonal relationships, they may also be possible to automate
(robots, simulations, etc. that manage to cross the uncanny valley combined
with increasing knowledge of how human interactions work lead me to think it
is possible eventually). I expect that we will even see the world's oldest
profession one day have competition from automation.

I think one key to remember with automation is that people are willing to
skimp on quality to save money. So even if we cannot replicate the work of
humans to the same level of quality, automation can still compete when
comparing quality per cost such that the paths are not a viable career option
for most people.

------
teh_klev
>"Writing a program and then running it is magic, in a way."

Even after 30 years in the industry it still feels this way (most days).

~~~
pohl
After 30 years of bringing things into existence via mere incantation, I still
forgive them.

~~~
Kalium
Once upon a time, would-be magicians believed that a mastery of obscure
knowledge and arcane incantations could change reality.

We are their heirs. Unlike them, we don't have to dream or lie. We speak
correctly, and earth and fire heed our call. Unliving metal stirs at our
command. We summon daemons and bind them to obedience. We build constructs of
pure thought-stuff, and conjure them into being through effort of will.

We are wizards and sourcerors, conjurers and magicians. We are what poets can
only dream of.

~~~
veddox
We speak wrongly, and we become the sorcerer's apprentice :D

I love that little piece, I've got to save it somewhere!

~~~
Kalium
"Sourceror's Apprentice" needs to be a job title for a junior engineer
somewhere.

------
vxNsr
Am I missing some sorta punchline? or are they shamelessly ripping off the
bloomberg headline to grab more eyeballs?

I guess it's because both magazines are in the finance space and Bloomberg
made waves only a few months ago with their piece that I'm having trouble not
seeing this as trying to ride on coat-tails.

Edit: mediumdeviation makes a fair point, I didn't really think about the fact
that economist explains is a regular column, I still think they coulda come up
with a more creative title (How Programming Works, How Programmers Work, What
is a Programmer, What Code Does, Java: More Than Just Coffee, Code: The
Hitchhiker's Guide, etc)

re: the newspaper thing: I get a weekly, bound, glossy set of papers that can
only be described as a magazine, if they wanna be called a newspaper maybe
they should look more like Barron's (please don't I hate that set up).

~~~
mediumdeviation
How many other ways are there to title an article explaining, essentially,
what is computer code?

"The Economist Explains" is a regular column where the newspaper (not
magazine, mind you, the Economist is very particular about that) explains a
wide variety of issue, mostly current but not always, as in this case, and
makes them accessible concisely to those not in the field.

That Bloomberg published an in-depth report on the same issue a few _months_
ago, and this short column appearing now is merely a coincidence, and
suggesting otherwise is completely ridiculous.

~~~
davelnewton
I'd be... surprised if it was "merely a coincidence". That's almost never how
the publishing industry works.

(And I do have some info that suggests otherwise, but as I can't source it,
it's anecdotal... but strong.)

------
0x0dea

        $ whatis code
        code: nothing appropriate.

~~~
9fb29947

      $ md5 <<< code
      7844a93ad4b97169834dade975b5beff

------
config_yml
Code is the highest level of specification, my RE teacher always told me.

~~~
supahfly_remix
Respectfully, that's incorrect. The requirements (ideally, in a document) are
the specification, the code is an implementation of the specification. For
example, you might want to software to take the FFT of something. Whether you
choose to code it as decimation-in-time or frequency is up to you if the
requirements do not specify.

~~~
throwaway1967
...And once implemented, the implementation is more specific than the
"specification" (a document detailing the requirements).

That's why the OP said, correctly, that code is the highest level of
specification, because nothing can be more specialized than code (as you said
correctly, an implementation is less specialized than code).

Also cf. Operational Semantics (no, not denotational), which is literally the
highest level of specification, and is runnable code.

~~~
supahfly_remix
it's more specific, yes, but those differences don't matter if they aren't
requirements.

~~~
candu
Those differences definitely matter if people come to depend on them.

This is really a debate between prescriptive and descriptive schools of
specification ;)

------
s_kilk
We just don't know.

[https://www.youtube.com/watch?v=Kh0Y2hVe_bw](https://www.youtube.com/watch?v=Kh0Y2hVe_bw)

------
parennoob
1\. Code used in the article seems to be from
[https://github.com/inueni/birdy](https://github.com/inueni/birdy).

2\. The howlong = (today-ltdate2).days line doesn't follow PEP8.

------
maxwellito
It remind me a post from Bloomberg...

~~~
075
Yup. [http://www.bloomberg.com/graphics/2015-paul-ford-what-is-
cod...](http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/)

