Press "Enter" to skip to content

Why Old Technology Matters: The Gift of Legacy Code | Aaron Lozier | TEDxVermilionStreet


Grace Hopper was one of the pioneers of

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

Leave a Reply

Your email address will not be published. Required fields are marked *