<div dir="ltr"><div class="gmail_default" style="font-family:times new roman,serif"><font size="2"><span style="color:rgb(51,51,51);font-family:helvetica">></span><span style="color:rgb(51,51,51);font-family:helvetica">Just knowledge of variables, loops, if then statements all that from Basic gave me upper hand in this class.</span><br><br>When people ask me for advice on the first computer language they should learn, if they are a Unix or Linux person I say:<br><br></font></div><div class="gmail_default" style="font-family:times new roman,serif"><font size="2">sh(1)<br><br></font></div><div class="gmail_default" style="font-family:times new roman,serif"><font size="2">Shell is always there (just like BASIC was on RSTS/E). You do not have to download it, and the commands are very powerful and very efficient.<br></font></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small"><font size="2"><br></font></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">When people are asked about what they like about Unix/Linux, the people who are really enthusiastic about the OS always get around to "the command line" in the first three topics. And the command-line utilities.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">It was the command-line utilities that saved my bacon so many times. It was the old Unix man(1)ual, especially when printed in a book, that allowed me to find that perfect set of commands, before apropos(1) was created. I can not tell you the number of times I appreciated the "See also:" at the bottom of the page. Around the campfire I will tell some of these stories either with a beer or glass of white wine in my hand (some stories need a shot or two of single malt Islay Scotch).<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">After shell, I will recommend Python, with all of its supposed warts of white space usage, etc. At the same time I will point them to articles and books on software elegance and numerical algorithms (so they will not think that a bubble sort is the only sort in the world).<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">After Python I will recommend assembly language, which may seem strange to y'all, but I find it much easier to teach "C" and re-entrant, recursive programming after one knows a bit about computer architecture and assembly. Any old assembly will do, but I really prefer the PDP-11 assembly taught in conjunction with SIMH. It was elegant and learnable. Or I will point them to the PDP-8 assembly, so simple but yet teaches you so much about binary arithmetic.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">After some assembly, then I recommend "C", or perhaps Rust these days.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">After that LISP, or some other object oriented language. C++ is fine, and is one of the most-used "C" variants in the world.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">I will stop now, because I am sure this little email will start a firestorm of "but, but, but"....and I have other work to do.<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">Warmest regards,<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">maddog<br><br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small">P.S. In a group on Facebook they started a thread about what early version of Linux they used and programmed on. I told them that I started programming "Open Source" the year Linus was born.<br></div><div class="gmail_default" style="font-family:times new roman,serif;font-size:small"><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"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 20, 2024 at 11:35 AM Boris Borisov 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"><div dir="auto">"<span style="color:rgb(51,51,51);font-family:helvetica;font-size:16px">On the other hand I often taught a ten-week course in FORTRAN to students who already had BASIC ..."</span><div dir="auto"><span style="color:rgb(51,51,51);font-family:helvetica;font-size:16px"><br></span></div><div dir="auto"><span style="color:rgb(51,51,51);font-family:helvetica;font-size:16px">I couldn't agree more.</span></div><div dir="auto"><span style="color:rgb(51,51,51);font-family:helvetica;font-size:16px"><br></span></div><div dir="auto"><span style="color:rgb(51,51,51);font-family:helvetica;font-size:16px">I had Pascal class in university. Just knowledge of variables, loops, if then statements all that from Basic gave me upper hand in this class.</span></div><div dir="auto"><span style="color:rgb(51,51,51);font-family:helvetica;font-size:16px"><br></span></div><div dir="auto"><span style="color:rgb(51,51,51);font-family:helvetica;font-size:16px">I wrote a lot of Pascal programs for the cute girls in my group:)</span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, May 19, 2024, 09:58 jon.maddog.hall--- via Ale <<a href="mailto:ale@ale.org" target="_blank">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"><u></u>
<div>
<div style="font-size:12pt;font-family:helvetica,arial,sans-serif;color:rgb(51,51,51)">
<span style="font-family:helvetica;font-size:12pt">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></span>
</div>
<div style="font-size:12pt;font-family:helvetica,arial,sans-serif;color:rgb(51,51,51)">
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>
</div>
<div style="font-size:12pt;font-family:helvetica,arial,sans-serif;color:rgb(51,51,51)">
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>
<div dir="auto">
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
</div>
<br>md
</div>
<div style="font-size:12pt;font-family:helvetica,arial,sans-serif;color:rgb(51,51,51)">
</div>
<blockquote type="cite">
<div>
On 05/17/2024 11:19 AM EDT Jim Kinney via Ale <<a href="mailto:ale@ale.org" rel="noreferrer" target="_blank">ale@ale.org</a>> wrote:
</div>
<div>
</div>
<div>
</div>
<div dir="auto">
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.
<div dir="auto">
</div>
<div dir="auto">
Pretty sure the heat generated to predict the weather has small but non-zero impact on the weather :-)
</div>
</div>
<br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">
On Fri, May 17, 2024, 6:04 AM Jon "maddog" Hall <<a href="mailto:jon.maddog.hall@gmail.com" rel="noreferrer" target="_blank">jon.maddog.hall@gmail.com</a>> wrote:
</div>
<blockquote>
<div dir="auto">
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.
<div dir="auto">
</div>
<div dir="auto">
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.
</div>
<div dir="auto">
</div>
<div dir="auto">
md
</div>
</div>
<br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">
On Thu, May 16, 2024, 21:36 Jim Kinney via Ale <<a href="mailto:ale@ale.org" rel="noopener noreferrer" target="_blank">ale@ale.org</a>> wrote:
</div>
<blockquote>
<div dir="auto">
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. :-)
</div>
<br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">
On Thu, May 16, 2024, 8:33 PM jon.maddog.hall--- via Ale <<a href="mailto:ale@ale.org" rel="noopener noreferrer" target="_blank">ale@ale.org</a>> wrote:
</div>
<blockquote>
<u></u>
<div>
<div style="font-size:12pt;font-family:helvetica,arial,sans-serif;color:rgb(51,51,51)">
<span style="font-family:helvetica;font-size:12pt">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></span>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>
</div>
<blockquote type="cite">
<div>
On 05/08/2024 8:10 AM EDT Chuck Payne via Ale <<a href="mailto:ale@ale.org" rel="noopener noreferrer" target="_blank">ale@ale.org</a>> wrote:
</div>
<div>
</div>
<div>
</div>
<div dir="ltr">
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.
<div>
</div>
<div>
<a href="https://www.tomshardware.com/software/programming/the-basic-programming-language-turns-60-dartmouth-basic-started-it-all-in-1964" rel="noopener noreferrer" target="_blank">https://www.tomshardware.com/software/programming/the-basic-programming-language-turns-60-dartmouth-basic-started-it-all-in-1964</a>
</div>
<div>
</div>
<div>
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.
</div>
<div>
</div>
<div>
Since I missed the 4th as well, here some BASIC Code for you guys
</div>
<div>
</div>
<div>
<a href="https://www.goto10retro.com/p/star-wars-theme-in-basic" rel="noopener 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 clear="all">
<div>
</div> <span class="gmail_signature_prefix">-- </span>
<br>
<div class="gmail_signature" dir="ltr">
<div dir="ltr">
<div>
<div dir="ltr">
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.
</div>
</div>
</div>
</div>
</div>
</div> _______________________________________________
<br>Ale mailing list
<br><a href="mailto:Ale@ale.org" rel="noopener noreferrer" target="_blank">Ale@ale.org</a>
<br><a href="https://mail.ale.org/mailman/listinfo/ale" rel="noopener 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="noopener noreferrer" target="_blank">http://mail.ale.org/mailman/listinfo</a>
</blockquote>
</div> _______________________________________________
<br>Ale mailing list
<br><a href="mailto:Ale@ale.org" rel="noopener noreferrer" target="_blank">Ale@ale.org</a>
<br><a href="https://mail.ale.org/mailman/listinfo/ale" rel="noopener 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="noopener noreferrer" target="_blank">http://mail.ale.org/mailman/listinfo</a>
</blockquote>
</div> _______________________________________________
<br>Ale mailing list
<br><a href="mailto:Ale@ale.org" rel="noopener noreferrer" target="_blank">Ale@ale.org</a>
<br><a href="https://mail.ale.org/mailman/listinfo/ale" rel="noopener 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="noopener noreferrer" target="_blank">http://mail.ale.org/mailman/listinfo</a>
</blockquote>
</div>
</blockquote>
</div> _______________________________________________
<br>Ale mailing list
<br><a href="mailto:Ale@ale.org" rel="noreferrer" 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>
</blockquote>
</div>
_______________________________________________<br>
Ale mailing list<br>
<a href="mailto:Ale@ale.org" rel="noreferrer" target="_blank">Ale@ale.org</a><br>
<a href="https://mail.ale.org/mailman/listinfo/ale" rel="noreferrer 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 noreferrer" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
</blockquote></div>
_______________________________________________<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>