Press "Enter" to skip to content

Is Programming Art? – MPJ’s Musings – FunFunFunction #33


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

Please follow and like us: