►
Description
Programming is an adventure, often more harrowing than it has to be. If you’re more used to higher-level languages like Ruby or JavaScript, learning Rust can feel like an impossible journey that leaves you wishing for a well-written and heavily illustrated field guide.
Good news! I have already gone down this road and am now prepared to share my adventure with you. Luckily, I was able to capture much of the flora and fauna of Rustlandia with my primitive pictorial devices (paper and pen).
Lee Baillie
https://twitter.com/_lbaillie
https://github.com/lbaillie
A
So
I
talk
really
loud
actually
have
to
move
this.
The
full
title
of
this
talk,
which
does
not
actually
fit
on
most
CFP
submissions
forms,
is
a
the
illustrated
adventure
survival
guide
for
new
restorations
and
natives
of
rubyville,
with
apologies
to
why
the
lucky
stiff,
I,
don't
know
how
many
people
here
are
familiar
with
the
work
of
why,
but
if
you're
not
I
would
strongly
recommend
looking
looking
him
up
after
this,
he
was
a
rubyist
who
did
a
lot
of
really
interesting
work.
A
A
This
adventure
we're
about
to
embark
on
is
not
for
the
weak
or
the
faint
of
heart,
so
if
any
of
you
are
pregnant
or
nursing
or
suffer
from
any
kind
of
heart
condition,
or
if
your
doctor
has
advised
against
the
eating
of
spicy
foods,
I
ask
that
you
consider
consulting
your
physician,
spiritual
adviser,
psychic,
medium
or
nosy,
next-door
neighbor
before
accompany
me
on
this
journey.
While
we
wait
to
board
the
ship,
some
of
you
might
want
to
know
a
bit
more
about
me.
A
Your
guide
before
moving
forward
with
this
seafaring
journey
and
I
get
it
I
understand.
I,
don't
quite
look
like
a
seasoned
ship's
captain
and
you're
right,
I'm,
not
I'm,
Liz
I
used
to
be
a
cartoonist.
I
drew
comic
books.
I
went
to
art,
school
I
drew
a
few
graphic
novels,
and
a
few
years
ago,
I
learned
to
code
I
went
to
a
place
called
the
Flatiron
School
in
New,
York
and
I
started
working
in
web
development.
A
Nowadays,
I
work
at
Tilda
in
Portland
Oregon
back
in
the
United
States,
mainly
I
work
on
our
product
skylight,
which
he
mentioned,
which
is
an
application
that
helps
developers
working
in
rails
or
other
Ruby
based
frameworks
optimize
their
apps
I.
Also.
We
also
use
rust
at
work,
which
is
a
big
reason
why
I
started
learning
rust
in
the
first
place
so
before
we
get
on
the
ship,
I'll
show
you
a
map
of
where
we'll
be
going
right.
A
Now
our
ship
is
docked
at
the
port
of
JavaScript,
just
off
the
coast
of
rubyville,
we'll
be
sailing
the
seas
of
chunky
bacon
and
should
be
landing
at
the
cargo
bay
of
rust
land
eeeh
in
no
time
so,
let's
get
onboard,
take
your
seats,
no
standings,
no
eating
or
drinking
and,
most
importantly,
no
staring
at
the
captain's
eye
he's
really
sensitive
about
it.
He's
a
fish
I,
don't
know,
say
goodbye
to
your
loved
ones
and
off
we
go
and
over
the
bounding
main
and
then
the
ship's
song.
This
is
a
song
about
ships.
A
If
you
all
look
out
your
windows
to
the
west,
you'll
notice,
a
beautiful
sight,
some
foliage,
that's
native
to
rubyville
an
abstract
syntax
tree.
Its
nodes
are
particularly
lovely.
This
time
of
year,
you're
probably
used
to
seeing
these
if
you're
from
rubyville,
they
tend
to
sprout
any
time
some
code
gets
thrown
into
the
interpreter
just
before
it
gets
turned
into
byte
codes,
so
the
Ruby
virtual
machine
can
run.
As
you
might
already
know,
Ruby
is
an
interpreted
language,
so
this
is
more
or
less
what
you're
used
to
if
you're
rubyist,
but
in
wrestlin
dia.
A
We
have
to
remember
to
compile
our
code
before
we
can
run
it.
Otherwise
it
won't
work
so
before
we
yet
so
when
we
get
there.
Just
remember
to
keep
raises
cargo
bills
and
cargo
run
they'll
come
in
handy
when
we
reach
the
shore
and
start
trying
to
chat
up
the
locals.
If
you
try
to
just
run
your
code
directly
like
you
did
in
rubyville,
they
won't
know
what
you're
talking
about
so
I
almost
forgot
to
mention
on
the
way
out.
You'll
notice,
a
big
pile
of
means,
don't
forget
to
take
one.
A
You
will
put
all
the
code
that
gets
run
for
your
program
inside
of
main,
unless
you're
building
a
library
which
we're
not
just
yet.
This
is
very
important,
all
right,
everybody
off
the
ship.
Here
we
are
welcome
to
Rus
clan
dia.
Let's
check
out
the
town.
Remember
things
move
a
lot
faster
here,
so
be
careful
check
it
out.
It's
the
stack
in
the
heap
brew
pub.
A
Someone
wants
a
fancy,
whiskey
and
a
cheap
whiskey.
The
good
stuff
is
fancy,
so
we
put
that
in
a
box
and
store
it
on
the
heap
because
we
want
it
to
be
able
to
stick
around
for
a
while.
Even
though
it's
high
up
and
a
bit
slower
to
get
to
most,
things
in
rust
are
stored
on
the
stack
unless
you
specify
otherwise,
which
is
why
we
had
to
put
the
fancy
whiskey
in
a
box
in
order
to
store
it
on
the
heap.
A
So
when
we
run
this
program,
the
good
whisky
gets
a
spot
on
the
heap
at
the
far
far
end
of
our
available
memory,
and
we
put
a
pointer
on
the
stack
that
points
to
the
spot
on
the
heap.
Next,
on
the
stack
we
put
the
cheap
stuff.
In
this
case
it
is
old
granddad,
which
is
a
very
terrible
American
liquor.
A
The
cheap
stuff
gets
served
up
first
because
it's
on
top
and
then
we
have
the
pointer
to
the
fancy
stuff
which
the
bartender
has
to
go
way
way
up
to
the
top
of
the
heap
to
get
which
she
does
all
that
sea
travel
made
me
hungry.
Let's
check
out
one
of
our
local
Erie's
I've
heard
good
things
about
this
one.
It's
called
cafe
destruct
Oh.
A
A
Instead,
I
see
all
these
strange
new
things
like
struts
and
Impuls,
and
what's
that
all
about
we're
so
sorry,
madam
I
know
this,
isn't
something
you're
used
to
razz
back
in
rubyville,
but
we
here
in
Rosslyn
do
we.
We
have
no
class.
B
A
A
Just
do
something
like
chunky,
bacon,
Cohen,
:,
new
maple
5:3,
like
that
all
just
be
all
set.
No,
no,
my
good
lady
for
that
you
will
need
to
write
and
improve
that's
an
implementation
of
chunky
bacon.
So
if
you
want
a
new
instance
of
chunky,
bacon,
you'll
just
have
to
write
a
new
method
yourself.
It
doesn't
just
happen
automatically.
A
A
word
from
our
sponsors:
hey
Mack
me
yeah,
you
there
you
want
to
try
some
rust.
You
mean
the
iron
oxide
produced
as
a
result
of
a
redox
reaction
of
iron
and
oxygen
in
the
presence
of
water
or
air
moisture.
What
have
you
been
reading?
Wikipedia?
No,
not
that
Russell
rustling,
my
friend,
oh
yeah,
that
cool
new
systems,
programming
language,
all
the
cool
kids
at
school
are
talking
about
the
very
same.
Well.
What
about
it?
B
A
A
Welcome
to
mutability
Lake
it's
a
lovely
day,
so
many
of
our
distinguished
townspeople
are
out
sailing
their
toys
ships.
Some
are
fancier
than
others.
Some
are
mutable
and
some
aren't
this
one
here
is
a
nice
one.
This
word
is
not
mutable.
The
side
of
the
boat
reads:
SS
won't
change,
so
we
can't
change
anything
about
it.
I
can
pick
it
up
and
I
can
show
it
to
you
look
how
nice,
but
if
we
try
to
change
anything
about
it,
hey.
B
You
can't
do
that.
The.
A
Compiler
is
yelling
at
us,
so
we
know
we
can't
change
this
boat.
It's
mutable,
let's
try
another
one.
Let's
look
back
at
what
other
ships
are
on
the
lake
cool,
this
one's
definitely
mutable.
It
has
a
little
flag
that
says
mute.
Let's
just
make
a
few
changes
before
we
return
it.
Let's
add
some
wheels
to
this
boat,
perfect
compiler.
What
do
you
think?
No?
A
A
A
Sorry
compiler,
who
owns
this
boat
I
do
I'm,
so
sorry
can
I
borrow
it.
I
was
hoping
to
play
with
it
in
my
bathtub.
Well,
will
you
bring
it
back
of
course,
go
right
ahead,
don't
forget
to
sand
for
sand,
so
everyone
knows
you're,
just
borrowing
it
so
now
I'm
going
to
we're
going
to
have
a
musical
montage.
Let's
see
how
it
goes.
A
A
A
A
Yeah
that
tug
board
is
mine.
Well,
what
if
I
just
punch
the
tugboat
guy
in
the
face
and
hit
him
with
a
remove,
looks
like
no
one
owns
this
tugboat.
Now
you
want
to
talk
about
on
your
boat,
sir
sure,
let's
do
boat
that
pushed
and
pass
in
the
tugboat
yeah.
You
have
one
and
now
another
word
from
our
sponsors.
A
A
Okay,
you
bet
it's
okay.
Can
you
just
teach
me
something
about
rust,
so
the
kids
at
school
will
finally
think
I'm
cool
sure
thing
kid.
Let's
try
a
less
convoluted
metaphor
watch
this
hello
again,
travelers,
have
you
seen
our
esteemed
library?
It's
pretty
great.
You
can
borrow
just
about
anything
as
long
as
you
return
it.
They
even
have
this
great
big
pile
of
books
over
here
that
don't
belong
to
anyone.
You
can
just
take
them.
If
you
want
and
they're
yours
every
so
often
people
will
come
by
with
donations
of
books.
They
don't
need
anymore.
A
However,
if
you
see
something
you
like
in
the
free
pile,
you
can
just
take
it
and
do
what
you
want
with
it.
It's
yours
you're
there
on
the
back.
You
had
a
question.
Yes,
what
about?
If
a
book
is
a
mutable
reference,
great
question
friend,
you
might
very
well
be
borrowing
something
that's
mutable,
like
our
collection
of
coloring
books.
Here
such
titles
as
color,
my
Sartre
hell
is
other
colors
and
the
colors
of
ambiguity.
A
You
can
continue
coloring
in
them.
While
you
have
them
and
then
you
return
them
altered,
only
one
person
can
have
one
out
at
a
time,
though,
we
also
have
some
exquisite
corpse
books
that
are
pretty
cool
every
time.
Someone
borrows
one
of
these.
They
add
a
little
bit
of
it
to
themselves.
They
have
it
a
little
bit
themselves
before
they
bring
it
back.
I
want
to
borrow
that
exquisite
corpse
book
me
too.
A
A
Ok,
then,
so
you
might
have
noticed
how
clean
and
beautiful
Russell
Andy
is,
and
yet
you
might
have
also
noticed
that
there
are
no
garbage
cans
anywhere.
It's
actually
because
of
that
system
of
borrowing
and
ownership
that
Russell
andia
is
able
to
do
without
garbage
collection.
It's
a
big
part
of
what
makes
everything
so
fast
and
safe
here,
but
isn't
it
annoying
having
the
compiler
yell
at
you
all
the
time?
A
Hey
now,
don't
judge
the
compiler
so
harshly.
Look
you
heard
his
feelings
he's
crying
he's,
not
such
a
bad
guy
he's
just
making
sure
everything
we
do
is
good.
Before
we
can
run
it.
The
compiler
is
our
friend.
He
just
wants
the
best.
For
us
sure
his
advice
might
be
a
little
hard
to
understand
at
times,
but
once
you
get
to
know,
him
he's
really
a
good
guy,
I
promise,
and
now
another
word
from
our
sponsors
tonight
on
WR
St.
A
A
B
A
Good
public
service
announcement,
just
because
the
code
compiles
doesn't
mean
it's
something
you
should
do
results
for
when
something
could
go
terribly
wrong
and
you
need
to
throw
an
error
option
for
when
it's
okay
to
just
do
nothing
live
it,
learn
it
love.
It
hey!
Welcome
back
just
in
time
for
the
last
boat
back
to
rubyville,
I,
sincerely
hope
you
enjoyed
your
stay
and
that
you
visit
again
soon.
If
you
want
to
stay
a
little
longer,
there
are
some
very
nice
boxes
at
the
heap.
Otherwise
the
boat
is
ready
to
board
on
your
way
back.
A
We
do
have
some
very
nice
reading
material
for
you.
If
you
interested
in
learning
more
about
risk,
I
strongly
recommend,
starting
with
roasted
by
example.
These
this
online
book
will
teach
will
lead
you
by
the
hand,
step
by
step
through
many
examples
explaining
everything
along
the
way.
After
that,
I
recommend
looking
at
the
official
rust
reference
documentation,
it
is
very
helpful
if
you'd
like
to
try
your
hand
at
some
Russell,
your
very
own,
from
scratch.
There
are
many
excellent
exercises
available
at
exorcism.
Do.
A
Finally,
in
preparation
for
the
original
version
of
this
talk
at
Russ
conf
last
year,
with
some
help
from
my
boss,
who's
UQ
Hooda
cats,
I
developed
a
playable
text-based
adventure
game
in
both
Ruby
and
rust.
This
way,
if
you
are
a
Rubeus,
you
can
check
out
Ruby
and
Russ
code
that
do
similar
things
side-by-side,
but
you
can
actually
also
play
the
game.
You
can
check
it
out
at
github,
comm,
slash,
tilde,
IO,
flash
learning,
rust.
Both
versions
are
playable
but
I,
of
course,
impartial
to
the
rest
version.
A
Last
but
not
least,
I
want
to
thank
Tilda
for
allowing
me
to
work
on
that
game
on
company
time
and
you
hooda
for
working
with
me
on
the
rough
side
of
the
game
patiently
answering
my
questions.
Also
thank
you
to
the
sponsors
who
made
it
possible
for
me
to
be
here.
This
is
my
first
time
in
Europe
and
is
very
exciting
for
me.
Thank
you
for
having
me
once
again.
My
name
is
Liz.
I
am
on
twitter
at
underscore
ell
bailey,
and
that
is
it
the
end.
Thank
you.