[ale] [ALE] Happy Birthday BASIC
Jon "maddog" Hall
jon.maddog.hall at gmail.com
Mon May 20 12:15:45 EDT 2024
>Just knowledge of variables, loops, if then statements all that from Basic
gave me upper hand in this class.
When people ask me for advice on the first computer language they should
learn, if they are a Unix or Linux person I say:
sh(1)
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.
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.
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).
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).
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.
After some assembly, then I recommend "C", or perhaps Rust these days.
After that LISP, or some other object oriented language. C++ is fine, and
is one of the most-used "C" variants in the world.
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.
Warmest regards,
maddog
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.
On Mon, May 20, 2024 at 11:35 AM Boris Borisov via Ale <ale at ale.org> wrote:
> "On the other hand I often taught a ten-week course in FORTRAN to
> students who already had BASIC ..."
>
> I couldn't agree more.
>
> 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.
>
> I wrote a lot of Pascal programs for the cute girls in my group:)
>
> On Sun, May 19, 2024, 09:58 jon.maddog.hall--- via Ale <ale at ale.org>
> wrote:
>
>> 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.
>>
>> 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.
>>
>> I asked the administration of the school if anyone had ever taught this
>> before in this time frame and was told "Oh yes".
>>
>> 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.
>>
>> 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.
>>
>> They struggled. I struggled. And after eight weeks they were barely
>> getting started with very, very simple FORTRAN programs.
>>
>> 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).
>>
>> 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.
>>
>> The student could type in:
>>
>> Print 5*3
>>
>> then hit return and the machine would print:
>>
>> 15
>>
>> No editor, no compiler, no linker...
>>
>> 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.
>>
>> 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.
>>
>> 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.
>>
>> The answer was "no".....they had lied before.
>>
>> /*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.
>> Pretty sure the heat generated to predict the weather has small but
>> non-zero impact on the weather :-)*/
>>
>> 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.
>>
>> Depending on the type of problem, a language like Erlang or Haskell would
>> probably help with such a distributed problem
>>
>> md
>>
>>
>> On 05/17/2024 11:19 AM EDT Jim Kinney via Ale <ale at ale.org> wrote:
>>
>>
>> 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.
>>
>> Pretty sure the heat generated to predict the weather has small but
>> non-zero impact on the weather :-)
>>
>> On Fri, May 17, 2024, 6:04 AM Jon "maddog" Hall <
>> jon.maddog.hall at gmail.com> wrote:
>>
>> 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.
>>
>> 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.
>>
>> md
>>
>> On Thu, May 16, 2024, 21:36 Jim Kinney via Ale <ale at ale.org> wrote:
>>
>> 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. :-)
>>
>> On Thu, May 16, 2024, 8:33 PM jon.maddog.hall--- via Ale <ale at ale.org>
>> wrote:
>>
>> Chuck,
>>
>> Many people did not recognize the benefit of pulling down the source code
>> and typing it in by hand.
>>
>> "Wow! What does that error mean? I typed it in just like....oh...I
>> made a mistake!"
>>
>> You had a syntax error, and BASIC showed it right away (most of the time
>> anyway).
>>
>> 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".
>>
>> 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.
>>
>> 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.
>>
>> Happy Birthday, BASIC!
>>
>> md
>>
>>
>> On 05/08/2024 8:10 AM EDT Chuck Payne via Ale <ale at ale.org> wrote:
>>
>>
>> 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.
>>
>>
>> https://www.tomshardware.com/software/programming/the-basic-programming-language-turns-60-dartmouth-basic-started-it-all-in-1964
>>
>> 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.
>>
>> Since I missed the 4th as well, here some BASIC Code for you guys
>>
>> https://www.goto10retro.com/p/star-wars-theme-in-basic
>>
>> Yes, I was one of those kids that would type some weird messages on the
>> computers tha would repeat, like
>>
>> 10 print "Long live ALE, bring more beer"
>> 20 goto 10
>>
>> Happy Computing guys
>>
>> --
>> Terror PUP a.k.a
>> Chuck "PUP" Payne
>> -----------------------------------------
>> Discover it! Enjoy it! Share it! openSUSE Linux.
>> -----------------------------------------
>> openSUSE -- Terrorpup
>> openSUSE Ambassador/openSUSE Member
>> skype,twiiter,identica,friendfeed -- terrorpup
>> freenode(irc) --terrorpup/lupinstein
>> Register Linux Userid: 155363
>>
>> openSUSE Community Member since 2008.
>> _______________________________________________
>> Ale mailing list
>> Ale at ale.org
>> https://mail.ale.org/mailman/listinfo/ale
>> See JOBS, ANNOUNCE and SCHOOLS lists at
>> http://mail.ale.org/mailman/listinfo
>>
>> _______________________________________________
>> Ale mailing list
>> Ale at ale.org
>> https://mail.ale.org/mailman/listinfo/ale
>> See JOBS, ANNOUNCE and SCHOOLS lists at
>> http://mail.ale.org/mailman/listinfo
>>
>> _______________________________________________
>> Ale mailing list
>> Ale at ale.org
>> https://mail.ale.org/mailman/listinfo/ale
>> See JOBS, ANNOUNCE and SCHOOLS lists at
>> http://mail.ale.org/mailman/listinfo
>>
>> _______________________________________________
>> Ale mailing list
>> Ale at ale.org
>> https://mail.ale.org/mailman/listinfo/ale
>> See JOBS, ANNOUNCE and SCHOOLS lists at
>> http://mail.ale.org/mailman/listinfo
>>
>> _______________________________________________
>> Ale mailing list
>> Ale at ale.org
>> https://mail.ale.org/mailman/listinfo/ale
>> See JOBS, ANNOUNCE and SCHOOLS lists at
>> http://mail.ale.org/mailman/listinfo
>>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> https://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.ale.org/pipermail/ale/attachments/20240520/812d07a3/attachment.htm>
More information about the Ale
mailing list