well good Monday morning I am mpj and
you are watching fun fun function so I
got into an Internet argument the other
day on Twitter where a company had
tweeted out saying that debugging is an
art I got really riled up and I was like
no that’s not what art is you’re
misunderstanding or you can call
debugging art it’s not me thinking about
this topic and I want to talk about it
today today I want us to think a little
bit about if programming is art and if
so what parts of programming to answer
that we have to set up some definitions
of art I’m going to talk about three of
them and I’m going to settle on my
favorite one spoiler alert is that I’m
going to conclude that some programming
is art but that program is are bad at
that heart I’m also going to talk a
little bit about why I think this is a
really big problem and how it is causing
us a lot of damage and finally I’m going
to propose a solution to the problem
suggesting that we should create more
kinds of programmers let’s let’s let’s
begin by talking about the definitions
of art first of all the Wikipedia
definition art is a diverse range of
human activities in creating visual
auditory or performing artifacts
artworks expressing the author’s
imaginative or technical skill intended
to be appreciated for their beauty or
emotional power so yeah they talk about
artwork artwork paintings and dance and
stuff another definition the definition
that I got into that Twitter argument
about is the definition that defines art
as creative craft so this article the
art of the bugging and it’s written by
Remy sharp REM on Twitter I’ve linked it
down below he is awesome you should
follow him it refers to the Wikipedia
article on on debugging and it says this
however even with the aid of a debugger
locating bugs is something of an art
that’s an expression you often use yeah
it’s something of an art actually and
when people say that it’s something of
an art they often mean that partially
that that task is very hard requires a
lot of skill and that there is no clear
right or wrong way there’s no prescribed
manual on how to do it not a fan of this
definition I think it’s too broad to be
useful it’s like a CEO would say that
yeah I’m programming my organization
because I’m building it and structuring
it and creating flows you know I mean I
get what that person is coming from when
they’re saying that but if we use words
that widely it becomes really hard to
communicate in my opinion a definition
that I like and that definition is a
middle ground created by the comic book
author Scott McCloud and Scott McCloud
is a talented comic book author but he’s
most known for his book understanding
comics and in that book he gives us a
definition of art and then that is very
often misquoted as art is something
people do that doesn’t get them money or
sex that’s not quite what he said but
it’s close
any human activity which doesn’t grow
out of the need to survive and reproduce
survive or reproduce and what Scott uses
us an example in the book is you know
you have imagine a prehistoric man
they’re standing around waiting for a
mammoth or something to appear so that
they can hunt and kill and eat it and he
has nothing in particular to do so he
just starts you know tapping on a rock
it’s not really a reason for doing this
it’s just something humans do when you
see people waiting for the bus you might
see them just draw something in the sand
with their foot when people sign their
signature then you might add a little
quirk to it or for instance when you
walk into work even though you know the
shortest route by now you might just
decide to yeah I’m gonna take this ride
today and McCloud he speaks about why
this is so useful behavior for us as
humans and it’s because diverging from a
common working way can accidentally lead
to a better way I’m gonna make a
confession here I’m sometimes really
really really annoyed with people that
throw around the term beautiful code and
what is often showed us beautiful or
elegant code is these esoteric
one-liners that are indeed very
expressive and impressive and and cool
but in the end that is not the kind of
code that I want to see at my workplace
when I’m at work I spend most of my time
understanding other people’s code that
is that is my biggest time sink
therefore I want the code that I see at
work to be a simple to understand as
possible above all else I think that
code at the workplace should be
optimized for understandability it
should be super dumb and easy to
understand
that said I think it’s very important to
be doing this just not in the shared
code base at work perhaps in a side
project or you know wherever you have a
space to experiment because
experimenting and doing like these weird
quirky things is what might accidentally
lead us to new happy accidents that
challenge the status quo such as JSX in
react when I first saw JSX you know I
was I was angry I was that’s crazy you
don’t do that that’s the you have taken
us back so many years that’s horrible
the person that invented this cannot
possibly have thought about best
practices in and on what we have learned
from the last 10 years of development
and that’s probably true they probably
didn’t think of that they probably just
played around and thought that yeah if
we just do something else what will
happen and they invented something
awesome but again don’t experiment too
much in the code
that you and your colleagues share like
run your experiments on your own so I
like the Scott MacLeod definition of art
in the in the programming context you
know doing things not for survival and
not for reproduction but yes because we
do it and because it gives us these
happy accidents but we don’t see a lot
of those happy accidents in programming
I think and I think it is because we’re
bad at this I think that programmers are
bad at art the level of insights and
happy accidents that we generate is like
so low we I’m sitting here being excited
about how someone mixed two languages
into each other and that makes it feel
like we’ve grown as an industry I really
think that I really I really think that
this is a huge problem that we have as
an industry I feel that we are a bit
stuck to me it feels like whenever I run
into some article on my new cool
programming thing it turns out to
actually be something that was invented
in the 1970s during that era people seem
to be genuinely creative and they seem
to invent a lot of new concepts that did
not exist before don’t get me wrong I
think that we are making a certain kind
of progress as we when it comes to
software development but I think that
all that progress is made by us piling
more and more things on top of each
other my gaming computer it’s processing
power is obscene compared to the the
computer I had when I was a child but
the thing is it doesn’t boot a lot
faster than my computer did when I was a
kid Photoshop actually takes longer to
start on that computer than the old
Photoshop started on my old computer and
I think that this is because the way
that we increase developer productivity
currently is by PI
one system put on top of each other we
haven’t really changed anything in the
fundamentals instead we have a system
that we have built that controls the
system and then because that was too
complex we have built another system
that could the approach that we take to
make developers more effective is to
encapsulate more add more layers of
indirection of course I’m going to refer
to a talk by Jonathan Blow which touches
on this topic which is wonderfully
inflammatory and you should you should
watch it to get your blood pressure up I
don’t want to be all dystopian here
there are absolutely people that are
changing the fundamentals for instance I
think machine learning is so exciting
right now where they actually made a
computer beat alphago by not programming
it because programming was was too slow
what they realized was that they needed
to create a computer that could actually
learn I totally think that qualifies as
fundamental progress so we’re making
some but I think that we could do a lot
better so how can we make this better
how can we make software developers
better at heart
so as I said in the beginning of the
show I think that we need more kinds of
programmers I did not study computers in
school actually I I studied theater my
brother is an artist and my my
girlfriend is a florist many of my
friends are musicians light and sound
designers ever since I started
programming I’ve felt annoyed that
programming even though it’s a clearly a
creative profession is separated from
all these other creative crafts it feels
like all those crafts they’re there in a
group and they are grouped over here but
programming which is also a creative
craft and I can definitely relate to a
lot of the challenges that it challenges
that the people I hang out with in those
circles have even though they’re said
the same
I feel like programming is in its own
group over here and that disturbs me and
my theory is that this is because we
almost exclusively create one type of
programmer if I look at the people at my
job
they are that mostly all of them from
the same background
they studied computer science at
Chalmers which is a famous tech
university in my town and they worked at
Volvo and then they came to Spotify and
that background seems to be very good at
creating programmers because all of
those people are extremely talented and
nice and easy to work with and they’re
good programmers but they are one kind
of programmer there’s another guy at my
work who has background in biology so
it’s not like everyone looks like this
but it’s not really the norm that there
is
a diverse background about among
programmers there seems to be mainly one
type of programmer that dominates and
this is different from some other fields
for instance let’s say a painter if I
google painter I get two kinds of images
I get this image and I get these images
being a painter you can be a painter in
two different ways and they are two
different courses in school right all of
these types of painters probably have a
big overlap in skill set but one of them
have studied these skills in a and an
art school context and an art course and
one of them have studied it in a you
know I don’t know exactly what school
they like a building professional I
guess but the thing is and we only
create this type of programmer we don’t
create a programmer that looks like this
or at least not at any extent we don’t
teach programming at art schools even
though teaching programming to art
school students would be a perfectly
reasonable thing to do it seems like
crazy that not every art school student
should know at least some kind of basic
or do you know programming for instance
same goes for stage tech or many other
creative professions I think fashion
could do really well with it too but we
don’t so we don’t see a lot of use of
software in art installations even
though that would be so awesome and on
the reverse note we don’t see a lot of
good art in in software for instance
when it comes to games there really
isn’t a lot of good art in games there
are some good examples like braid or
Firewatch by the way you should look at
this essay on fire watch it’s amazing
and ultra hipster but if you compare to
a crafts like movies which has a much
more evolved art space and you compare
them to things like Birdman for instance
it becomes very pale and this makes
sense because programmers are not
trained in how to make art they’re not
educated in it so
it becomes you know so so so the way we
are creating programmers today the way
we’re thinking about that it makes us
create a community of software
developers that are all thinking in the
same way and I think that’s a problem
there is a big effort nowadays to bring
more people into programming but I think
that we could do a better job at
bringing more types of people into
programming and there are some people
doing great work at that for one of my
favorite examples is Linda Lucas she is
the author of hello Ruby
this is hey hello in Swedish because
it’s translated it’s a children’s book
about a girl named Ruby and her friend
Django and the Snow Leopard and Linux
the penguin and the idea with this book
is to get young girls interested in in
programming and engineering and
tinkering at a very early stage because
right now in our culture we have like an
army of people telling young girls that
engineering is his boys work which is
unfathomably dumb up until the 1960s
computer programming was actually
considered to be a woman’s profession
I’ve linked an article about that in the
description and then we somehow managed
to convince two generations of women
that they shouldn’t do programming and
now we sit here with a huge programmer
shortage in the job market while just
one in 20 people that visit this channel
are women but getting more women into
programming that is only like the
biggest and most obvious problem to
solve I think that in general we need to
get way more types of people into
programming Agile’s confer listen to
this dude who talked about his journey
from being a forklift driver to being a
JavaScript developer and his whistle
that was so awesome there’s an amazing
channel called M tips for designers
which is what it sounds like and I
really hope that we can expand this to
way more areas like teaching artists and
architects and musicians or whatever
teaching way more groups programming and
more people involved and so that we can
become less inbred in our thinking for
lack of a better word what did what did
we talk about today summary we talked
about the definitions of Arts we talked
about Scott McCloud’s definition that
any human activity which doesn’t grow
out of the need to survive or reproduce
is art and by that definition going
while with programming might be art and
that is useful because diverging from
our common working way can accidentally
lead in any better way I also talked
about how programmers are bad at this
we’re bad at art and that’s a problem
because our thinking becomes kind of
inbred and I think that we can help that
by creating more kinds of programmers
you have watched an episode of fun fun
function new episodes every Monday
morning sometimes it’s episode teaching
using specific juicy programming nogatin
sometimes its episodes like this where
is news about something they are usually
shorter than this one though if you like
this episode you can find more of them
there until next Monday morning stay curious