Modern Programming Languages and why we need to remember maintenance

Animated GIFs & Nonsense

Moderators: Ice Cream Jonsey, AArdvark

User avatar
Posts: 5846
Joined: Fri May 16, 2008 9:25 am
Location: Arlington, Virginia

Modern Programming Languages and why we need to remember maintenance

Post by Tdarcos » Sun Mar 22, 2020 9:14 am

I'd like to talk a bit about modern programming languages. While there are many ways that people can divide them up. I'm going to use two groups. Scripting languages and compiled languages. Now, the separation is not perfect, some scripting languages are compiled before execution but the grouping is reasonable.

Scripting languages are ones where the instructions are passed as source code to the processor for execution. Compiled languages are passed through a compiler and executed as a binary file many many times, and the source code is only accessed when updating the code and recompiling. Scripting languages provide much faster development and faster turnaround in development, one can make changes, see them in action, and make other changes right away. Compiled languages provide improved speed of execution as the source does not have to be reinterpreted each time it is executed.

Modern languages today have improved features including polymorphism (a function can be different depending on argument types), classes (variables and procedures can be segregated into a named region), object orientation and inheritance, first class functions (a function can be passed as an argument to a procedure or function), properties and methods, operator overloading (if you create a new data type, you can redefine +, -,*, and / to operate differently for this datatype.)

However, to quote from Spiderman, "With great power comes great responsibility." These new capabilities can help make programming easier by providing a better method of describing the problem domain that the program was intended to solve. Which is fine as long as you use the concepts correctly. Use them incorrectly or badly and you can have a horrible time figuring out why it doesn't work. Or in figuring out how a program works in order to do maintenance on it.

I wonder why so many programmers write code while acting as if they expect it will never require repairs, maintenance, or upgrades? Repairs are required when the program or part of it does not work. Maintenance is necessary to change existing functionality or add new functionality related to existing functionality. Upgrades are when you make a complete change to the program, beyond mere maintenance.

Let's take the fictional Zenith National Bank. Established in 1955, it ran manually changing records until that became impossible in 1960. Buys an NCR mainframe. Is okay but looks for something better. In 1964, IBM introduces the System/360, and it apparently can do much more than their NCR. They buy it. Their checking account program is upgraded to run on the IBM. When the S/370 comes out, they buy that, in fact they buy two, one being used for testing and the other for production, or as a backup if the production machine ever fails. All through the 1970s and 1980s they have maintenance and more maintenance. They also buy additional computers to handle more services and more users.

Big change, switch from once a day batch processing to on-line terminals. Add ATM machines and debit cards. Connect to ATM networks. Add sweep accounts. Add interest-bearing checking. Add automatic deductions. Add electronic deposits and withdrawals.

In tthe interim the IBM z/System comes out, will run all their existing software - including the stuff they are still running that was originally written in 1964 - without change and without recompiling. And instead of using a whole room, one is the size of a home refrigerator, uses about 1/10 the electricity, and even with paying software rental fees it'll still save a fortune, tens if not hundreds of thousands. They buy three, and they actually save more than they expected.

Then comes the Internet.

Zenith National Bank has a choice. They switched from room-sized mainframes to ones now the size of a refrigerator. So they can perhaps add another $70,000 mainframe or fill their computer room and buy some inexpensive PCs. Probably a lot of them. They need to run Linux to handle requirements and web serving. But you can do this on a mainframe, and for $70,000 it can run workloads requiring 1,000 PCs (blade servers). That many PCs would cost over 1/2 a million dollars, use about 200KW of electricity (plus requiring for air conditioning we turn back on two giant chillers we stopped using when we switched to the z/System in '98), and require about 20 administrators having different skills. Two mainframes would cost $150,000, use 2KW of electricity, since it's running Linux there are no software rental fees, and can be managed by the same staff (or at most, one extra person), and handle twice the load. Plus since it's Linux finding programmers who know how to write programs for it is not going to be difficult.

So, they put up a website, that interfaces with the other mainframe systems. Very nice. Then the maintenance starts. Add in addition to usernmame/password, two-factor identification (compute a six-digit number generated by a device issued to the customer). Generate on-demand statements (in PDF format). Pay bills electronically. Transfer funds to/from accounts. Add a mobile version tailored to device size. Accept on-line credit card applications, connect to idenity verification and credit reporting services, and approve, decline, or pass the application to a human for review.

And since I've completely gone off-track I'll stop here.
"The lessons of history teach us, if they teach us anything, that no one learns the lessons that history teaches us."

User avatar
Posts: 8478
Joined: Tue May 14, 2002 6:12 pm
Location: Rochester, NY

Re: Modern Programming Languages and why we need to remember maintenance

Post by AArdvark » Sun Mar 22, 2020 9:46 am

Who says this guy can't love? That post was so close to being typed one-handed I started to sweat from here.

Let's take the fictional Zenith National Bank
where the African scammers bank!


Post Reply