Wednesday, October 05, 2016

RailsConf 2010: Robert Martin


see my come in
the right on sky1
and a I
good morning so
where do the atoms in your body
come from stars very good he said that I never mind is that I can't see a thing
out here
but it's okay stars are the right answer the buna first began
in the AM burstyn energy
probably infinite energy probably infinite density although
we can't see back that far in time we can only see back
to about 10 to the minus forty seventh second after that
and there's an awful lot have exponents did it go back beyond that so
we're very far from seeing how the universe began
but at least we know that at about 10 to the -47 second
there was just this goal of maybe the size oven electron
that was pure energy nothing else in just energy but as it grew and expanded
it condensed
the energy started to condense out into real matter
and the real matter that started coming out a bit maybe within a second or so
after the Big Bang
were things like protons and neutrons and electrons
quarks actually came out first and then they would assemble themselves and the
protons and neutrons
and the electrons came out about then and in almost
equal parts ever matter and anti-matter almost
equal parts and that's important because after about 20 another fraction of a
second
all the matter and anti-matter reacted with each other creating load the
gamma-ray photons
and there was a tiny bit residual matter leftover
which is boss now wasn't
us that and that was hydrogen and a little bit of helium and not much else
no carbon no oxygen under the atoms that were used to know gold
the golden my wedding ring that had been formed yet that happened about two
hundred million years later
when stars began to form but the stars were not
your normal everyday star you see stars run on
fusion and fusion have to be capitalized
you can't just take a bunch of hydrogen infuse it you need trace
other elements to help the fusion go carbon is particularly important for
most fusion reactions
so in fact the stars that were forming two hundred million years after the Big
Bang
could not be use they had to get bigger and bigger and bigger and bigger until
the sheer brute force in their gravity
finally coerced me is hydrogen atoms into
be belief using and they would fuse for a few tens of millions in years under
horrible pressure
and then they blow their guts up all over the sky
and in that last explosion
the forces were so great the protons would be slammed together into things
like
oxygen and carbon and uranium and gold and silver an iron
and that would get blown across the universe
polluting the otherwise pristine environment that had existed before
all that hydrogen and helium that was existing before
got polluted with trace elements that then
capitalized fusion reactions and allowed a real stars
and real galaxies to form and planets
and people and that's where the atoms
in your body came from course we're not here to talk about that although
what we are here to talk about has a similar
feel to it because what I want to talk about today
are 25 zeros
I'm leave your laptop with you
okay I'm assuming that everybody I
how many of you have more than one laptop with you never mind
I there's got to be some this is a geeky conference how many you have
following through with you I mean if you have some other kind of computer with
you
there are 1500 ish people in this room
I imagine the number of computers in this room is somewhere over four or five
thousand
yes yes
when I started my career one of the first computer so I worked on was a PTP
8 yeah %ah
created yeah
far KR 12-bit Edwards
we're all the universe with that machine
it had a cycle time up 1.5 microseconds got it was fast
there was a desk on this machine 32
K that's what some monster machine it was the size of a refrigerator
it took thousands of what's you had to plug it in to 2:30 a.m. sockets just to
keep that thing going
it was a wonderful wonderful wonderful machine
right around nineteen sixty you could buy this machine for twenty thousand
dollars which in today's money
is all 120 thousand dollars
and we would do miracles with this machine
but now let's do a little math
the masses frightening
that machine that PDP 8
could do half-a-million ads per second
your laptop can do two billion ads per second maybe more
I reckon that the laptop you holding your hand right now that is
asleep or perhaps you are tweeting with it
is six thousand times faster
than that PDP 8 6 thousand times faster
and probably your laptop has within it
some and the gigabytes avram
where and is somewhere between two and 8
so in has over a million times
more RAM and probably your laptop has within it
a disc that is some an
terabytes where an is somewhere between
.5 in 1.5 so your laptop has
several thousand times more
desk several her I'm at 1000 guys more disc
your laptop probably takes 52 addy
whereas the PTPA took thousands of what's
your laptop well if I took your laptop and started shoving clones somebody
inside a PDB 8
I bet I could get a thousand of them in there
I bet I could to by
for the price I'm one PDP 8 I could probably buy
50 have your laptop
when you start adding up all those zeros
with millions of times more memory the thousands of times more disc
the thousands of times more cycle per second we get to a very frightening
number
we get to tend to the 25th
the laptop sitting idly on your lap of which there are probably five thousand
in this room
is probably tend to the 25th more powerful
then that PDP 8 that we ruled the world with
in the late sixties now that should scare the holy bejesus outta view
you're holding something that is tender than 20 yeah
more then we had forty years ago
to put that into some kind of perspective
tender the 25th is the number um microns
to the nearest star tend to the 25th
is the number up electrons in four quarters
tend to the 25th is the math
I'm the earth in kilograms
a large number
and they're really really really frightening part
this large number is what the hell if we can win it
tend to the 25th you'd think by now
well
go back in time a bit back to 1953
I was 1
and there was the language in those days
a language called fortran booze done them for trash and
look at Battery a FORTRAN program is in the room nap this language
what a lovely language what had an if statement
and in this is statement you did not put any kind of bullying expression
you simply put in numeric expression and following the if statement
were three numbers the line number to go to if the in
arithmetic expression was negative the line number to go to if it was zero
and the line number to go to if it was positive that's how we made
decisions in Fortran in 1953
there were no while statements or wild
loops but there was something called a du Loup
which incremented in integer and allowed you to repeat
until that integer exceeded some limit
the most interesting part have fortran was probably the format
statement that's where they seem to put the most fought
the format statement was how you would output thing
it looked roughly similar to what we would now call a printer
back in those days they didn't know about quote
we know about quotes now you put quotes around strings
but in the early days quote hadn't been invented
so what they did in
status they put aid integer which was the number of characters
followed by the letter eights and then everything after that
age was the string so if you wanted to say hello
age EL oh that five characters UN save $5
H H ello that first
age there stood for hollaaaa
who was the inventor of the punch card
no language honored the inventor of the punch card
and then there was this problem
we needed to be able to control the printer we need to be able to tell the
printer
went to pop-up one-line
or possibly pop up two lines or pop up to the beginning of a page
show the very first character you would print
would be the control character and it would be a
one digit one if you wanted to go up a line
the digit 0 if you wanted to go up two lines they had their things backwards
for some reason
I don't know why the character plus if you did not want to go up any lines at
all
and oh by the way I just got that wrong didn't
it was a space to go up one line it was a zero to go up two lines
and it was did you want to go to the top of the page
actually the digit one did not go to the top of the page
it went to printer channel one most in the printers in those days
had a paper tape reader in them and you would punch a hole
and if this paper tape was in a loop the number up
lines on the paper tape was the number in line he would print on a page
and would punch holes in the paper tape in channel one channel to channel three
all the way up to channel 8
and that way you could tell the printer go to channel one their channel two
Dutch Shell freedom pop up the page to that place
that was the level love intelligence in 1953
and what kind of code where we writing while
we were writing assignment statements
if statements although they were arithmetic in nature not logical the way
we do that now
and loops
what's changed
what do you write now in Ruby
you right Simon statements
if statements noble I
back and find one
loops
the interesting thing about where we are now after twenty five orders of
magnitude improvement in hardware
is that our software has improved by nothing like that
maybe not even by one order of magnitude possibly not even
at all because we are still doing
sequence selection and iteration I just abstracted the concept
at assignment statements are sequence selection is if statement iteration is
due loops
and that is still the fundamental stuff that we do
we programmers here massively powerful
creatures that rule the planet with our ability to write code
right sequence selection
and iteration and that's essentially all we do
although we've got lots of clever ways to organize
the sequence selection iteration we put it inside objects are we put it inside
blocks are closer's
or oh there's all these clever places we put and
but it's still shot sequence selection
and integration after twenty five orders of magnitude
improvement in our hardware our software
remains the same
who remembers a book called structured programming 1972 little black book
you haven't read it you must going read it it is the second book you have to
read
I'll tell you the first book in a little while
in this book dykstra Edgar dykstra makes the point that
go to is not just
unnecessary but harmful
he says please please stop doing this go to stop its hurting your code
it makes your code on provable you get reason about it if it's got goatee isn't
it
please please restrict your code to
sequence selection and iteration any canonized those three
he turned them into the three fundamental things that we do
structured programming is the limitation of code to
sequence selection and iteration by the way this was hugely controversial in the
day
people were up in arms there was no internet at the time
so there couldn't be any flame wars but there are plenty of wars in the trade
journals
articles were written left and right about how Dykstra was an idiot and it
was absolutely impossible
to write code without go to some other people would show them
oh yes I can you pull and we go back and forth for a long time
odd how things work out though
what language do you know I've now that has a goatee
yes the ad
there are some but wait out here
dumb interestingly enough
our languages have all but dropped the structure
and we barely noticed it the thing that was wildly controversial in the
seventies in the late sixties
at simply be calm the way we work
that by the way just as a simple aside is what I believe will happen to things
like test driven development
wildly controversial when it first started still mildly controversial
but go ahead fast forward 20 years I believe that the languages
will simply have testing structures it may even be impossible
in those languages to write code without writing your tests first
and we might not even now is just would have happened that way
the languages would have just kinda moved us in that direction
same thing happened with objects know what major language nowadays
there is one but we'll talk about it later what major language nowadays
is not object-based wildly controversial enough time and it simply been absorbed
into the Borg Ammar software community
now this is the rails conference and I love coming to the rails conference
because this is where things really happened
you guys are on the edge you guys are doing all the cool stuff
you guys are doing this stuff that's really going to pull our industry
into the next decade so this is a fun place for me to be
but instead of looking ahead for the moment
let's look back a little bit where dan Ruby come from
how old is this language who can tell me when ruby was born
yes before Java well
somewhere near the same time it was february 24th
1993 when Matt's first conceived of the idea
Ruby he wanted to make a better pearl
now ruby started out looking a lot like pearl but over the years the Pearl isms
have kinda faded into the background
and ruby has begun to look more like the other languages that
that gave it birth small talk and fee
we see a lot him seasons in Ruby and we see an awful lot of small talk isms in
Ruby
and the Pearl stop all those funny little variables that were so proud we
have memorized they're kinda stuffed away in the background
we don't like to use them where did see come from
how old is feet
1969 1969 see was invented
how old is pearl 1987
Larry wall and what about small talk
when did small talk come
71
is CJ Alan K
and Ingles dan Ingles I think had a bet then Ingle said Alan Kay in now
a really powerful language based on messing pasan
message passing up the kind on in Simula would probably take months to write
and Kay said I can write that on one page
and so the back was struck and a couple of mornings later
the first version of smallpox appeared on Alan K's
desk he had written his one-page colonel a small talk
that's how small talk came to be but small talk was based
on a language called semua Simula 67
but by the way that number is the year 1967 is when stimuli came out
and similar was based on out all sixty
which was based on out all 50 8
whose author was the same author as
for track there's a interesting
family tree here that we're going to talk about
there's another seven languages that are also in the mix here
there aren't related yet the list be languages who knows less
not enough %uh view we'll talk about that later
a less was actually invented in 1958
I was 6 six years old and some guy was already fiddling around
winless it was John McCarthy any it invented these things called
m expressions which will turn off a lot like function calls but he translated
them into
s expressions which looked a lot like list procedure calls with the
parentheses
in the wrong place he'd actually based his language
on an assembly language called I P L
56 which had a lift basic
basis to it was an assembly language for lists
now before we get too far back in time
let's also talk about some of the other languages that are current right now
C sharp when the fish are come about 1999
well soared
actually see sharp is Java so you can go back that far
but its bullet from job in 99 it was a language called cool
a Anders Healdsburg kinda split away from Java
secretly in silently in and they produced this language school which
eventually turned into
C sharp but it's certainly had
some tenuous connection to Java
which was invented in ninety-one by
Gosling it was called ok and he reinvented it because he hated c plus
plus
any didn't wanna c plus plus for this project he was doing
to control the hardware inside to make cable TV
I set-top box Java
clearly based on hatred out C plus plus
c plus plus was invented in 79
by yeah I
Minister's trip yarn a
invented not they invented c plus plus in 79
he called it see with classes and he invented it because
he got hired by AT&T and he
they said well you gotta write code in C and he said
I I don't wanna write code in C
I'm used to writing in similar so he wrote this language that made see you
look like
stimulus so c plus plus has its roots in similar which has its roots in
alcohol which has its roots in the ALP FTA which has its roots in Fortran see
1969 Dennis Ritchie how did these guys do this
yeah couple guys hacking around in the basement I don't think they had a real
project
I think they were between projects in one guy look at the other end said
what you want to do today I'll try language
what should we call it well there's this language be out there
ours is going to be better let's call it see
yet see you is based on be which is a language that ken Thompson agree written
also in 1969 which was based on BC ppl
which was the language that was written by Martin Richards in 1966
which was based on Cpl which is called the Cambridge programming language
which was invented in 1963 which was based on alcohol sixty
starting at the flavor the stock
closure language closure
designed by rich Hickey in 2008 has its roots
in Common Lisp and Clauss
and scheme these are live be like languages and they don't share our
a lot of the same family tree as all these other languages they seem to be on
a different
different thread although they do come together finally
because scheme was based on list in 1958
but it was also based on out all sixty the low
logical scoping the variable scoping mechanisms in Scheme
were drawn out if the alcohol sixty language
so there's some hybrid meeting that went on
between these two families in those days
and all of these languages all love them going far back in time derived from one
another
grown from one another starting at the same route all IOU's
sequence selection iteration
they're just different ways to express that
different ways to manipulate the same
fundamental clay that we work with
every day you might notice that I didn't mention Pascal
as much as
things change in our domain and they do you change a change all the time
new languages new ideas new patterns new procedures new methods
as much as things change they actually don't change very much at all
actually stay pretty close to the same the new language is that we are really
getting interested in today
those ideas are recycled from the fifties in the early sixties
object-oriented design was invented in the mid sixties
lift and procedural and functional programming was invented in the fifties
in the early sixties the sea basic language is that we use today's trace
their roots back
to the early sixties in the mid sixties nothing much has really changed we might
look at our languages like Ruby and think all
but it's really just a slightly different twist
on something that's been around for a long time now maybe we think well yes
but
look at the things that have changed like take the
internet what happened passively interesting thing this internet is it
spans the globe but I this together
certainly true but where did the internet come from
just just to prove
hardware use that hardware yes Alydar know I've got a little note here that
says it wasn't really al gore
I think it was pepper actually I think that's the cause
in 1962 this guy by the name of Joel lick lighter
wrote a paper and just to prove the irreverence was alive and well
in the sixties the title love this paper was
the intergalactic computer network this is the paper that spawned the Internet
thank God somebody with a sense of humor wrote that paper
in 1962 he wrote this lovely paper which described the whole idea
the basic fundamentals of what the internet would be the protocol the way
the machines with the lineup
he had it all down but it took seven years
before the first message was sent
the first Internet network was put together in nineteen sixty-nine it had
more nodes those four nodes where Stanford
University in Utah and a few others UCLA and
and UCSB and the first message that was sent was the word
login it was sent from UCLA to Stanford
but only the letters lol got through and then it crashed
come away with
since then today
there are all 155 times
tend to the sixth web sites maybe there are
five hundred times tend to the sex people who use it once a week
$500 million people there are five times tend to the 15th
white stored somewhere on Internet servers
there are probably seventy five million servers out there although that number
is probably
of by a factor of five or ten the number
of electrons in motion to carry the data
way two ounces and the power that it takes to drive those two ounces of
electrons around the net
is 50 million a horse our
which translates into 1.5 grams a matter to energy
per sec the earth is losing mass
at a rate of 1.5 grams per second
because of the Internet
and what does the internet give us
the lead the worst idea
since the green screen from which it iraq's
the web this horrible messy nasty structure based on
protocols that no sane person would use based on markup languages
that are hideous how many languages do you have to go together I am web page up
in 1972 IBM invented the 3270 wonderful machine
nice big CRT I mean you remember these things right
called green screens nice big CRT and that means cathode ray tube by the way
arnelle seabees cavo to rate have nice big screen green letters blaze and on
them
while they were such nice things to look at and the protocol that was sent to
them
was a markup language it was a simple markup language you could say
ok with these characters here boldface those characters
do something else to those characters make these characters invisible
ok here's should be a field when somebody type Senate remember the
characters
and there was a button you could push on the green screen that would take all of
the data entered into the fields and transmit it back
sound familiar this is what we've turned it into
based on technology from 1972 it has become
the web HTML an HTTP are certainly different
not batter just different
and in some sense the same
00 but we think yes but web 2.0 is come out in web 3.0 is going to be here in
html5 is going to be here in
life will be great the Act
live will be flying you know whatever but
all this stuff has been done before we've done the client server thing
before all this javascript out in the browser's just the old
client/server thing recycled yet again
we're gonna go around the loop another time around and around we go and we go
around this loop
because in the end
our technology is still sequence
selection iteration we go through lots have heat unlock some energy to invent
new technologies that are not new technologies
they're just New Reflections new projections
I'm old technologies our industry is in some sense
caught in a maelstrom in a in a whirlpool
it cannot escape from sequence selection iteration
all the new stuff we do isn't new at all
old just recycle old stop and Wii with Wii claim it's bad her
because we been riding a wave up twenty five orders of magnitude
the real progress has not been in software and has been in hardware
and we've been riding that wave claiming the benefits
for ourselves but in fact there's been virtually no
real solid in ovation
in the fundamental technology or software
so as much as software technology changes in form
it changes very little in assets
as proof of this let's look at you guys
you doing using really ruby is an interpreted language
now it almost seems in sale that anyone would use
interpret language certainly in the 19th sixties
nobody would have used an interpreted language
oh well maybe that's not right there were interpreted language there were
things like basic
and even on a p2p eight we had this nice little interpreted language called
folk out we could write little bits of code in people were been using
interpreted languages forever
but do you guys using Ruby and I will include myself in that cuz I happen to
love writing
be we who write Ruby
are experiencing a strange
juxtaposition
what do you use for an editor
why
yeah I'm
from which is
yeah I what
twenty years ago I couldn't wait to get off a VI
me I
wide yeah I'll
oh wait I i know i using VI
that's because you came from tax
midday for the guys on the front adds the cutting edge of technology Ruby rule
the world
when you are using VI I don't understand
you know there are people out there that are trying to make
I'm ID's
that have
from interesting abilities now
at the per he isn't ellijay
in Java
okay I know I'm not supposed to say that Java
used the power I've those re factoring
the power I'm that tool to manipulate code
is enormous it's unbelievable
and can you imagine that power in Ruby
can you imagine being able to say oh this class needs to be split into two
Command Option C well and the class is split into
this method needs to be moved over to that class Command Option
are who and it moves over to that class this class should be split into a
hierarchy extract a superclass
Command Option at school camp why can't we have that why can't we have that
where you is that technology
and frankly I think that the guys who would like to do that are looking at you
and go on addys
these guys are doing the I they're not ready for that right well have to wait
another 10 years until they wake up
how many of you guys are using web rack
cucumber lovely to it's wonderful to
I love I love the tools but
I have sad with Ruby programmers
as they're doing test driven development writing cucumber scripts
with the web iraq to access the web system
and they're testing business rules through the UI
why
testing business the rules through the UI
what throwback to the 1970s is back
how can you be testing anything through the UI except the UI itself
why don't we test through the UI because the UI is fragile
because the UI is volatile because the UI changes
software engineering 101 don't depend on things that are follow
don't hang coded that's going to have to be changed because of some
we have another i've a web designer now to write your test so that a
I was love them a break because some guy wants to change the spelling a menu
or the position on the page I don't mind
cucumber I think you comers terrific and I think web rats terrific but when
you're testing business rules
U-turn of the UI you don't go through the web server you don't invoke the
controllers
you go right to the got seven is a test set business rule
and then when you're testing the girly
you know test any business rules you cut the whole model of the bottom news
now but out your place it was something that does nothing
so that you can test the Google itself
languages come in waves
some love you will remember the waves serve the recent past
we've had the Seaway and the sea wave came along it crested
0 probably around nineteen 79 1980 1981 something like that these
lease language waves look like black body curves
they start in their eyes quickly and then they slowly DK
and the waiver see probably crested in the
early eighties maybe a little
after that it was followed by the sea plus plus wave which probably crested
right around 1990 in began its decline
the Java wave probably crested around 98 99
maybe 2000 when the bubble burst it in its decline
the Ruby wave probably came along around though 2002 is cresting
maybe it hasn't crested yet it's possible that ruby is still on the
ascendance I think it probably is
as more and more people are getting excited about it but
don't ever think that it's not going to top
the crest and then start its way down
well all languages do because all languages are fundamentally the same
we just go through cycle after cycle after psych
something has happened
something that's happened
that breaks the path that we've been on
this twenty five orders of magnitude what's been driving this 25 more orders
have magnet what's the fundamental
thing that has driven us through this I've early friend NetIQ increase in
hardware power
Moore's Law and Moore's law just died
let that sink in for a minute
it is almost certain at this point that Moore's lies dead
that our hardware is not going to get
twice as fast and twice a small every 18 months
that the headlong rush down those 25
orders of magnitude has stall maybe it has installed completely maybe we will
still make progress
but I think we can look ahead the next forty years
and anticipate that there will not be another $25 orders of magnitude
added to the list it's going to be different and already the hardware
designers are making changes changes that are having
deep replica russians for people like you and I because we're not going to be
able to ride that curve any longer we're not gonna be able to ride the hardware
roller coaster any longer
we're not going to be caught able to claim the massive benefits in hardware
for ourselves
does the people doing the hardware have made some extremely pragmatic and very
troubling decisions
in your laptops right now
the chips in there how many what percentage
up the transistors in those ships are
simply to manage think cash you know the cash that keeps
softwares right from going to ram RAM
from the chips point-of-view RAM is an expensive resource
RAM takes forever to do anything in so there's an immense amount of water check
tip stop anything from going into RAM to pass it all in little
on-chip flip flops so that you don't have to actually go out on the bus and
stored something in memory
and the amount have a logic taken up by those transistors
is 30 percent of the chip and the hardware manufacturers are now going
well
we're not going to get more speed at these things
but maybe we can get more throughput
by taking that 30 percent of transistors
and clearing them out and using them instead for
more processors is processes will be slower
they're not going to be as fast the machines themselves will be slower
but there will be more on them on the chip
and the hardware developers are looking at us from going well now guys it's your
problem
we can give you more computers no problem we can keep the number of cycles
per second
knowing up but not the same way it's going to be when lots a little computers
slower computers on the same chip
and that has very disturbing implications
for us because our languages
for the last 50 years have been
written around the idea that there's one machine
and now there's going to be many now we've all had experience with
with the the multiple threads and
a little bit a multiprocessor stop but holy
how hold onto your hat because that's going to change in its going to change
big time
and that's driving a new look
at some very very old software technologies particularly
functional language is the whole reason that functional languages
are now very very interesting to people
is because if this multi core problem
and so we'll see the we see the I am the big people
the the creating functional languages we see IBM and the Java people doing one
and we see Microsoft
doing another because they are trying to hold off on
to their monopoly a view
because if they control the language they control you but it's not going to
work I don't think
you guys are a good example of how that doesn't work ruby is a rebellion
language the language
to get out from under the umbrella love the big software companies
who want to control your brains
and now if the Scala coming out of the Java community in F sharp
coming out have the Microsoft computer community and what we see in these
languages
is big complicated stuff
like any big company they would make some large
thing but there are other languages
other functional languages that are out there that are
interesting there's Pasco there's air lang
and my personal favorite is closer
and I like closure because it's based on list it's based on
scheme it's impossibly simple it's so incredibly simple it takes very little
time to actually learn
and yet it is truly a functional language
it is a very very strict functional language that has
if you want to do anything 9 functional in it if you want to
us sign something if you want to do an assignment statement
you've got to jump through hoops you can choose to sign a veritable
you've got to invoke the software transactional memory model
so I have some hope that in that morale
we will start to see some real
innovation maybe for the first time in 50 years
some real difference to the way we write software
maybe we'll see
who among you has read
the structure and interpretation of computer programs
this is if you have not read this book this is the next book you must read
what's your Q doesn't matter what book you had scheduled to read
you must go and read this book next
does this book is an eye opener in so many ways
first of all it's a page-turner you get this book out you start reading it
and the pages just flock holy how that moves
Lightspeed they're going through topic after topic after topic
they're showing it to you of course in Scheme as Italy it's a book about scheme
but man oh man I just on to topic after topic at the topic
and it reads like a novel it's exciting you can't put it down where where where
and you get to page 216
and you've gone through objects and you've got to data structures and you've
gone through our other than you've gone through all this stuff
and then on page 216
they introduce an assignment statement
and you look at that an ego why
all this code all these topics everything we were studying
but the last two hundred and fifteen pages and there wasn't an assignment
statement
in there and you didn't even know it
and then you get to do 16 and it's like
why
why are now assignment statement through all of that
and then they introduce a new model of computing saying okay
now the assignment statement now that we have to introduce it it breaks all the
rules the brakes are all model of computing
we've got to invent is new really complicated model of computing and they
describe it in intimate terms why it's new and why it's art
and then you go on another 60 70 pages
dealing with this assignment monstrosity
and then they introduce multiple threads
and once again they have to reinvent the model in computing now
now that we're doing multiple threads we have to change the model yet again and
again more complicated
more hard to deal with I love the idea that they equated
assignment as a complexity generating
thing equivalent to multiple threats
this is the next book you must read
single thing on the screen there looks like four stars
across that's actually one star gravitationally lensed by a a
a galaxy in the foreground which of course you can't see
a by the way that was the end my cock are there any questions
sorry rights to the name of the first book I mention which is the second book
you should read
is structured programming by dykstra doll in horror
it was printed in 1972 Academic Press
you might be able to get a copy on eBay used books I don't think it's in print
any longer but it's a classic
in that book you will find dykstra describing structured programming
you also see Nygaard and all
talking about object orientation they describe Simula 67
inside there you'll hear all about
the rules have object orientation the second book I mention which is the first
book you should read
is a book called the structure and interpretation of computer
programs by Abelson and Sussman
I think it's MIT Press there are plenty I love
up copies in print you can get them also their lectures
are available for free on the internet you can download and watch these two
guys
do magic on a blackboard in school
anybody out
well have I heard about interning
the third book that you should read
after the others
is a book written by Petzold
are called the touring almanac I think
on the bus the touring on while
lovely story he takes be entire
two rings entire paper describing his touring machine
is embedded in this book with Petzold going through
they history in the reasoning of all around it what a lovely lovely book that
is to rate that's number three
anybody out clean-cut code