<div dir="ltr"><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">Leam,<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">I had a bit of a hard time following everything you said, but I will do my best to answer:<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">>FORTRAN and the struggling....<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">I learned FORTRAN II using punched cards, and taught FORTRAN IV in the years 1977 to 1980. Our school had a FORTRAN IV compiler on a PDP-11/70 running RSTS/E. FORTRAN 77 was out at that time, but we did not have the budget to buy a compiler from DEC. I remember giving my students the task of writing a pre-compiler in FORTRAN IV to convert FORTRAN 77 statements into FORTRAN IV, and the pre-compiler had to be written in FORTRAN IV.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">FORTRAN IV only had arithmetic IF and no string manipulation statements, so you can imagine how hard this was to do. I think two out of 20 students actually got something close to working.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">>"Blazingly fast"<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">Yes, there are many ways to implement an interpreter and many job loads. The example given was on an HPC system where number crunching rules, and you probably spend 50-60% of your real time on user-written code. But in many applications today you spend a significant amount of your time in code written by someone else (graphic code, database code, system library code, etc) so from a speed of execution of the total program standpoint the speed of the language's code in execution is small.<br><br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small"><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">Of course since then there was Fortran 90 (I think that was when the name became mixed case) High Performance Fortran (HPF) and some other issues of Fortran....<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">As to portability, that is a problem in many languages that are implemented by different vendors with relative levels of success. DEC spent a lot of time and money on their compiler suites, and we spent a lot of time on standards bodies. We even spent a LOT of time making VAX "C" compatible not only with AT&T "C" but with gcc. The goal was to try and re-compile the entire X Window System Server with VAX "C", hopefully seeing a large increase in speed due to our optimizers.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">But we did not see that increase in speed, because the people who wrote the X Window System Server knew the gcc compiler so well they wrote their code to be very optimized in the first place.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">On the other hand, Boeing standardized on gcc across all their vendor's systems (and hired Cynus to support them) because the gcc compilers had *exactly* the same syntax and semantics across all those systems. This, of course, reduced the number of ifdefs and testing threads they had to have across their many systems from many vendors.</div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small"><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">>In those environments, the OS came with C compilers and that would have
been our choice if shell or whatever version of Perl or Python didn't do
what we >needed.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">Some OS came with the compilers, and some did not. In the early days of Unix you HAD to have the "C" compilers because you HAD to compile the kernel as you were installing the system (on servers that did not have pre-installed systems, anyway). First you booted the tape drive to pull a small kernel into memory, just enough to recognize the (hardcopy, serial) console, memory, CPU, tape drive and one disk. Then you edited the configuration file to type in the devices, addresses of the devices, interrupt addresses (are readers remembering this?) and you then ran the configuration program to create the module that could be compiled and linked into the kernel. Then you would place that kernel on the disk and boot it.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">BUT AS SOON AS WE GOT THE KERNEL OF THE DISTRIBUTION TO PROBE THE DEVICES SO WE DID NOT HAVE TO COMPILE THE KERNEL we moved the compilers off the system and created a second product to sell to customers. Oh well. It was not just DEC. Sun did it too.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">Personally I use only GNU compilers. They do everything I want them to do, with the efficiency I need. If I want the solution to go any faster I either look for a better algorithm, or buy a faster CPU (GPU, FPGA, etc.)<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">Peace be with you all.<br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small"><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">md<br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, May 19, 2024 at 11:40 AM Leam Hall 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">My opinion, based solely on what you wrote below, is that "struggle" would be an understatement. That they could do anything in FORTRAN seems like a win to me. In the early '90's I took a Pascal class from a teacher who had taught it for a while, and I could still only do simple stuff.<br>
<br>
The "compiled vs interpreted" question has another aspect: portability. I'm more of a tool builder than an application developer, I'd rather give someone the code so they can do whatever they need to be doing. Python is blazingly fast enough for everything I've done, but it is less and less portable.<br>
<br>
A lot of coders assume you can "pip install X" or use whatever the latest version is of Python, and that's not the case for a lot of us. A quick count of my career shows seven of forty-two years *not* spent in a restricted environment; all we got was whatever came with the OS. Those are almost always outdated even when the OS is brand new, and not everything on PyPI is available. In those environments, the OS came with C compilers and that would have been our choice if shell or whatever version of Perl or Python didn't do what we needed.<br>
<br>
<br>
Leam<br>
<br>
<br>
<br>
On 5/17/24 12:02, jon.maddog.hall--- via Ale wrote:<br>
> So you seem to have completely ignored my statement about the issue of development vs running where I specifically pointed out that in an educational environment you compile many more times than you run.<br>
> <br>
> in 1977 I had the task of taking students who had never seen a computer in real life, never logged into an account, never used a text editor of any type and try to teach them FORTRAN in a eight-week summer-school course of three hours of lecture each week.<br>
> <br>
> I asked the administration of the school if anyone had ever taught this before in this time frame and was told "Oh yes".<br>
> <br>
> In was a time-sharing system (RSTS/E on a PDP-11/70), so I had to teach them what "logging in" was, what a file was, what data was, what a text-editor did (and how to use the commands), what compiling did, what linking did, how to use an interactive debugger, then programming itself and the FORTRAN language itself.<br>
> <br>
> None of the students had access to computers at home, and there were not many people who could help them at home. No online forums for help.<br>
> <br>
> They struggled. I struggled. And after eight weeks they were barely getting started with very, very simple FORTRAN programs.<br>
> <br>
> On the other hand I often taught a ten-week course in FORTRAN to students who already had BASIC as part of a entry-level course called "Introduction to Data Processing". The students of that course thrived due to a much greater familiarity to everything other than the edit/compile/link/run/debug process (and even editing and debugging were easier because the concept of that was already known).<br>
> <br>
> BASIC allowed simple editing just by retyping the line number with the statement. It allowed interactive "debugging" by being able to print out the variables using the source code variable name, or setting the variable to a different value before telling the interpreter to "continue". in RSTS/E you were talking to the BASIC interpreter as soon as you logged in. The BASIC interpreter was much like the shell interpreter in UNIX/Linux today.<br>
> <br>
> The student could type in:<br>
> <br>
> Print 5*3<br>
> <br>
> then hit return and the machine would print:<br>
> <br>
> 15<br>
> <br>
> No editor, no compiler, no linker...<br>
> <br>
> To be complete I know of no reason why FORTRAN could not be implemented in an interpreted fashion and after a program's source code is fully debugged sent through a "real" compiler to get a smaller, perhaps faster object. Once the program has been debugged you do not need the interactive debugger part of the program in memory.<br>
> <br>
> And of course a more modern, fully functioning IDE could make the compile/link/execute/debug path significantly easier these days. And of course students today have used computers in so many ways through their phones, etc. that many of the concepts which I took up time in class the students already know.<br>
> <br>
> Finally, I will say that when I finished the eight-week summer course in FORTRAN to what I felt were disastrous results I went back to the administration and questioned again if that course had ever been taught successfully before.<br>
> <br>
> The answer was "no".....they had lied before.<br>
> <br>
> /*But when the eventually approved and compiled code will be run every hour or so for the next 3-5 years, and that code requires MPI interconnection to 100-800 other nodes to run on every hour, devel/compile time starts looking to be less of a problem.<br>
> Pretty sure the heat generated to predict the weather has small but non-zero impact on the weather :-)*/<br>
> <br>
> Quite frankly for this type of problem I might look at GPU or FPGA accelerators just like years ago we invented floating point accelerators instead of doing floating point using integer only CPUs.<br>
> <br>
> Depending on the type of problem, a language like Erlang or Haskell would probably help with such a distributed problem<br>
> <br>
> md<br>
> <br>
> <br>
>> On 05/17/2024 11:19 AM EDT Jim Kinney via Ale <<a href="mailto:ale@ale.org" target="_blank">ale@ale.org</a>> wrote:<br>
>> <br>
>> <br>
>> The backend compile process is horrifyingly slow. But when the eventually approved and compiled code will be run every hour or so for the next 3-5 years, and that code requires MPI interconnection to 100-800 other nodes to run on every hour, devel/compile time starts looking to be less of a problem.<br>
>> <br>
>> Pretty sure the heat generated to predict the weather has small but non-zero impact on the weather :-)<br>
>><br>
>> On Fri, May 17, 2024, 6:04 AM Jon "maddog" Hall <<a href="mailto:jon.maddog.hall@gmail.com" target="_blank">jon.maddog.hall@gmail.com</a> mailto:<a href="mailto:jon.maddog.hall@gmail.com" target="_blank">jon.maddog.hall@gmail.com</a>> wrote:<br>
>><br>
>>> It all depends on the implementation, but some interpretive languages are fairly fast at execution. The interpreter takes the source down to atoms (or "beans" if you go that way) and then feeds them to a very optimized run-time system.<br>
>>> <br>
>>> Interpretive vs compiled also needs to be looked at the ratio of run time vs development. In a learning situation you may only run a program once for every time you compile it. An interpretive language is much "faster" (and less of a resource hog) than running an edit/compile/link/execute cycle.<br>
>>> <br>
>>> md<br>
>>><br>
>>> On Thu, May 16, 2024, 21:36 Jim Kinney via Ale <<a href="mailto:ale@ale.org" target="_blank">ale@ale.org</a> mailto:<a href="mailto:ale@ale.org" target="_blank">ale@ale.org</a>> wrote:<br>
>>><br>
>>>> Compiled code. Still do FORTRAN when it has to be fast. Still do C if I need to burn up a monitor (oops!). But you can't learn it if you can't see it, touch it, and change it. The scripting languages are easier to learn and definitely have a place. And they are now the gateway to programming. They're not perfect and they slurp down hardware. I can't imagine python trying to run in the days of BASIC on an early pc jr. :-)<br>
>>>><br>
>>>> On Thu, May 16, 2024, 8:33 PM jon.maddog.hall--- via Ale <<a href="mailto:ale@ale.org" target="_blank">ale@ale.org</a> mailto:<a href="mailto:ale@ale.org" target="_blank">ale@ale.org</a>> wrote:<br>
>>>><br>
>>>>> Chuck,<br>
>>>>><br>
>>>>> Many people did not recognize the benefit of pulling down the source code and typing it in by hand.<br>
>>>>><br>
>>>>> "Wow! What does that error mean? I typed it in just like....oh...I made a mistake!"<br>
>>>>><br>
>>>>> You had a syntax error, and BASIC showed it right away (most of the time anyway).<br>
>>>>><br>
>>>>> But maybe your syntax was correct and your program still did not work. Maybe the error was that you meant to type "2" and you typed "3' by mistake....a "run-time error".<br>
>>>>><br>
>>>>> You do not get to create or fix these problems if all you do is pull binaries off the web or load them from a CDROM.<br>
>>>>><br>
>>>>> This was EXACTLY why the professors at Cambridge University started the Raspberry Pi project. They realized that the freshmen of today often knew less about computers than the freshmen of 20 years ago...the ones who 20 years ago downloaded source code and (in some cases) even had to COMPILE it and LINK it in order to run it.<br>
>>>>><br>
>>>>> Happy Birthday, BASIC!<br>
>>>>><br>
>>>>> md<br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>>> On 05/08/2024 8:10 AM EDT Chuck Payne via Ale <<a href="mailto:ale@ale.org" target="_blank">ale@ale.org</a> mailto:<a href="mailto:ale@ale.org" target="_blank">ale@ale.org</a>> wrote:<br>
>>>>>> <br>
>>>>>> <br>
>>>>>> I am surprised that this one didn't get an email. Happy Birthday BASIC, it turned 60. It only three years older than me, and has more functions than me too.<br>
>>>>>> <br>
>>>>>> <a href="https://www.tomshardware.com/software/programming/the-basic-programming-language-turns-60-dartmouth-basic-started-it-all-in-1964" rel="noreferrer" target="_blank">https://www.tomshardware.com/software/programming/the-basic-programming-language-turns-60-dartmouth-basic-started-it-all-in-1964</a><br>
>>>>>> <br>
>>>>>> As a kid, I got into BASIC because it was the way to get games. I forgot the name of the magazine, but I would buy it every month and sit at my VIC 20, trying the code in, playing such games and Oil, where you drill to get oil hoping to hit a pocket with a devil in it. Or trying to understand what the data fields were doing.<br>
>>>>>> <br>
>>>>>> Since I missed the 4th as well, here some BASIC Code for you guys<br>
>>>>>> <br>
>>>>>> <a href="https://www.goto10retro.com/p/star-wars-theme-in-basic" rel="noreferrer" target="_blank">https://www.goto10retro.com/p/star-wars-theme-in-basic</a><br>
>>>>>><br>
>>>>>> Yes, I was one of those kids that would type some weird messages on the computers tha would repeat, like<br>
>>>>>><br>
>>>>>> 10 print "Long live ALE, bring more beer"<br>
>>>>>> 20 goto 10<br>
>>>>>><br>
>>>>>> Happy Computing guys<br>
>>>>>> <br>
>>>>>> --<br>
>>>>>> Terror PUP a.k.a<br>
>>>>>> Chuck "PUP" Payne<br>
>>>>>> -----------------------------------------<br>
>>>>>> Discover it! Enjoy it! Share it! openSUSE Linux.<br>
>>>>>> -----------------------------------------<br>
>>>>>> openSUSE -- Terrorpup<br>
>>>>>> openSUSE Ambassador/openSUSE Member<br>
>>>>>> skype,twiiter,identica,friendfeed -- terrorpup<br>
>>>>>> freenode(irc) --terrorpup/lupinstein<br>
>>>>>> Register Linux Userid: 155363<br>
>>>>>> <br>
>>>>>> openSUSE Community Member since 2008.<br>
>>>>>> _______________________________________________<br>
>>>>>> Ale mailing list<br>
>>>>>> <a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a> mailto:<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>
>>>>>><br>
>>>>> _______________________________________________<br>
>>>>> Ale mailing list<br>
>>>>> <a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a> mailto:<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>
>>>>><br>
>>>> _______________________________________________<br>
>>>> Ale mailing list<br>
>>>> <a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a> mailto:<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>
>>>><br>
>>><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>
>><br>
> <br>
> <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>
<br>
-- <br>
DevSecOps Engineer (<a href="http://reuel.net/resume" rel="noreferrer" target="_blank">reuel.net/resume</a>)<br>
Scribe: The Domici War (<a href="http://domiciwar.net" rel="noreferrer" target="_blank">domiciwar.net</a>)<br>
General Ne'er-do-well (<a href="http://github.com/LeamHall" rel="noreferrer" target="_blank">github.com/LeamHall</a>)<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>