Thought I'd throw my $.02 in. In the mid 80's I was on the decision team that transitioned from Z80 assembler to C. Why? It was easier to train 30 people in C than it was to train them in 8086 assembler. At the time, the rest of the shop was primarily using Assembler-H. A couple of years later, I was in the MVS Systems Programming department and my supervisor tasked me to "compare" high(er) level languages and Assembler. His goal was to "prove" that Assembler was better. So writing a simple IEBGENER type program in PL/I, C, Cobol, Assembler, and Fortran (the languages that we had compilers for), I "proved" that, yes, Assembler took fewer resources and ran faster.
However, I spent the next few days trying to convince him that that wasn't the point. Although my simple assembler program probably took half an hour to write and the others about the same (including writing my very first PL/I program), most programs, especially with complicated logic, would (to use a physics term, "all else being equal") probably be written faster with fewer bugs in the higher level language. Even then, with people costs continuing to rise and machine costs continuing to decline, program efficiency was less important than "time to deliver". His other argument was that assembler programmers were "better" than programmers in other languages. My answer to that was "bull****"! I had seen too many bad assembler programs in our shop (inefficient and hard to understand and maintain). I had also seen bad programs in other languages. My point to him was that a good programmer will write good programs using the tools they have and a bad programmer will write bad code. However, in the higher level language, the program logic is usually easier for someone else to pick up on whether it is well documented or not. Today, I support a system that is 80% HLASM and the rest C. I may work on an assembler program and 15 minutes later be working on one of the C modules. I think the real issue now is the lack of "fresh blood" coming into the gene pool. The youngest person on my team is in his mid to late 30s and he is "homegrown". The rest of us are mid-50s and up. On another project in the shop, written in C++, the median age is about 40. While it is difficult to find C/C++ programmers coming out of college, it is all but impossible to find anyone using or willing to train to use HLASM. But we can find Java programmers all day long. In the long run, Dave Cole's assertion to use high level languages for machine efficiency is probably the best discussion on this thread. In my case, I am just as likely to write something in C as HLASM. While run time efficiency is still a goal, reducing errors and maintainability are as important if not more so. *Mark* On Wed, Jan 31, 2018 at 10:39 AM, Robin Vowels <robi...@dodo.com.au> wrote: > On 31/01/2018 2:53 PM, Paul Gilmartin wrote: > >> On 2018-01-30, at 21:21:49, Robin Vowels wrote: >> >>> The MVC and CLC instructions of the IBM /360 came years before >>> Unix and C. >>> >>> >> ... and were available on all but the most primitive S/360 models. >> > > The 360 model 30 had MVC and CLC. > >> >> I believe that nowadays the z has strlen() and strcpy() in microcode. >> >> And I understand that RISC processors came long after C. >>> >>> >> Me, too. >> >