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