►
From YouTube: The Long Road to Creative Programming — Phil Fried
Description
Creativity as a concept is not generally well understood, and that’s especially true as it applies to programming. Creativity can be either invaluable or dangerous, and sometimes it’s both. By understanding creativity, you’ll be able to leverage it to build awesome software. In this talk, we’ll explore what it means to be creative and how it relates to programming, and especially to Rust. Expect to come away with some tips for how to let your creativity flourish.
A
Cool
so,
as
Jean
said,
my
name
is
Phil
freed
and
I'm
a
developer
over
at
pact.
Sata,
yeah
and
I
actually
started
off
not
in
software
development,
but
I
started,
studying,
painting
and
printmaking,
and
so
I
come
to
this
from
a
little
bit
of
a
different
angle,
and
so
that's
why
you
know
I
want
to
share
some
of
that
with
you
guys.
It's
something.
That's
been
pretty
helpful
to
me,
which
is
why
I
want
to
share
it.
A
So
I
want
to
start
off
right
off
the
bat
I
want
to
get
this
part
out
of
the
way,
and
that's
you
know
just
a
basic
working
definition
of
creativity
and
for
our
purposes
it's
just
it's
the
production
of
something
that
is
innovative
and
useful
and
I.
Think
it's
important
to
you
know,
point
out
that
there's
really
those
both
have
to
be
there
right
if
it's
just
novel,
but
not
really
useful
for
anything.
What's
the
point
and
if
it's
useful,
but
already
somebody's
already
built
it,
then
why
build
it
again?
A
And
so
we
really
want
both
of
those
things,
and
this
is
important
all
of
these
things
that
we
use
day-to-day
right.
Everything
from
the
you
know,
personal
computer,
to
the
data
structures
and
algorithms
that
we
use.
These
are
all
creative
productions,
so
we
want,
as
as
developers,
we
want
more
of
this
right.
We
can
build
upon
our
previous
creative
productions
to
to
get
more.
It's
an
awesome
system.
You
know
we
look
at
some
of
these
things
in
the
slide
and
you
know
awesome
stuff
built
by
amazing
people,
and
you
know
this
really
points
out.
A
A
Here
right,
anybody
can
be
creative
and
you
don't
have
to
be
da
Vinci
or
Grace
Hopper
in
order
to
build
something
that
is
both
innovative
and
useful,
and
so
what
this
talk
is
really
about.
It's
about
empowering
everybody
here
and
I
want
to
say
that
you
know
our
view
of
creativity.
We
I
don't
want
to
look
at
this
fatalistically
right.
Creativity
is
not
something
that's
randomly
doled
out
to
a
select
few
at
Birth,
it's
something
that
can
be
learned
and
nurtured
and
cultivated,
and
that's
a
really
important
idea
so
to
illustrate
this.
A
A
A
A
This
is
awesome
and
turns
out
at
this
point
in
history
is
when
we
see
the
first
usages.
The
first
glimmers
of
the
concept
of
creative
creative
is.
This
is
the
first
time
creative
is
used
as
a
word,
so
let's
keep
going
and
we're
now
at
the
end
of
the
17th
century,
and
we've
got
a
pretty
good
surplus.
This
affords
us
the
opportunity
for
all
sorts
of
experimentation,
we're
having
all
kinds
of
fun
here.
A
At
this
point,
we've
got
the
Globe
Theatre,
the
Royal
Academy
for
the
Arts
is
just
about
to
be
founded,
and
the
word
creative
at
this
point
is
now
used
to
talk
about
the
works
of
people.
So
back
a
couple
hundred
years
before
this
creative
was
just
barely
a
word
and
it
only
referred
to
the
works
of
like
the
divine
right
it
was
like
it
took
some
some
powerful
juju
and
now
so-called
great
men
can
be
creative,
reflecting
sort
of
the
the
sexism
of
the
time.
But
today
today
is
totally
different
story.
A
So
now
we
use
the
term
creative
for
all
sorts
of
things
right.
We
we
use
the
term
creative
to
refer
to
people.
You
know
a
kid
does
a
drawing,
and
you
say:
oh,
that's,
very
creative
right,
I'll
put
it
on
the
fridge
and
we
even
expand
the
usage
of
that
word
to
mean
things
that
are
not
necessarily
great
right.
I
mean
somebody
says.
Oh,
what
do
you
think
of
my
new
tattoo
and
you're
like
oh,
it's
creative.
A
And
it
turns
out
that
these
negative
connotations
are
there
for
a
very
good
reason.
The
word
creative
has
these
connotations,
because
it's
risky
most
attempts
that
creativity
fail.
So
this
graph-
this
is
probably
the
most
important
thing
in
the
whole,
talk
we're
getting
to
it
right
off
the
bat
and
that's
because
it
points
out
the
relationship
between
risk
and
creativity.
When
risk
is
high,
creativity
is
low
and
when
risk
is
low,
creativity
gets
high.
A
A
No
another
important
point
about
this
is
you
know,
I
want
to
try
to
think
about
it
in
a
slightly
different
way.
You
know
the
the
creativity
spectrum,
and
so
here
you
know.
On
the
one
side
we
have
a
soldier
who
is
soldiering
and
we
have
George
Clinton,
who
is
George
Clinton,
and
you
know,
I
think
it's
important
to
point
out
that,
okay,
again
right
the
risk
thing.
A
If
the
soldier
tries
something
creative
and
it
doesn't
work
out,
the
consequences
are
very,
very
dire
and
if
George
Clinton
tries
to
write
a
song
and
fails,
he
just
throws
that
bit
away
and
nobody
ever
hears.
He
writes
another
one.
It's
no
big
deal
right.
It
cause
it's
like
nothing,
but
the
important
thing
to
point
out
here
is
that
this
has
nothing
to
do
with
them
as
people
and
everything
to
do
with
their
pursuit
right.
This
soldier
could
be
an
immensely
creative
person.
You
know
back
at
home
when
you
know
he's
doing
something
else.
A
Maybe
he's
writing
rust,
I,
don't
know
yeah
and
George
Clinton.
If
he
was,
you
know
off
fighting
some
foreign
war
might
not
be
very
creative,
so
the
key
point
is
really
just
that
the
pursuit
is
what
determines
whether
or
not
we're
being
creative,
and
so,
as
software
developers,
of
course,
I
mean
all
of
you
probably
know.
What's
coming
next
right,
we
are
all
the
way
over
here.
Most
of
us,
so
can't
off
that
picture.
A
Just
cracks
me
up
every
time,
so
we
think
you
know
we
work
in
one
of
the
most
pliable
mediums
ever
created
by
any
code,
especially
if
you
have
VCS.
What's
the
worst.
What's
worse,
that
can
happen.
Well,
it's
not
quite
that
simple.
Is
it
right
anybody
here
ever
you
know,
write
code,
that
you
know
for
something
that
really
just
can't
fail
right:
people,
people
writing
code,
that's
running!
You
know
rockets
and
cars
and
assembly
lines,
and
things
like
that.
A
So
if
we
want
to
increase
creativity,
what
we
need
to
do
is
we
need
to
talk
about
risk
and
we
need
to
be
open
about
that.
Have
a
good
open
discussion
about
the
types
of
risk
because
it
turns
out
risk
is
a
little
more
nuanced
than
just
like.
Oh
well,
you
you
live,
or
you
die
right,
there's
tons
of
different
kinds
of
risk.
So
you
know
the
obvious
one
is
just
like
functional
right:
it's
possible
that
my
code
could
be
buggy.
Okay,
there's
also
you
know.
Most
of
us
are
writing
code.
A
You
know
maybe
for
a
job
right,
so
there's
financial
risk
to
business.
This
happens,
especially
when
you
have
an
established
product
right,
an
established
company.
That's
got
a
pretty
good
revenue
coming
in
off
of
some
core
features
all
right,
so
it's
not
really
make
a
ton
of
sense
to
try
to
you
know,
take
risks
in
innovating
on
these
core
features
that
represent
a
major
revenue
stream
right.
You're
gonna
be
a
little
more
cautious
about
that
delivery.
You
know
you
could
maybe
take
too
long
to
deliver
it.
A
There's
risk
there
timing.
So
you
know
great
example
of
dealing
with
all
these
risks
is
what
we
just
heard
about
stylo,
if
you
think
about
the
approach
to
that
project-
and
it
was
not
just
like.
Oh
well,
let's
open
up
the
firefox
source
tree
and
start
hacking
in
there
right.
It's
just
developed
as
a
separate
thing,
and
that
was
for
a
lot
of
reasons
not
but
one
of
the
major
ones
is
it
allowed
those
developers
to
be
more
creative.
A
So,
apart
from
these
things
right,
this
kind
of,
like
you
know,
institutional
kind
of
you
know
things
just
talked
about
with
risk.
You
know
this
is
a
really
important.
One
gets
sort
of
lost
a
lot
of
times
when
we
talk
about
risk,
you
know
for
us
individually.
Are
there
social
consequences
of
failure
right?
So
if
I'm
live
coding
up
here
and
I
got
like
how
creative
am
I
going
to
be,
let's
it's
probably
not
gonna
work
right.
Do
you
guys
want
to
sit
and
watch
me?
A
Thank
you.
This
is
an
important
thing
to
talk
about,
though,
and-
and
this
really
reflects
on
you
know
our
engineering
culture
right.
What
is
what
do
we
say
culturally
about
this
concept
of
failure
and
what
is
our?
What
is
our
relationship?
You
know
as
an
institution
with
failure
and,
of
course,
personal
this
one
again,
you
know
it
can
be
tough
to
talk
about.
We
don't
really
have
a
lot
of
language
for
that,
but
I
think
anybody
here
could
understand.
The
experience
of
you
know
trying
something
that
doesn't
work
right.
Maybe
the
business
doesn't
care.
A
Maybe
nobody
else
in
the
room
is
really
worried
about
it,
but
if
I
personally
have
a
hard
time
with
that
failure,
then
it's
gonna
be
hard
for
me
to
take
those
risks,
and
this
is
another
one,
especially
you
know
it
gets
often
overlooked.
You
know
with
you
know,
groups
of
engineers.
You
know
we
like
to
talk
about
the
technical
side
and
the
technical
risks.
This
is
a
huge
huge
barrier
to
actual
creativity.
A
A
If
you
think
about
it
a
little
bit
right
if
I
want
to
be
more
creative,
in
my
in
say
a
refactoring
if
I
have
unit
tests,
that
goes
a
long
way
to
help
that
right,
I
can,
you
know,
do
whatever
I
want
and
as
long
as
my
tests
pass
if
I'm
confident
you
know
this
gives
me
the
ability
to
be
very
creative
version,
control.
I,
don't
think
anybody
here
is
probably
like
everybody's
using
that,
but
I
want
to
call
out
that
it's
really
important
that
we
do.
This
allows
us
to
be
creative.
A
I've
got
a
million
of
them
and,
of
course,
you
could
write
it
in
rust.
If
I
want
to
be
creative
about
how
I
do
something
with
regard
to
memory
and
layout
or
parallelism,
it's
rust
gonna
help
me
a
beat
more
creative.
Well,
it's
gonna
reduce
risk.
Isn't
it
yeah
absolutely
well?
This
is
a
great
thing
that
you
can
do,
but
it's
also
important.
You
know
to
add
a
little
bit
of
nuance
to
this.
You
know
this
stuff.
It
applies
it.
A
It
depends
on
the
scenario
right,
so
there's
a
lot
of
different
ways
that
we
can
be
innovative
and
I
have
the
Linux
penguin
up
here,
because
Linux
is
to
me
is
a
great
example
of
this.
Well,
when
people
think
about
creativity,
another
one
of
these
sort
of
you
know
the
things
that
we
intuitively
think
about.
You
know
we
think
about
things
that
are
functionally
brand-new
and
Linux
is
a
great
example,
because
you
know
it
started
out.
Kaddu
Linux
was
just
a
clone
of
something
that
already
existed
right.
A
It
wasn't
bringing
new
functionality
what
it
was
bringing
in
terms
of
innovation
is.
It
was
extremely
innovative
on
the
process
of
development.
It
was
extremely
innovative
in
how
it
engaged
with
developers
and
engaged
with
users,
and
we've
seen
a
ton
of
value
with
that
I.
Don't
think
anybody
would
would
argue
that
you
know
that's
really,
ultimately
helped
and
then
being
for
so
they
they
were
able
to
build
creative
and
innovative
features.
A
Because
of
that
so
I
don't
think
you
can
understate
the
importance
of
the
relationship
between
risk
and
creativity
and
I.
Think
you
know
everybody
here
being
very
smart.
You
know
when
you
go
in
back
into
your
life
and
you
look
at
a
task
and
you
say:
I
want
to
be
more
creative
and
how
I
solve
this.
You
know
I
want
this
and
I
want
the
results
to
be
awesome.
A
You
guys
are
all
gonna
be
able
to
think
of
ways
that
you
can
reduce
risk.
The
solutions
for
that
tend
to
be
context
dependent,
but
they
also
tend
to
be
pretty
easy
to
arrive
at
when
you
think
about
it.
So,
moving
on
from
the
risk
I
want
to
talk
a
little
bit
about
creativity
and
some
of
the
other
things
that
kind
of
happen
there
right
I.
How
many
of
you
guys?
A
You
know
you
go
to
like
a
corporate
training
event
or
something,
and
they
say
we
want
to
increase
creativity,
so
everybody
go
into
a
room
and
paint
pumpkins
or
something
like
that.
You
know
I
think
the
risk
thing
is
far
more
important
straight
up.
If
we
want
to
increase
creativity,
we
first
things
we
should
do
is
talk
about
being
able
to
reduce
risk
in
all
those
different
areas.
A
Is
that
I'm,
looking
on
drawing
from
my
breadth
of
experience
and
memories
and
I'm
looking
for
overlaps
right,
maybe
I'm
working
on,
say,
I'm!
Writing
a
garbage
collector.
But
you
know
in
my
past,
I
have
experience
churning
butter
and
I
come
up
with
some
crazy
overlap
between
churning
butter
and
garbage
collecting.
This
is
the
kind
of
stuff
that
pops
out
and
we
want
these
ideas
at
this
phase.
A
You
know
we're
not
really
deciding
whether
it
has
merit
or
not,
and
and
it's
important
to
to
recognize
that
at
this
point
we're
also
not
our
ideas
are
not
solutions
right.
Our
ideas
may
lead
to
solutions,
but
at
this
stage
you
know
we're
really
just
we're.
Looking
for
the
overlaps
and
seeing
you
know,
presents
a
path
that
we
may
choose
to
follow.
A
Some
people
would
say
that
you're
generating,
like
a
mental
representation
of
how
you
think
about
the
problem,
so
we've
got
a
number
of
things
that
we
can
do
here
to
kind
of
help
this
out
right.
We
can
indulge
our
curiosity
everybody's
here
being
enriched
by
this
conference,
learning
about
what
other
people
are
doing,
even
though
it
might
not
have
anything
to
do
with
the
specific
tasks
that
you're
working
on
this
is
helping
you
be
more.
Creative
diversity
is
a
huge
one
right.
A
What's
going
to
kill
our
crea
Vivat
e
is,
if
we
came
to
a
conference
like
this,
and
it
was
all
just
people
like
us
right.
Diversity
is
a
huge
thing,
and
this
is
great
because
you
know
it's
not
just
it's
not
just
at
an
institutional
level.
Right,
but
also
personal,
so
where
am
I
spending
my
time
when
we're
talking
about
this,
this
ideation
phase,
what
we
really
need
to
do
if
we
want
to
be
more
creative,
is
we
need
to
cultivate
this
breadth
of
experience,
I.
A
See
a
lot
of
you
agree
yeah,
so
this
is
because
it
doesn't
work,
because
these
are
not.
This
is
not
the
kind
of
stuff
that
we
can
really
internalize.
That
enriches
our
breadth
of
experience
just
sitting
next
to
somebody
who's
different
than
me
doesn't
enrich
my
breadth
of
experience.
If
I
don't
engage
with
them,
if
I
don't
work
with
them
and
talk
with
them,
so
we
can't
just
fake
it
right.
A
A
So
after
we
come
up
with
this,
this
idea
right.
We
have
this
this
structure
or
this
representation
of
the
problem
and
we're
gonna
follow
this
path.
We
then
evaluate
it,
and
here
it's
it's.
The
story
is
very
different.
I
mean
this
is
one
of
the
another
reason
why
these
like
open
floor
plans
and
things
like
that.
Don't
work,
because
here
what
we
really
want
is
we
want
a
depth
of
knowledge,
not
a
breadth
of
breadth
of
knowledge.
Isn't
necessarily
as
helpful
here
we
want
the
depth
of
knowledge.
We
want
critical
thinking
and
we
want
focus.
A
Most
people
at
this
stage
of
the
game
tend
to
be
kind
of
quiet.
Part
of
these.
You
know
these
theories
of
creative
came
about
the
earliest
ones.
We're
just
absurd,
based
on
observations
of
you
know,
people
that
others
thought
of
as
creative
and
people
would
see.
You
know
folks
who
they
thought
of
as
creative,
and
they
said
Wow.
You
know
I
happen
to
notice
that
Tolkien
takes
a
walk
every
morning
and
because
kind
of
you
know
gives
himself
time
for
some
quiet,
contemplation
and
so
evaluation.
A
What
we're
really
doing
is
we're
turning
this
over
and
deciding
whether
it's
worth
pursuing
again,
we
don't
have
a
full
solution
at
this
point.
We've
only
got
this
kind
of
weird
morphus
overlap
between
multiple
ideas,
and
what
happens
is
that
this
ends
up
circling
back
to
this
ideation
phase,
all
right
so
so
this
is
a
cyclic
thing
and
one
informs
the
other.
So
I
come
up
with
my
overlap
with
the
garbage
collection
and
the
butter-churning
and
I
turn
it
over.
A
A
A
You
know
I
have
a
picture
of
blind
justice
here
and
it's
really
a
bit
misleading,
because
the
truth
is
at
this
evaluation
step.
This
is
not
simple.
This
is
not
a
simple
decision
where
we
say.
Oh,
this
is
going
to
work,
or
this
is
not
going
to
work.
You
know
most
of
us,
as
coders
have
been
in
the
experience
where
somebody
comes
up
and
asks
you
well.
Can
you
make
this
work
and
you
think
well,
yeah
I
can
get
out
the
big
hammer
right.
A
We
can
get
that
square
peg
through
a
round
hole
if
we
push
hard
enough
and
what
this
is
really
about
is
if
it's
not
whether
or
not
it
can
technically
be
made
to
work.
It's
more
about
the
principle
of
affordance
anybody
ever
heard
of
the
principle
of
affordance,
hugely
important
design
principle.
You
guys
are
all
gonna
understand
it
pretty
quickly
with
this
next
image.
So
when
we
are
talking
about
making
something
you
know
we
take
this.
A
This
idea
that
we
have-
and
we
imagine
what
its
gonna
look
like
and
if
you
look
at
the
doors
over
here
all
right,
if
I'm
designing
a
door
handle
I
would
say
that
the
door
handle
on
the
right
affords
pulling.
When
you
look
at
it,
you
immediately
think
oh
I
could
pull
that
right
and
you
would
try
to
pull
it
and
how
many
people
probably
try
to
pull
on
that
door
without
ever
reading.
The
sign
probably
happens,
all
the
time
I
mean
I.
Do
it
and
we're
someone
on
the
left.
A
This
isn't
quite
what
can
it
technically
do?
But
what
does
my
idea
afford
and
it's
a
much
more
nuanced
decision?
So,
let's
talk
about
this
in
code
when
we're
in
code,
you
know
I
I,
don't
know
you
guys.
I
tend
to
I
do
most
of
my
work
with
traits
and
unimplemented
functions
before
I
ever
write
any
line
of
executable
code,
and
the
reason
for
that
is
what
this
looks
like
in
terms
of
the
creative
process.
A
Here
is
I'm,
taking
the
ideas
there
in
my
mind,
we're
starting
to
solidify
a
jint,
a
general
structure
or
a
path,
we're
solidifying
that
into
something
that
might
be
a
solution
right.
But
what
we
want
to
do
here
is
we
want
to
figure
out.
Is
this
really
what
I
want
and
what
does
it
afford?
I
want
to
figure
that
out
pretty
quickly,
because
if
it
doesn't
afford
the
things
that
I
want,
if
it's
not
quite
right,
I
want
to
either
scrap
it
or
refine
it
as
quickly
as
I
can
so
unimplemented,
Macko
macro.
A
For
me,
this
is
like
the
most
commonly
used
macro
in
my
code.
I
use
this
everywhere
unimplemented
or
just
define
a
tree
right,
maybe
it'll
be
a
concrete
type.
Later
I
don't
know,
but
just
to
find
a
trait,
don't
worry
about
the
implementation,
but
be
able
to
see
what
my
design
is
going
to
afford.
So
this
clearly
affords
shooting
the
moon,
which
is
something
that
I'd
love
to
do,
but
you
can
also
think
about
you
know,
maybe
rust
strings
as
an
example.
Okay,
rust
strings
afford
slicing.
A
This
is
a
really
useful
thing,
and
so,
if
you
want
to
solve
your
problem
with
slices,
if
slices
are
going
to
be
useful
to
you,
then
you
want
to
just
give
yourself
an
API
that
affords
the
kind
of
things
that
you
want
now.
The
other
part
of
this
is
that
again
right.
This
needs
to
be
innovative
and
useful
in
order
to
really
be
what
we
are
after
and
again
we're
circling
back
to
ideation
right,
so
I'm
gonna
decide
well.
This
isn't
quite
right.
I
want
to
change
it.
A
A
little
bit
refine
it
go
back
and
forth
to
do
that.
I
need
to
decide
whether
or
not
this
is
going
to
be
considered
a
failure
and
I
use
the
term
failure
pretty
lightly
right
in
code.
It
is
pretty
light,
you
know.
Maybe
not.
Maybe
most
of
this
is
fine,
but
it's
just
missing
a
semicolon
MBD,
but
maybe
I
just
need
to
add
a
few
few
functions.
Change
few
signatures
adjust
things
here
and
there
either
way.
A
I'm
going
to
tell
you
guys
a
real
quick
story
from
when
I
was
studying,
art
I
came
in
one
day
and
I
turned
in
a
painting
and
it
wasn't
very
good
and
my
art
teacher,
you
could
see
it
on
my
face
right,
I
came
in
I
like
didn't,
even
want
to
show
it
to
him
like
this
is
a
turd
and-
and
you
know
he
told
me,
look
you
gotta
adjust
your
expectations.
He
said
I
can
see
that
you
know
you
want
to
really
be
successful.
As
an
artist
and
I'm
gonna
tell
you
what
that
means.
A
A
That's
huge
six
failures
for
every
success,
and-
and
this
was
you
know-
words
from
a
professional
artist,
and
so
this
is
like
the
key
thing
that
I
think
we
can
learn
as
developers
from
creative
fields
is
that
I
had
to
learn
how
to
fail,
and
this
is
a
huge
huge
thing
for
me
in
being
a
developer
right,
I
learned
how
to
fail.
So
failure
is
not
a
big
deal
that
allows
me
to
call
those
ideas
pretty
quickly.
A
I
can
I
can
be
ruthless
in
evaluating
my
own
ideas,
because
the
risk
to
me
isn't
as
great
there's
a
great
book
about
this
called
art
and
fear,
and
if
you're
interested
in
the
topic,
I
definitely
recommend
it.
It's
real
short,
but
it
talks
about
that
aspect
of
how
do
I
deal
with
my
own
creative
failures,
and
if
it
helps
you
know,
you
can
always
cross
how
art
and
write
software.