
Programming is a Pop Culture - raganwald
http://raganwald.posterous.com/programming-is-a-pop-culture
======
edw519
_This is who we are and what we do._

Not me.

I'm one of those programmers who's been doing this for a million years and
would much rather talk about my customers' issues than my own.

To me, programming is just a means to an end. The real issue has always been
solving the customer's problem, whether I had to dig deeply into the
architecture, use fashionable high level tools, or just resort to pencil,
paper, and duct tape. Some of my most rewarding accomplishments have been
decidedly "low tech".

I usually find programming meet-ups boring and language centric threads here
on Hacker News pointless.

I realize that most programmers don't feel the way I do...so, if programmers
are outliers among normals and I'm an outlier among programmers, does that
make me an outlier squared or an inlier?

~~~
coliveira
This is a relatively new attitude, mostly due to web startups, which are more
similar to rock bands than to "real" companies. Since web startups are
successful due to the number of followers, not the amount of money they make,
they had to develop cult-like techniques to attract workers and early
adopters. As a result new culture of hipster programmers appeared, which
thinks that their way is the only true way.

~~~
randomdata
I'm not sure I agree. I feel the roots herald from the great education push of
the 90s, where we saw a new found hyper-focus on training to specialize to
almost the micro level before being worthy of doing any job. In software, that
meant being a developer wasn't good enough, you had to be an expert in, say,
Perl to be even considered for the job that used that technology.

I feel we have more recently started to back away from that mindset as we have
realized that general software developers are more valuable than <insert
specific technology> specialists, but you still see job postings boasting
about the software stack being used as a throwback to the way it was once
done. Possibly because the people involved are still largely stuck in the old
mindset. The mid-twenties to early-thirties group of developers grew up during
that time period, so they see it as just the way it is.

~~~
saraid216
> the great education push of the 90s, where we saw a new found hyper-focus on
> training to specialize to almost the micro level before being worthy of
> doing any job

This is off-topic, but I'd like to know more about this. Could you give me
some keywords to search off, or some links to read, to see what you're talking
about?

------
smacktoward
I don't understand the distinction made here between a craft and a pop
culture. Popularity of a technique or tool can definitely matter to a
craftsperson, as they directly impact the availability and cost, as well as
the marketability of that craftsperson's skills. Crafts are social;
craftspeople definitely pay attention to what their colleagues and competitors
are thinking and doing, and trends come and go as opinion leaders and
trendsetters rise and fall.

The biggest distinction I can think of between a craft and a popular culture
is that pop culture is most commonly experienced passively, via consumption,
while being a craftsperson by definition involves active creation. So in this
sense music is really two cultures: the culture of music creation, which is a
craft, and the culture of music appreciation, which is a pop culture.

~~~
freshhawk
I think your passive vs active distinction is a good one but I don't think
that was the direction taken in the post, the distinction drawn here is how
solutions to problems are chosen. Roughly: pop culture will chose a solution
based on fashion while a craft will chose a solution based on the perceived
quality of both the solution itself and the result. Obviously these two
aspects are mixed in reality but the point that it's more fashion than craft
is one I find convincing.

What I don't find convincing is the defence of fashion driven programming
techniques. Too much of an ode to mediocrity for my taste. Pop culture will be
mediocre and fashion driven on it's own, the only thing pushing it to be
better is the craftspeople complaining about it.

As more and more of our infrastructure runs on software we need people pushing
for more engineering discipline, not less.

------
Jabbles
The author seems to think the programming community is limited to web
development, or cool new techniques and languages. There is a vast amount of
slowly or non-evolving programming, from maintaining legacy COBOL banking
systems, to writing groundbreaking technology with mature languages like C.

People who write code for SpaceX or use Fortran at CERN to solve the mysteries
of the universe probably don't see this "pop culture" and the constant
pressure of using the latest idiom. All you can say is that some aspects of
the industry act like this, in which case you're not really saying a lot.

~~~
raganwald
The author recalls writing banking code that talked to a "legacy" application
written in MUMPS :-)

~~~
xradionut
So? I've got semi-recent code that sucks data out of InterSystems Caché with
yet another obselete programming language. The ability to access legacy
systems to assist clients is a sign of craft, not necessary pop-culture
programming.

~~~
raganwald
It could also be a sign of engineering. All metaphors are leaky, some more so
than others, especially mine.

------
crusso
_Many things in programming are like that. Why do you use CamelCase in
JavaScript but underscores_in_ruby? Because everyone else does, and that’s the
language’s "style."_

By that logic, driving on the right side of the road in the US vs driving on
the left in the UK is "pop culture".

The reasoning in the article didn't improve as I read on...

~~~
papsosouid
>By that logic, driving on the right side of the road in the US vs driving on
the left in the UK is "pop culture".

Not at all. I don't drive on the right side because "everyone else does" and
"that's the style". I do it because its the law, and because I would be
risking my life and the lives of others to do otherwise. Having a function
with an underscore in its name isn't breaking any laws, and isn't risking any
lives or anything even remotely analogous. It is entirely based on subjective
whims.

~~~
pjscott
You risk confusing and annoying other people who read your code. It's a non-
lethal risk, to be sure, but still a reason to follow the local naming
customs.

~~~
papsosouid
You risk confusing and annoying other people who read your code if you do
follow convention also. I hate camelCase just as much in languages where it is
customary as I do any other time. It is just a question of how many people you
expect to annoy, which is precisely choosing it by popularity.

------
eternalban
OP has misunderstood Dr. Kay's comment. He specifically made the comment -- at
least in one occasion -- in context of _music_ and noted the fact that "pop
music" uses a tiny tiny subset of the available body of _musical thought_ and
_precedent_.

As regarding our field being an arts and crafts field, again, imo, OP misses
the mark. It is an arts and craft field because of a lack of an underlying
_science_ of creating software.

The issue of scaling to meet the industrial demand on our output, of course,
has been clear and evident since 70s, if not 60s, and clearly contributes to
unique nature of our 'technological' field, but that inability to scale by
adopting an _industrial methodology_ is, again, due to a lack of a sufficient
intellectual base to support an industrial process.

------
brianmtully
This is just link bait for raganwald to sell his new coffeescript book. Why do
his blog posts always make it to the top of HN?

~~~
raganwald
In 1977, the movie "Saturday Night Fever" was link bait for Robert Stigwood to
sell the sound track album. That same year, George Lucas released "Star Wars,"
and one of his business goals from the start was to "Build a Real Company,"
which he did by exploiting merchandising tie-ins.

"Link baiting" to sell a book is a kind of tie-in, just like sound track
albums and toys. If what you say is true, then this post is an example of the
pop culture it depicts. That would be pleasingly self-referential.

Alas, it isn't true. I wrote a different post yesterday, one about the I
Combinator in CoffeeScript. That one was a deliberate tie-in to my book. Some
of the feedback I got from /r/javascript was that the idioms were unfamiliar
to the JavaScript culture, which provoked this post.

So yes, I do write posts with the thought of promoting my book, but no, this
wasn't one of them. But yes, as long as I'm writing a post I include a link to
my book. Why not? I read a lot of posts with advertisements on them. Why
advertise someone else's dream?

~~~
brianmtully
I guess I didn't have much of a problem with you linking to your book, as much
as the disconnect between what I read and how quickly it shot up the front
page. You are apparently a rock star. It fits right in with your pop culture
theme. I apologize for the comment. I will prepare to see your blog on top of
HN for the foreseeable future.

~~~
knowtheory
I am somewhat loathe to break out the slashdot cliché "you must be new here",
but it's apropos here. Reg is popular on this particular internet.

What I'm more puzzled by is why he seems to have written a Rorschach test
instead of a post with a point. An awareness of the sociology of your chosen
profession or discipline i think is a laudable goal and topic worth
considering, but this post doesn't actually do anything to illuminate the
subject or equip others with the tools necessary to consider the subject
further.

Unsurprisingly, the comments resulting from the post are similarly lacking
illumination.

~~~
raganwald
I try to write a lot and experiment with different styles. This one was dashed
off almost stream-of-consciousness. I'm not offended by the suggestion that it
isn't my best work, and I'm grateful for the candid feedback.

~~~
knowtheory
Sure, also, don't take my criticism as an admonishment or lack of respect.
From your posts that I've read, you and I agree on a great deal, and I aspire
to write as prolifically and competently as you do.

------
agentultra
I see you've watched the same Alan Kay talk as I have. It certainly changed my
opinions about plenty of things.

Many of my colleagues leer at me when I suggest that Computer Science is not
so much a _field_ today as it is a pop-culture. We continue to experience
novel technology not because it is new but because we continue to forget our
past achievements. Innovation has been slow in this culture (I would go so far
as to say _painfully_ slow). Worse, it dates me when I gather amongst my
younger colleagues and I cannot stand it any longer! I'm not a dinosaur. Not
even close!

