
Grace Hopper was one of the pioneers of
computer programming already an
accomplished mathematician grace joined
the Naval Reserve in 1943 to assist in
the war effort she was assigned to a
research division which worked on the
mark 1 computer which performed
calculations for the Navy she quickly
gained the attention of her colleagues
earning the nickname Amazing Grace and
her career continued long after the war
ended
one day grace and her team were in the
lab trying to figure out why their
computer had shorted out the night
before they spent nearly an entire day
coming through thousands of
electromechanical components and
hundreds of miles of wire before finally
lo and behold in relay 70 panel F a
large moth was found they pinned this
moth to their group logbook with a
comment first actual case of bug being
found and I swear I didn’t plan this but
this moth was found on September 9 1947
exactly seven years ago today Grace
Hopper left behind a profound legacy
beyond our now common usage of the word
debugging she invented one of the first
compilers based on her belief that
computer languages should be based on
human languages she also popularized the
notion of machine independent
programming languages which led to the
development of COBOL which is what I’m
here to talk about today now if you’re
not a programmer you probably have no
idea what COBOL is or why it matters but
if you are you are a programmer you’re
probably thinking where’s the exit
let’s give you a quick breakdown COBOL
is a programming language invented in
1959 standardized in 1968 and shortly
after received widespread adoption
throughout the government and private
sector
COBOL stands for common business
oriented language and as the name
suggests its usage was primarily in
business and banking applications though
is also used to manage train timetables
and air traffic control systems in other
words COBOL is a really old programming
language that programmers used a long
time ago
are you on the edge of your seat yet
probably not so let me give you a few
facts from 2017 43 percent of banking
systems are built on COBOL 80% of
in-person transactions use COBOL
95% of ATM swipes rely upon COBOL there
are still two hundred and twenty billion
lines of use of COBOL in use today how
about this one there are 200 times more
COBOL transactions a day than there are
Google searches so clearly COBOL
continues to matter today even though it
was a language invented in the 60s so
why is that a problem well only one in
four universities today teach COBOL even
then it’s usually an elective and even
then it’s usually bundled together in a
type of survey course covering a variety
of legacy languages COBOL is the
quintessential old dusty language that
no one wants to use anymore when you’re
talking about legacy code today you’re
usually referring to COBOL here’s what
one industry leader had to say about it
legacy code the phrase strikes disgust
in the hearts of programmers it conjures
images of slogging through a murky swamp
of tangled undergrowth although our
first joy of programming may have been
intense the misery of dealing with
legacy code is often sufficient to
extinguish that flame but maybe that’s
just this one guy to see if this
attitude is present elsewhere let’s
delve into a resource we all know to be
a source of positivity and encouragement
the comments section of YouTube videos
the following are some actual comments I
came across while researching COBOL
horrible programming environment
horrible language it’s simply painful to
even look at a rusty spoon looks
downright pleasant fun even compared to
this I’d rather sell my blood these
comments reveal to me what I already
know by virtue of being a programmer and
working with them throughout my career
there is not simply a lack of education
when it comes to COBOL
there is an active aversion to it a
sense that having to work with it at any
level would be a punishment
also known as not invented here syndrome
even good code can be thrown out in
favor of a programmers destructive urge
to rewrite the same systems according to
their own preferences or aesthetic
tastes so we are running out of people
who are willing to use COBOL the best
COBOL programmers have retired or about
to retire and with them vast knowledge
of the systems they have built systems
we depend upon every single day whether
we realize it or not so where are the
COBOL programmers I do know one my
father
here’s a picture of my father in 1979
that’s me on this lap and that’s my mom
next down with a Led Zeppelin shirt
shortly after this picture was taken my
dad had an accident which left him
paralyzed from the neck down this was a
crisis for my family on multiple levels
not the least of which was the practical
question how is he going to earn money
before his accident my father worked in
a machine shop as a new quadriplegic
this was no longer an option after
undergoing physical therapy for a while
he learned he could type with the aid of
a mechanical device which fit around his
hand a hand split almost naively he
thought well if I can type I guess I can
write computer programs so he enrolled
in a course in computer programming and
though it didn’t come easy he graduated
in 1984 when I was just six years old he
went on to work for a department of
defense contractor the Army Air Force
exchange service or APHIS the largest
retailer of military bases in the world
by the 1990s companies were already
trying to figure out how to get rid of
COBOL the web had arrived upon the scene
and with it vast innovations in both
hardware and software
so APHIS hired an outside contractor to
replace their existing systems with
newer technologies this is now known as
the rip and replace approach to dealing
with legacy code in essence the
contractors objective was to rewrite all
the COBOL code using newer languages my
father and many of his co-workers feared
for their jobs so what happened
they failed completely there was just
too much code so much COBOL that it ran
throughout the entire worldwide
organization like veins and arteries in
a human body
the engineering feat was just too
overwhelming it was like trying to
replace the entire engine of a
locomotive while still running and
that’s the whole problem when you’re
creating something from scratch you can
take all the time you need
reevaluate your assumptions dozens of
times engage in a period of testing or
beta but when you’re migrating an
existing system there can be no downtime
it has to work immediately out of the
gate
a few years later a facade a second
contractor with a different approach
working closely with the COBOL
programmers including my dad they
developed what is known as a wrapper
solution the concept of a wrapper
differs from a full rewrite in a few
important ways first it means we do not
have to throw away the old code at least
not all of it instead it is extended in
such a way that it can interface with
newer technologies second building a
wrapper involves close collaboration
between two or more generations of
programmers they essentially must find a
common ground with which their two
systems can communicate within a wrapper
COBOL code and systems continue to run
indefinitely but moving forward any
additional functionality is built
outside the wrapper in newer languages
like the hand splint my father used to
type with the old technology the hand is
not thrown away instead it is wrapped in
a newer technology that allows you to do
things the old could not do on its own
there is something I find beautiful
about this approach because rather than
dismiss or trivialize the work of the
generation before it actually validates
their contributions it assumes at the
outset that their code actually works
and works well so well in fact we admit
we cannot simply rewrite it in our new
sexy languages in a matter of months or
even years and why should we if we want
to move forward with technology why
rewrite the same business logic over and
over again wouldn’t we rather create
something new it is exactly this failure
to understand the reality of COBOL
systems that has led companies down the
road of expensive migrations some of
which have run in budgets approaching a
billion dollars it’s not that companies
are just too lazy to upgrade in some
cases they can’t it just works so damn
well how profound is it that code
written 40 years ago on machines that
have literally a fraction of the
computing power of the devices we have
in our pockets is still so effective so
efficient that most banks cannot even
afford to write new software that does
the same thing the truth is it is good
it is code that is imbued with
brilliance and an efficiency it is code
that was written with great care
sacrifice and love we don’t often hear
the words code and love in the same
sentence but maybe that’s part of our
problem we think of technology in
mechanical transactional terms but why
do we think of technology in this way
and not other things surely we don’t
think of art in these terms or music or
literature we take it for granted that
the creators of these works invested
huge amounts of time effort and yes even
love into them and that is what legacy
really is it is a profound investment of
care and sacrifice made by generations
before so we can enjoy the gifts they
left behind whether those gifts come in
the form of paintings novels symphonies
or code that keeps airplanes from
crashing into each other groceries
arriving on grocery store shelves or ATM
machines from losing your money no
before the YouTube comments start
flowing my way let me make one thing
clear I’m not saying we should all start
writing in COBOL again we should move
forward with technology and all the
amazing innovations that are being
introduced all the time but what I am
saying is without a basic level of
appreciation for legacy code and perhaps
more importantly legacy coders we will
be unable to bridge the old with a new
this is essential for any art form any
craft to truly blossom we must learn to
adapt to old technologies as fluidly and
elegantly as we do the name when I was
seven years old my father taught me how
to program he taught me what loops were
what variables were and how to interact
with databases these fundamentals have
not changed since he introduced me to
them over 30 years ago I use them every
single day the principles of software
engineering are timeless and I believe
we should honor those who came before us
who left behind great wisdom code and
love my father is here today and I’d
like to
asked you to give him a round of
applause today in gratitude to his
legacy because the problem of legacy
code will not end with COBOL to all the
software engineers entering the
workforce today I ask you to consider
the cold hard fact that the hottest
languages you’re working in today will
become the legacy code of tomorrow what
will happen to all of your hard work
will it be discarded or will it be a
contribution another layer in a
knowledge craft that will endure for
thousands of years
computer programming already an
accomplished mathematician grace joined
the Naval Reserve in 1943 to assist in
the war effort she was assigned to a
research division which worked on the
mark 1 computer which performed
calculations for the Navy she quickly
gained the attention of her colleagues
earning the nickname Amazing Grace and
her career continued long after the war
ended
one day grace and her team were in the
lab trying to figure out why their
computer had shorted out the night
before they spent nearly an entire day
coming through thousands of
electromechanical components and
hundreds of miles of wire before finally
lo and behold in relay 70 panel F a
large moth was found they pinned this
moth to their group logbook with a
comment first actual case of bug being
found and I swear I didn’t plan this but
this moth was found on September 9 1947
exactly seven years ago today Grace
Hopper left behind a profound legacy
beyond our now common usage of the word
debugging she invented one of the first
compilers based on her belief that
computer languages should be based on
human languages she also popularized the
notion of machine independent
programming languages which led to the
development of COBOL which is what I’m
here to talk about today now if you’re
not a programmer you probably have no
idea what COBOL is or why it matters but
if you are you are a programmer you’re
probably thinking where’s the exit
let’s give you a quick breakdown COBOL
is a programming language invented in
1959 standardized in 1968 and shortly
after received widespread adoption
throughout the government and private
sector
COBOL stands for common business
oriented language and as the name
suggests its usage was primarily in
business and banking applications though
is also used to manage train timetables
and air traffic control systems in other
words COBOL is a really old programming
language that programmers used a long
time ago
are you on the edge of your seat yet
probably not so let me give you a few
facts from 2017 43 percent of banking
systems are built on COBOL 80% of
in-person transactions use COBOL
95% of ATM swipes rely upon COBOL there
are still two hundred and twenty billion
lines of use of COBOL in use today how
about this one there are 200 times more
COBOL transactions a day than there are
Google searches so clearly COBOL
continues to matter today even though it
was a language invented in the 60s so
why is that a problem well only one in
four universities today teach COBOL even
then it’s usually an elective and even
then it’s usually bundled together in a
type of survey course covering a variety
of legacy languages COBOL is the
quintessential old dusty language that
no one wants to use anymore when you’re
talking about legacy code today you’re
usually referring to COBOL here’s what
one industry leader had to say about it
legacy code the phrase strikes disgust
in the hearts of programmers it conjures
images of slogging through a murky swamp
of tangled undergrowth although our
first joy of programming may have been
intense the misery of dealing with
legacy code is often sufficient to
extinguish that flame but maybe that’s
just this one guy to see if this
attitude is present elsewhere let’s
delve into a resource we all know to be
a source of positivity and encouragement
the comments section of YouTube videos
the following are some actual comments I
came across while researching COBOL
horrible programming environment
horrible language it’s simply painful to
even look at a rusty spoon looks
downright pleasant fun even compared to
this I’d rather sell my blood these
comments reveal to me what I already
know by virtue of being a programmer and
working with them throughout my career
there is not simply a lack of education
when it comes to COBOL
there is an active aversion to it a
sense that having to work with it at any
level would be a punishment
also known as not invented here syndrome
even good code can be thrown out in
favor of a programmers destructive urge
to rewrite the same systems according to
their own preferences or aesthetic
tastes so we are running out of people
who are willing to use COBOL the best
COBOL programmers have retired or about
to retire and with them vast knowledge
of the systems they have built systems
we depend upon every single day whether
we realize it or not so where are the
COBOL programmers I do know one my
father
here’s a picture of my father in 1979
that’s me on this lap and that’s my mom
next down with a Led Zeppelin shirt
shortly after this picture was taken my
dad had an accident which left him
paralyzed from the neck down this was a
crisis for my family on multiple levels
not the least of which was the practical
question how is he going to earn money
before his accident my father worked in
a machine shop as a new quadriplegic
this was no longer an option after
undergoing physical therapy for a while
he learned he could type with the aid of
a mechanical device which fit around his
hand a hand split almost naively he
thought well if I can type I guess I can
write computer programs so he enrolled
in a course in computer programming and
though it didn’t come easy he graduated
in 1984 when I was just six years old he
went on to work for a department of
defense contractor the Army Air Force
exchange service or APHIS the largest
retailer of military bases in the world
by the 1990s companies were already
trying to figure out how to get rid of
COBOL the web had arrived upon the scene
and with it vast innovations in both
hardware and software
so APHIS hired an outside contractor to
replace their existing systems with
newer technologies this is now known as
the rip and replace approach to dealing
with legacy code in essence the
contractors objective was to rewrite all
the COBOL code using newer languages my
father and many of his co-workers feared
for their jobs so what happened
they failed completely there was just
too much code so much COBOL that it ran
throughout the entire worldwide
organization like veins and arteries in
a human body
the engineering feat was just too
overwhelming it was like trying to
replace the entire engine of a
locomotive while still running and
that’s the whole problem when you’re
creating something from scratch you can
take all the time you need
reevaluate your assumptions dozens of
times engage in a period of testing or
beta but when you’re migrating an
existing system there can be no downtime
it has to work immediately out of the
gate
a few years later a facade a second
contractor with a different approach
working closely with the COBOL
programmers including my dad they
developed what is known as a wrapper
solution the concept of a wrapper
differs from a full rewrite in a few
important ways first it means we do not
have to throw away the old code at least
not all of it instead it is extended in
such a way that it can interface with
newer technologies second building a
wrapper involves close collaboration
between two or more generations of
programmers they essentially must find a
common ground with which their two
systems can communicate within a wrapper
COBOL code and systems continue to run
indefinitely but moving forward any
additional functionality is built
outside the wrapper in newer languages
like the hand splint my father used to
type with the old technology the hand is
not thrown away instead it is wrapped in
a newer technology that allows you to do
things the old could not do on its own
there is something I find beautiful
about this approach because rather than
dismiss or trivialize the work of the
generation before it actually validates
their contributions it assumes at the
outset that their code actually works
and works well so well in fact we admit
we cannot simply rewrite it in our new
sexy languages in a matter of months or
even years and why should we if we want
to move forward with technology why
rewrite the same business logic over and
over again wouldn’t we rather create
something new it is exactly this failure
to understand the reality of COBOL
systems that has led companies down the
road of expensive migrations some of
which have run in budgets approaching a
billion dollars it’s not that companies
are just too lazy to upgrade in some
cases they can’t it just works so damn
well how profound is it that code
written 40 years ago on machines that
have literally a fraction of the
computing power of the devices we have
in our pockets is still so effective so
efficient that most banks cannot even
afford to write new software that does
the same thing the truth is it is good
it is code that is imbued with
brilliance and an efficiency it is code
that was written with great care
sacrifice and love we don’t often hear
the words code and love in the same
sentence but maybe that’s part of our
problem we think of technology in
mechanical transactional terms but why
do we think of technology in this way
and not other things surely we don’t
think of art in these terms or music or
literature we take it for granted that
the creators of these works invested
huge amounts of time effort and yes even
love into them and that is what legacy
really is it is a profound investment of
care and sacrifice made by generations
before so we can enjoy the gifts they
left behind whether those gifts come in
the form of paintings novels symphonies
or code that keeps airplanes from
crashing into each other groceries
arriving on grocery store shelves or ATM
machines from losing your money no
before the YouTube comments start
flowing my way let me make one thing
clear I’m not saying we should all start
writing in COBOL again we should move
forward with technology and all the
amazing innovations that are being
introduced all the time but what I am
saying is without a basic level of
appreciation for legacy code and perhaps
more importantly legacy coders we will
be unable to bridge the old with a new
this is essential for any art form any
craft to truly blossom we must learn to
adapt to old technologies as fluidly and
elegantly as we do the name when I was
seven years old my father taught me how
to program he taught me what loops were
what variables were and how to interact
with databases these fundamentals have
not changed since he introduced me to
them over 30 years ago I use them every
single day the principles of software
engineering are timeless and I believe
we should honor those who came before us
who left behind great wisdom code and
love my father is here today and I’d
like to
asked you to give him a round of
applause today in gratitude to his
legacy because the problem of legacy
code will not end with COBOL to all the
software engineers entering the
workforce today I ask you to consider
the cold hard fact that the hottest
languages you’re working in today will
become the legacy code of tomorrow what
will happen to all of your hard work
will it be discarded or will it be a
contribution another layer in a
knowledge craft that will endure for
thousands of years
Please follow and like us: