<div dir="ltr"><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">>The first time I ever met anyone who had ever used COBOL was in my 30s.  He struggled to learn UNIX and java.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">I never programmed in COBOL other than writing one or two programs back at Drexel University in a "comparative language" course.   We "learned" 11 different languages in 11 weeks, including APL.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">However, in my second professional job, my first job as a professional programmer, I programmed in assembler language on IBM mainframes.   At that job I sometimes had COBOL programmers come to me with problems they could not solve.   Once or twice I found the compilers were making mistakes.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">Many times the errors in the compilers happened due to errors in optimization.   Optimizing compilers were still being developed back in those days, and often as you went from one level of optimization to another the optimizer would make mistakes.   By forcing the compiler to generate the machine code I could look at what the compiler was generating and go "AHA!".   The COBOL programmer could have looked at his sources for the rest of his life and not seen the answer.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">One reason that your friend probably struggled to learn Unix and Java was because COBOL (at least the version that I was familiar with) had no concept of pointers or registers or things like that.   The Unix operating system, with its hierarchical file system (as opposed to IBM's flatter file systems) and its multiple directories for holding executables (/bin, /usr/bin, $HOME/bin, etc.) and libraries (/lib, /usr/lib, $HOME/lib) were confusing.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">About 1980 or so I tried desperately to teach "C" to a COBOL programmer.   He COULD NOT understand pointers, despite my taking him aside and spending hours during lunch and after class drawing diagrams of registers, memory, etc.   He had never studied assembly language.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">About the same time I was teaching evening courses at a college in North Andover, MA and wanted to teach a course in PDP-11 assembler.   The day school department head Computer Science kept vetoing me offering this as an elective course.   Finally the Dean of the evening school suggested I go talk to him.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">The day school department head asked me why I was so intent on teaching this assembly language course.   I replied that when I was teaching compiler design or operating systems design that it was helpful if the students understood machine architecture.   I also said:<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">"It is even helpful when teaching reentrant, recursive programming."<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">I did not notice at first that the department head's eyes unfocused and refocused on me again when I said that, but after a few more minutes he said:<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">"OK, go ahead and teach the course, but when you get to that part about "reentrant, recursive programming" would you call me into your class?  I never understood that."<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">And now you know the REST of the story.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">Regards,<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">Jon "maddog" Hall<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 23, 2024 at 11:11 AM DJPfulio--- via Ale <<a href="mailto:ale@ale.org">ale@ale.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 5/23/24 10:28, Chuck Payne via Ale wrote:<br>
> <br>
> I am surprise with all the talk of fortran, that poor cobol being left in the cold.<br>
<br>
COBOL is for business majors.  Science and engineering used FORTRAN.  Probably because there were huge math and engineering libraries for it.<br>
<br>
The first time I ever met anyone who had ever used COBOL was in my 30s.  He struggled to learn UNIX and java.  The company was paying for his training and he was surprised at how more productive he could be.  It was a completely new experience for his mainframe-ass.<br>
<br>
I started out with BASIC, then FORTRAN66, then a few variants of FORTRAN in college before my first real job, cross-compiling on an IBM mainframe for an AP-101/S.  While there, the company pushed people to learn Ada, but I chose to learn C and C++ instead. More generalized use.  Ada would likely have trapped me in more DoD work.<br>
<br>
Learning C/C++ on PC-DOS, OS/2 and working some after hours projects for the company made it possible to switch to a different contract that used UNIX, not mainframes. Our team supported all the UNIXen, Win32s and MacOS with the same code.<br>
<br>
Actually met Maddog at a small meeting in Houston because our primary platform was Alpha on OSF/1. He was handing out "RedHat and Alpha" temporary tattoos and trying to convince us that we should get behind Linux since the hardware platform wasn't going to be as important as the OS and Linux was being ported to everything.  He was right, but a little early. ;)   Visionaries often are.  The customer didn't want us using any F/LOSS at all at the time and they didn't want us connected to the internet for any programming.  Almost all programming happened in an air-gapped network using tools that they'd approved and provided. Doing what the customer wants is important.<br>
<br>
That job completely changed everything in my life.  It's like switching from driving a moped (MS-Windows) or a train pulling 1000 boxcars (TSO/ISPF), to a Ferrari that could scale up or down to the size needed.  I've used everything with Unix from Cray systems down to thumb-sized NAS devices and they all fell about the same at the shell.  Oddly, I've never used any Vax or PDP systems.  The lab were I worked had one of almost everything, just not those.<br>
<br>
Before sending someone to learn BASIC, I'd put them on bash or python.  Whenever a bash script is over 1 page, I use that as a sign to move to a better language, if that's an option.  I'm a perl guy, so perl is my poison, but for someone new who can get passed the mandated/stupid indentation then Python is probably the best 2nd language.  Then I'd go with C.<br>
<br>
Of course, if someone is being paid to use "Joe's Language" (whatever that is), then that's what they need to learn and know.<br>
_______________________________________________<br>
Ale mailing list<br>
<a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a><br>
<a href="https://mail.ale.org/mailman/listinfo/ale" rel="noreferrer" target="_blank">https://mail.ale.org/mailman/listinfo/ale</a><br>
See JOBS, ANNOUNCE and SCHOOLS lists at<br>
<a href="http://mail.ale.org/mailman/listinfo" rel="noreferrer" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
</blockquote></div>