And still it moves at a lightning pace!

------
dayglogee
I love this idea - I think it helps to explain the existence of rockstar
developers who then become arbiters of what is valuable - a bit like musicians
who become critics after they've made their name!

Also, new(er) developers seem to like to set themselves against the mainstream
as if to say, 'this isn't your parents' language', until they eventually end
up liking jazz (lisp?).

~~~
rhizome
Who are these famous former-musicians who have become music critics?

~~~
dayglogee
Former musicians who become cultural arbiters are the ones that start their
own labels (critics who put their money where their mouth is). Examples are
everywhere. Mo Wax, Twisted Nerve, Chemikal Underground, Third Man, etc

------
zerostar07
The author makes the case that programming is a trend-ridden profession, that
is false. Some programming styles and languages get widespread not because of
herd-like memetism, but because they're actually better than alternatives, or
some cases because of a corporate choice (such as objC, win32's CamelCase,
javascript's java like syntax(Sun) ). In fact most of the evolution of
programming ended in the 80s. The frontpages of reddit and HN are full of
people who are overly enthusiastic about things like functional languages, 16
bit CPUs, CSS programming and rounded rectangles, but those are rarely more
than the fad of the day. For most people who want to solve problems with
computers, programming is a tool. You don't see plumbers and electricians
choose their tools based on how cool and fashionable they look.

~~~
francesca
The interesting thing here is people equate pop culture with being trendy. I
think it's entirely possible for a pop culture of programming to exist, but I
think in general what this discussion on this thread proves is that there are
multiple cultures existing within developer communities, and a lot of devs
exist within many of these circles. What's more, the "pop culture" element of
programming does not necessarily contribute to the rate of change! The
communication mechanisms within programming (Hacker News, Twitter, Reditt,
mailing lists, forums etc, that is what accelerates the rate of change within
the developer community. Pop culture is actually NOT that fast. People need to
spend time performing it before something becomes pop (i.e. the idea that
Hipsters start all fads, because they find them first and that is how they
spread)

I would say The Active Contributors--The people contribute to open source
projects mailing lists etc. These people help promote certain "styles" of
programming over others. They contribute to make the things that work even
better. These things they create are then consumed by other members of the
community.

~~~
zerostar07
Pop culture is by nature trendy, you can only listen so many times to the same
song before it gets boring. Popular art aims to please, pleasure has certain
characteristics, it gets old, it gets kitsch and is driven by novelty. There's
no such comparison for programming, you can use the same old language millions
of times without any diminishing returns. It's really not even a valid
comparison, it's apples to oranges. The one relevant analogy i can think of is
between programming languages and musical instruments.

Also, IMHO there are no superstar programmers who can influence developers.
All the good devs i know are too arrogant to take any suggestion based only on
who suggested it.

------
bryze
Does anyone else think that this article is a Satire? I think it's actually an
appeal to common sense. What I read is the author is sad that programming is
not moving in the direction of an emergent engineering discipline, sad that
popularity, not reason, drives the acceptance of languages.

------
zb
_Engineering disciplines are characterized by extensive standardized formal
study, conformance to best practices, and regulation._

Actually, this is only true in programming pop culture. In reality, different
engineering disciplines vary widely in the degree to which these features are
present.

In my opinion, none of those listed are even especially central or important.
(And as a result, I'd argue[1] that software development, as currently
practiced, fits quite comfortably in the broader stable of engineering
disciplines.)

[1] [http://www.zerobanana.com/essays/reclaiming-software-
enginee...](http://www.zerobanana.com/essays/reclaiming-software-engineering/)

------
d--b
Programming is an engineering discipline. Engineering has some things of
crafts and is influenced by a culture. It is the same in any kind of
engineering, there are fashions in bio-chemisty as there are fashions in how
you build a bridge or how you design an electronical circuit. In the 70s, it
was in fashion to make buildings with a lot of asbestos in it, just like in
the late 90s everybody used to build systems around SQL databases. But now
people don't do it so much, not because the culture has changed, but because
it was not such a great idea in the first place, and as we progress in our
field, we know how to make things better.

------
hemancuso
"Ruby Archeologists can accurately date a business application by examining
its gemspec file" - seems like a fun/small project to do programmatically. How
fresh is your spec?

------
doctoboggan
Python's style guidelines are laid out in pep 8[1] and are not likely to
change with the times. Things like indentation, using underscores in variable
names, and even spacing between classes and method declarations are specified
in there.

[1] <http://www.python.org/dev/peps/pep-0008/>

~~~
raganwald
If programming is a Pop Culture, Python is a Cult of Personality:

<https://www.youtube.com/watch?v=7xxgRUyzgs0>

------
whattttttttt
Amazing quote from the XML rant linked in the article:

"If GML was an infant, SGML is the bright youngster far exceeds expectations
and made its parents too proud, but XML is the drug-addicted gang member who
had committed his first murder before he had sex, which was rape."

~~~
felideon
For more Naggum diatribes, visit <http://www.xach.com/naggum/articles/>.

------
francov88
Really interesting article and unique way to look at programming - never
really considered it to be part of pop culture, but it is a subset of it's own
and becoming more "mainstream" as more and more technology becomes engrained
in our everyday life.

Well done!

------
cafard
'The programming language BASIC became popular because Dartmouth had it on a
computer system, and General Electric franchised that system. Once it spread
“in the wild,” it became popular because it was popular.'

Or: it was used because it was available.

------
yitzhak
Unless you're willing to concede that programming is something that takes zero
skill, art, or craft, the argument is idiotic. A pop culture is something
anyone can be part of. There is no barrier to entry like there is with
programming. No loss, no reward. Why not just concede that programming is
something that's never existed before, which can have it's own idiums and
rules? Trying to shoe horn it into the pop-culture mold is as bad as calling
it a trade.

~~~
yitzhak
On second thought, that's wrong. I have one that fits. Programming is a
knighthood. Think about it.

------
jamesbritt
Possibly related (from 2005): "SOA, AJAX and REST: The Software Industry
Devolves into the Fashion Industry"

[http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=018ea5...](http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=018ea507-4a62-4493-b01b-321e3672d725)

------
debacle
raganwald, your blog post titles are getting more linkbaity by the week.

~~~
rhizome
It's a down economy after all, and Christmas is coming up.

------
newobj
"Why do you use CamelCase in JavaScript but underscores_in_ruby?"

Uhh, because the languages' runtime libraries use that convention? For the
same reason that Windows C/C++ coders typically use a different style than
Unix C/C++ coders? The platform runtime libraries set it forth?

~~~
sophacles
Yeah, that was in fact the gist of the next sentence in the essay.

~~~
zerostar07
Actually he makes the opposite (wrong) causal argument that because of
popularity these styles caught on and became the "language's style". Nothing
to do with popularity, it was all predetermined in the vendor's libraries.

------
zwieback
Programming is both a craft and a pop culture but when you use programming as
part of an engineering discipline that's called software engineering.

Whether software engineering is on par with its more respectable siblings
mechanical and electrical is a different question.

------
argimenes
Starts off by appearing to agree with an insightful remark by Alan Kay,
proceeds to reverse course and sympathise with the status quo, ends with a
sentimental appeal to the 'humanity' of popular culture. Sadly proves the very
point Alan Kay was making.

------
rhizome
More blogger polemics. The word is "has," not "is."

------
seanlinehan
_...but that model gave us Bowerbirds, birds that build elaborate structures
that don’t do anything except demonstrate its fitness to spend large amounts
of time building elaborate structures._ The first thing I thought when I read
this was Dribbble. I'm also a designer and have definitely gawked at the
immense amount of time some members of that site have spent on entirely
useless pixel perfection. I don't really feel the same way about programming,
though. I'd much rather dash through a project and get it _functional_ than
craft it such that the code is _beautiful_.

------
irisshoor
A pop song (even a teriffic one) has a shelf life of a few months, whereas
code running in production, either foundational or in larger systems may be
there for years. That's where developers need to build things that last, and
things turn to more technically complex musical genres like Jazz or Classical
where the music may not be catchy - but will last a long time. The lasting pop
songs are the ones hardest to compose, but maybe the most beutiful -
<http://www.youtube.com/watch?v=jBDF04fQKtQ>

------
nickmain
Programming is like building a house - except that no one talks about
themselves as being a "house builder".

There are carpenters, electricians, HVAC contractors, general contractors,
landscape architects, plumbers, cabinet fitters, tiling contractors, painters,
carpet installers, roofers, architects, etc.

Each one takes a pride in their own craft and together they build house with
(hopefully) the minimum of squabbling and turf wars.

One day the process of solving problems using computers will be like that,
right now we are in the dark ages.

~~~
Nursie
Errr... not really a valid analogy surely?

I've done varied load of stuff from kernel hacking to Javascript widgets. Now
most of my professional work leans more towards low-level and backend stuff in
C, but that doesn't mean I can't turn my hand to other things and understand
them quickly. The principles are the same in most cases.

Carpentry and electrical work are separate disciplines. Systems programming in
C and web-frontend hacking in CSS/whatever are would be just like using
different types of wood and knowing which joins and what adhesives go well
with them.

There's no need to limit yourself to one tool is there?

~~~
randomdata
I agree with you, though carpentry and cabinet making are generally considered
different disciplines despite using many of the same tools and materials. That
might be a little closer analogy with respect to kernel hackers and web
hackers.

Me? I just like to solve problems. If the problem requires hacking a kernel,
I'll do that. If it requires baking a cake, I'll do that. If I need to print a
circuit board, I'll do that. I don't see any reason to get too caught up in
tools, personally.

------
netaustin
"[Programming] spreads much, much faster than education and formal study
spreads."

This is why a Computer Science education is not a sufficient condition to a
successful career as a software developer.

~~~
lutze
Programming isn't all there is to software development though.

Be honest now, in how many of all the colossal fuck ups in development there
have been, do you think the CODING was the problem?

~~~
thoughtpalette
Good point. Estimation and planning has seem to be two huge factors in failing
(missing the deadline) in my experience. But software projects fail for many
other reasons as well.

I have read Agile Estimation and planning [http://www.amazon.com/Agile-
Estimating-Planning-Mike-Cohn/dp...](http://www.amazon.com/Agile-Estimating-
Planning-Mike-Cohn/dp/0131479415) but I'm not at a high enough level in my
career for software planning.

Little tangent.

------
Hawkee
What I find most interesting about this post is that the comments section is
replaced with links to Reddit and Hacker News. Not a bad way to stir up
attention to a post.

~~~
Xion
Putting a 'Discuss on Hacker News' link instead of comments section is a
common practice as of late. It's not just this particular author.

~~~
raganwald
Imagine we had never heard of this "comments" idea. How would we design such a
feature? For starters, we'd need moderation. Some automated spam blocking.
Voting might be a nice feature to draw attention to good comments. Reputation
for the participants might help.

We'd end up reinventing HN, Reddit, Digg, &c. One of the reasons I prefer to
link to HN is that there is a community with a well-understood standard for
behaviour. If I had my own comments, I'd have to ask people to live up to some
set of arbitrary standards, and that's a lot to ask when someone might only
read one thing from me every month or so.

~~~
Hawkee
You have a good point. It really depends on how well of a fit the audience in
question is to your content. If you're trying to build your own community then
it makes sense to maintain your own comments and moderate them yourself.

~~~
raganwald
That strategy works very well for Jeff Atwood, so I'd say you have something
there.

------
joejohnson
The article starts by presenting the false dichotomy that programming is
either an engineering discipline or a "craft" which the author defines as
something learned informally through self-guided study. (Can't engineering
disciplines be learned through self-guided study?) Then the author makes some
comment about how BASIC "became popular because it was popular", and then I
realized I was reading the ramblings of an idiot and I stopped reading.

------
zby
Programming is pop culture - but it is not about rejecting science it is
because the science is mostly irrelevant for the day to day programming.
Parser combinators might be cute - but you don't need to write parsers in your
day to day job - you just use a library that does the parsing. In a way you do
use the science in fact it is just so isolated that it is not really your job.

------
nsxwolf
I didn't understand the photo in the article.

~~~
raganwald
It's the bower of a bowerbird. Note the small nuggets of brown feces on the
left: These represent blog posts ;-)

~~~
nsxwolf
That clears it up :)

------
JoeAltmaier
Not the way I do it. Hey! Does that make me an aging rock star? Or just a has-
been. Hm.

~~~
acuozzo
> Does that make me an aging rock star? Or just a has-been.

Jethro Tull has you covered:
[http://remus.rutgers.edu/JethroTull/Albums/TooOldToRocknRoll...](http://remus.rutgers.edu/JethroTull/Albums/TooOldToRocknRollTooYoungToDie-
lyrics.html#TooOldToRocknRollTooYoungToDie)

------
papsosouid
I think it is more that programming _has_ a pop culture, not that it _is_ a
pop culture. Parser combinator avoidance is a good example. The pop culture
does avoid it, but not everyone is part of that. Parsec and attoparsec are
very heavily used in haskell land. Just as there's people who reject or ignore
pop culture in society. Society isn't pop culture, it just has a pop culture
(or several pop cultures).

------
rachelscott616
I must say that i always love programming.

