who wrote wrote this C program?
-
Several years ago I was asked to evaluate a C program. The question was: can we fix it, or do we need to rewrite it? What the program did and for whom doesn't matter, other than it should have been a straightforward business application: user-interface screens and database reads and updates. The client was concerned that the program - used daily by several people for real work - was "flaky" and would often lock up or BSOD after 15-20 minutes. So I started looking at the code...and found several interesting things:
- the program was using invisible pop-up windows as temporary data buffers to implement wizard-like operations in the user-interface, and never deallocating them.
- every variable was global
- there were no data structures anywhere for anything
- there were no functions other than those required by the GUI
- several functions were over 75 pages long - that's about 4500 lines of code in a single function
- the level of code redundancy was incredible; it was common to see the same 5-10 lines of code repeated several dozen times within the same function
Naturally, my recommendation was that the system be rewritten, preferably in an object-oriented language [which we did, but that was a Success Story, not a Horror Story]. My curiosity could not be held back, I had to know who had written this program... This program was written by a COBOL programmer. It was her first C program, and her first GUI program. I asked what happened to her. They said she got a job with a larger firm in the same industry just down the street - teaching C programming!
Best regards, Steven A. Lowe CEO, Innovator LLC www.nov8r.com
-
Several years ago I was asked to evaluate a C program. The question was: can we fix it, or do we need to rewrite it? What the program did and for whom doesn't matter, other than it should have been a straightforward business application: user-interface screens and database reads and updates. The client was concerned that the program - used daily by several people for real work - was "flaky" and would often lock up or BSOD after 15-20 minutes. So I started looking at the code...and found several interesting things:
- the program was using invisible pop-up windows as temporary data buffers to implement wizard-like operations in the user-interface, and never deallocating them.
- every variable was global
- there were no data structures anywhere for anything
- there were no functions other than those required by the GUI
- several functions were over 75 pages long - that's about 4500 lines of code in a single function
- the level of code redundancy was incredible; it was common to see the same 5-10 lines of code repeated several dozen times within the same function
Naturally, my recommendation was that the system be rewritten, preferably in an object-oriented language [which we did, but that was a Success Story, not a Horror Story]. My curiosity could not be held back, I had to know who had written this program... This program was written by a COBOL programmer. It was her first C program, and her first GUI program. I asked what happened to her. They said she got a job with a larger firm in the same industry just down the street - teaching C programming!
Best regards, Steven A. Lowe CEO, Innovator LLC www.nov8r.com
-
Several years ago I was asked to evaluate a C program. The question was: can we fix it, or do we need to rewrite it? What the program did and for whom doesn't matter, other than it should have been a straightforward business application: user-interface screens and database reads and updates. The client was concerned that the program - used daily by several people for real work - was "flaky" and would often lock up or BSOD after 15-20 minutes. So I started looking at the code...and found several interesting things:
- the program was using invisible pop-up windows as temporary data buffers to implement wizard-like operations in the user-interface, and never deallocating them.
- every variable was global
- there were no data structures anywhere for anything
- there were no functions other than those required by the GUI
- several functions were over 75 pages long - that's about 4500 lines of code in a single function
- the level of code redundancy was incredible; it was common to see the same 5-10 lines of code repeated several dozen times within the same function
Naturally, my recommendation was that the system be rewritten, preferably in an object-oriented language [which we did, but that was a Success Story, not a Horror Story]. My curiosity could not be held back, I had to know who had written this program... This program was written by a COBOL programmer. It was her first C program, and her first GUI program. I asked what happened to her. They said she got a job with a larger firm in the same industry just down the street - teaching C programming!
Best regards, Steven A. Lowe CEO, Innovator LLC www.nov8r.com
Steven A. Lowe wrote:
the program was using invisible pop-up windows as temporary data buffers to implement wizard-like operations in the user-interface, and never deallocating them.
Ahead of its time: garbage collection without the collection!
Steven A. Lowe wrote:
every variable was global
But think of all the stack space you have!
Steven A. Lowe wrote:
there were no data structures anywhere for anything
Or you could think of it as a data structure everywhere for everything.
Steven A. Lowe wrote:
there were no functions other than those required by the GUI
Again, think of the saved stack space!
Steven A. Lowe wrote:
several functions were over 75 pages long - that's about 4500 lines of code in a single function
But I bet Intellisense was nice and responsive.
Steven A. Lowe wrote:
the level of code redundancy was incredible; it was common to see the same 5-10 lines of code repeated several dozen times within the same function
Man, haven't you heard of code reuse??
Faith is a fine invention For gentlemen who see; But microscopes are prudent In an emergency! -Emily Dickinson
-
Steven A. Lowe wrote:
the program was using invisible pop-up windows as temporary data buffers to implement wizard-like operations in the user-interface, and never deallocating them.
Ahead of its time: garbage collection without the collection!
Steven A. Lowe wrote:
every variable was global
But think of all the stack space you have!
Steven A. Lowe wrote:
there were no data structures anywhere for anything
Or you could think of it as a data structure everywhere for everything.
Steven A. Lowe wrote:
there were no functions other than those required by the GUI
Again, think of the saved stack space!
Steven A. Lowe wrote:
several functions were over 75 pages long - that's about 4500 lines of code in a single function
But I bet Intellisense was nice and responsive.
Steven A. Lowe wrote:
the level of code redundancy was incredible; it was common to see the same 5-10 lines of code repeated several dozen times within the same function
Man, haven't you heard of code reuse??
Faith is a fine invention For gentlemen who see; But microscopes are prudent In an emergency! -Emily Dickinson
David Kentley wrote:
Ahead of its time: garbage collection without the collection!
5! :laugh:
-
Steven A. Lowe wrote:
the program was using invisible pop-up windows as temporary data buffers to implement wizard-like operations in the user-interface, and never deallocating them.
Ahead of its time: garbage collection without the collection!
Steven A. Lowe wrote:
every variable was global
But think of all the stack space you have!
Steven A. Lowe wrote:
there were no data structures anywhere for anything
Or you could think of it as a data structure everywhere for everything.
Steven A. Lowe wrote:
there were no functions other than those required by the GUI
Again, think of the saved stack space!
Steven A. Lowe wrote:
several functions were over 75 pages long - that's about 4500 lines of code in a single function
But I bet Intellisense was nice and responsive.
Steven A. Lowe wrote:
the level of code redundancy was incredible; it was common to see the same 5-10 lines of code repeated several dozen times within the same function
Man, haven't you heard of code reuse??
Faith is a fine invention For gentlemen who see; But microscopes are prudent In an emergency! -Emily Dickinson
David Kentley wrote:
Steven A. Lowe wrote: the level of code redundancy was incredible; it was common to see the same 5-10 lines of code repeated several dozen times within the same function Man, haven't you heard of code re
f
use??fixed that for you.
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall
-
Several years ago I was asked to evaluate a C program. The question was: can we fix it, or do we need to rewrite it? What the program did and for whom doesn't matter, other than it should have been a straightforward business application: user-interface screens and database reads and updates. The client was concerned that the program - used daily by several people for real work - was "flaky" and would often lock up or BSOD after 15-20 minutes. So I started looking at the code...and found several interesting things:
- the program was using invisible pop-up windows as temporary data buffers to implement wizard-like operations in the user-interface, and never deallocating them.
- every variable was global
- there were no data structures anywhere for anything
- there were no functions other than those required by the GUI
- several functions were over 75 pages long - that's about 4500 lines of code in a single function
- the level of code redundancy was incredible; it was common to see the same 5-10 lines of code repeated several dozen times within the same function
Naturally, my recommendation was that the system be rewritten, preferably in an object-oriented language [which we did, but that was a Success Story, not a Horror Story]. My curiosity could not be held back, I had to know who had written this program... This program was written by a COBOL programmer. It was her first C program, and her first GUI program. I asked what happened to her. They said she got a job with a larger firm in the same industry just down the street - teaching C programming!
Best regards, Steven A. Lowe CEO, Innovator LLC www.nov8r.com
Steven A. Lowe wrote:
I asked what happened to her. They said she got a job with a larger firm in the same industry just down the street - teaching C programming!
It is a shame X| My first C class was thought by a guy who is good at COBOL but knows very little C. I made it through the class thinking, I am C Master. It did not occur to me how little I Knew until I took Data Structures with the toughest instructor in my life. I broke down and admitted I didn't knew C. He said, if you are willing to put up the time and effort I will help you. After painful semester, I learned C and felt very grateful. Because of that lesson I am a better developer now. :cool:
Yusuf
-
Several years ago I was asked to evaluate a C program. The question was: can we fix it, or do we need to rewrite it? What the program did and for whom doesn't matter, other than it should have been a straightforward business application: user-interface screens and database reads and updates. The client was concerned that the program - used daily by several people for real work - was "flaky" and would often lock up or BSOD after 15-20 minutes. So I started looking at the code...and found several interesting things:
- the program was using invisible pop-up windows as temporary data buffers to implement wizard-like operations in the user-interface, and never deallocating them.
- every variable was global
- there were no data structures anywhere for anything
- there were no functions other than those required by the GUI
- several functions were over 75 pages long - that's about 4500 lines of code in a single function
- the level of code redundancy was incredible; it was common to see the same 5-10 lines of code repeated several dozen times within the same function
Naturally, my recommendation was that the system be rewritten, preferably in an object-oriented language [which we did, but that was a Success Story, not a Horror Story]. My curiosity could not be held back, I had to know who had written this program... This program was written by a COBOL programmer. It was her first C program, and her first GUI program. I asked what happened to her. They said she got a job with a larger firm in the same industry just down the street - teaching C programming!
Best regards, Steven A. Lowe CEO, Innovator LLC www.nov8r.com
Steven A. Lowe wrote:
several functions were over 75 pages long - that's about 4500 lines of code in a single function
That is just flat out a horror itself.
Steven A. Lowe wrote:
asked what happened to her. They said she got a job with a larger firm in the same industry just down the street - teaching C programming!
That's even scarier.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer "Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon "Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
-
Steven A. Lowe wrote:
I asked what happened to her. They said she got a job with a larger firm in the same industry just down the street - teaching C programming!
It is a shame X| My first C class was thought by a guy who is good at COBOL but knows very little C. I made it through the class thinking, I am C Master. It did not occur to me how little I Knew until I took Data Structures with the toughest instructor in my life. I broke down and admitted I didn't knew C. He said, if you are willing to put up the time and effort I will help you. After painful semester, I learned C and felt very grateful. Because of that lesson I am a better developer now. :cool:
Yusuf
how about a C++ class taught by an accountant (by profession) handing out code examples that were not syntax correct? Sorry to say, yes this is a true story. Good thing I was already working w/ C++
-
You know, those who can't code, manage. Those who can't manage... you know where they end up at.. :)
:) You are right, those who cant code Manage :),(She) is now a teacher:)
Vuyiswa Maseko, Sorrow is Better than Laughter, it may Sadden your Face, but It sharpens your Understanding VB.NET/SQL7/2000/2005 http://vuyiswamb.007ihost.com http://Ecadre.007ihost.com vuyiswam@tshwane.gov.za
-
Steven A. Lowe wrote:
I asked what happened to her. They said she got a job with a larger firm in the same industry just down the street - teaching C programming!
It is a shame X| My first C class was thought by a guy who is good at COBOL but knows very little C. I made it through the class thinking, I am C Master. It did not occur to me how little I Knew until I took Data Structures with the toughest instructor in my life. I broke down and admitted I didn't knew C. He said, if you are willing to put up the time and effort I will help you. After painful semester, I learned C and felt very grateful. Because of that lesson I am a better developer now. :cool:
Yusuf