• Question about learning Python

    From Maruful Islam@21:1/5 to All on Wed Sep 7 03:28:57 2022
    I want to start learning python. I have a question about learning python.

    Is learning C essential or not for learning python?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sandro Volery@21:1/5 to All on Wed Sep 7 07:13:05 2022
    Hey Maruf

    I want to start learning python.
    Good for you! Fun times ahead.

    Is learning C essential or not for learning python?
    No, I would not say that learning C is essential for learning Python. However, C can serve as a great set of fundamentials in programming and understanding machines on a low level, such as memory management, etc., which all had to be done manually at
    this time.

    It also seems important to note the differences between execution on runtime, and compiled languages, but there is many videos / articles that do a better job at explaining it than it do.

    Best,
    Sandro

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lars Liedtke@21:1/5 to All on Wed Sep 7 17:58:54 2022
    Hello and welcome,

    the answer is a definitive "it depends" ;-)

    Generally you do not need knowledge in C for learning Python.

    But I'd say that it will not hurt to have some knowledge. Especially
    some packages use C-code to extend Python. But it seems to me that you
    are completely starting to learn how to program. Please correct me if I
    am wrong. So you can definitely learn how to program with learning
    Python and you can learn C afterwards if you need to.

    Cheers

    Lars


    --
    Lars Liedtke
    Software Entwickler


    Phone:
    Fax: +49 721 98993-
    E-mail: lal@solute.de


    solute GmbH
    Zeppelinstraße 15
    76185 Karlsruhe
    Germany


    Marken der solute GmbH | brands of solute GmbH
    billiger.de | Shopping.de


    Geschäftsführer | Managing Director: Dr. Thilo Gans, Bernd Vermaaten
    Webseite | www.solute.de
    Sitz | Registered Office: Karlsruhe
    Registergericht | Register Court: Amtsgericht Mannheim
    Registernummer | Register No.: HRB 110579
    USt-ID | VAT ID: DE234663798


    Informationen zum Datenschutz | Information about privacy policy http://solute.de/ger/datenschutz/grundsaetze-der-datenverarbeitung.php

    Am 07.09.22 um 12:28 schrieb Maruful Islam:
    I want to start learning python. I have a question about learning python.

    Is learning C essential or not for learning python?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Passin@21:1/5 to Maruful Islam on Wed Sep 7 12:33:27 2022
    On 9/7/2022 6:28 AM, Maruful Islam wrote:
    I want to start learning python. I have a question about learning python.

    Is learning C essential or not for learning python?

    Not at all.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Angelico@21:1/5 to Maruful Islam on Thu Sep 8 03:57:22 2022
    On Thu, 8 Sept 2022 at 01:50, Maruful Islam <maruf.gibl@gmail.com> wrote:

    I want to start learning python. I have a question about learning python.

    Is learning C essential or not for learning python?

    Absolutely not essential. In fact, I would strongly recommend learning
    Python before ever picking up C, as it's much easier to mess around in
    Python.

    Learning C will definitely help you to become a better programmer, but
    you can leave it until later.

    ChrisA

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Grant Edwards@21:1/5 to Chris Angelico on Wed Sep 7 11:53:37 2022
    On 2022-09-07, Chris Angelico <rosuav@gmail.com> wrote:
    On Thu, 8 Sept 2022 at 01:50, Maruful Islam <maruf.gibl@gmail.com> wrote:

    I want to start learning python. I have a question about learning python.

    Is learning C essential or not for learning python?

    Absolutely not essential. In fact, I would strongly recommend learning
    Python before ever picking up C, as it's much easier to mess around in Python.

    If you're a beginning programmer, then IMO learning C first is
    probably detrimental. C has quite a few quirks and pitfalls that will
    a) frustrate you and waste time, and b) influence your way of thinking
    about programs in a way that will be unhelpful for higher level
    languages.

    Learning C will definitely help you to become a better programmer, but
    you can leave it until later.

    Unless it's to work on a real project that's written in C, I'd put C a
    fair ways down the list of languages to learn. I'd probably put Python
    and then Scheme at the top of the list. Then maybe Smalltalk and
    something a bit more functional.

    --
    Grant

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Grant Edwards@21:1/5 to Chris Angelico on Wed Sep 7 12:07:47 2022
    On 2022-09-07, Chris Angelico <rosuav@gmail.com> wrote:
    On Thu, 8 Sept 2022 at 04:54, Grant Edwards <grant.b.edwards@gmail.com> wrote:

    If you're a beginning programmer, then IMO learning C first is
    probably detrimental. [...]

    Not as detrimental as starting with BASIC, and then moving on to x86
    assembly language, and trying to massage the two together using CALL
    ABSOLUTE in order to get mouse input in your GW-BASIC programs.

    Ah the "good old days".

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Angelico@21:1/5 to Grant Edwards on Thu Sep 8 04:57:38 2022
    On Thu, 8 Sept 2022 at 04:54, Grant Edwards <grant.b.edwards@gmail.com> wrote:

    On 2022-09-07, Chris Angelico <rosuav@gmail.com> wrote:
    On Thu, 8 Sept 2022 at 01:50, Maruful Islam <maruf.gibl@gmail.com> wrote:

    I want to start learning python. I have a question about learning python. >>
    Is learning C essential or not for learning python?

    Absolutely not essential. In fact, I would strongly recommend learning Python before ever picking up C, as it's much easier to mess around in Python.

    If you're a beginning programmer, then IMO learning C first is
    probably detrimental. C has quite a few quirks and pitfalls that will
    a) frustrate you and waste time, and b) influence your way of thinking
    about programs in a way that will be unhelpful for higher level
    languages.

    Not as detrimental as starting with BASIC, and then moving on to x86
    assembly language, and trying to massage the two together using CALL
    ABSOLUTE in order to get mouse input in your GW-BASIC programs.

    Don't be me, folks.

    ChrisA

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From dn@21:1/5 to Chris Angelico on Thu Sep 8 07:42:19 2022
    On 08/09/2022 07.15, Chris Angelico wrote:
    On Thu, 8 Sept 2022 at 05:09, Grant Edwards <grant.b.edwards@gmail.com> wrote:

    On 2022-09-07, Chris Angelico <rosuav@gmail.com> wrote:
    On Thu, 8 Sept 2022 at 04:54, Grant Edwards <grant.b.edwards@gmail.com> wrote:

    If you're a beginning programmer, then IMO learning C first is
    probably detrimental. [...]

    Not as detrimental as starting with BASIC, and then moving on to x86
    assembly language, and trying to massage the two together using CALL
    ABSOLUTE in order to get mouse input in your GW-BASIC programs.

    Ah the "good old days".


    Indeed. The 1990s gave me all manner of skills, including the
    aforementioned mouse control in a BASIC program, writing a Terminate-and-Stay-Resident program that hooks an interrupt, tricks
    for *not* writing a TSR and still acting like one, building GUIs using
    pixel precision, building GUIs using pixel precision but fully
    automatically, using HTML tables to create layouts.... oh, yes, so
    many skills... To anyone suffering from https://xkcd.com/1479/ right
    now, I can assure you, quite a lot of that knowledge DOES eventually
    become obsolete when better methods come along. It just sometimes
    takes a decade or more.

    (And then occasionally it still haunts you. I'm finding table-based
    layouts in a site that I now have to manage. Eventually I'll fix it
    all, eventually....)

    OP: Python!

    Python has become one of the most popular first-languages to use in universities (etc). On-the-ground this varies by country, even by province/state. However, starting at a higher-level is recommendable -
    and should the learner decide that 'this computer stuff is not for me'
    (XKCD not withstanding) then the cost of effort-expended will be less.
    Also, there are are plenty of coders 'out there' who don't seem to have learned, or even need, the detail one acquires using a lower-level
    language. (no further comment on that!)


    TSRs? Now that was an ugly period of history! (trying to make a
    single-process operating system do multi-processing - only to find that
    many program[me]s assumed they had full use and undisputed control of
    the computer. Happy days...)

    History has its value. Talking to a group the other day, showed how
    IT-skills from patterns (eg Factory, Strategy, Decorator) and paradigms
    (eg Modular Programming, Structured Programming) through to
    Architectural Principles (eg SOLID) and project management approaches
    (eg Waterfall, Agile, SCRUM) all descend from hard-won knowledge and
    sometimes bitter-experience. Chunks of which pre-date Dartmouth BASIC,
    PCs, mini-computers, and 'family'/standardised-hardware operating systems!

    On the other hand, one can start too 'high' or too 'modern'. Like the
    person enthusing about MSFT's and AWS' programming AIs, thinking that
    such tools will replace programmers (one of the aims of the COBOL
    language back in the 1960s). His short-form description spoke volumes:
    'it saves anyone from having to look-up Stack Overflow any more' - a
    'blind' cut-and-paste prospect that saves the 'author' from the
    difficulties of 'learning stuff'; until it is time to, um, learn-stuff -
    to know why one needs to learn-stuff BEFORE taking from SO/AI.

    --
    Regards,
    =dn

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Angelico@21:1/5 to Grant Edwards on Thu Sep 8 05:15:09 2022
    On Thu, 8 Sept 2022 at 05:09, Grant Edwards <grant.b.edwards@gmail.com> wrote:

    On 2022-09-07, Chris Angelico <rosuav@gmail.com> wrote:
    On Thu, 8 Sept 2022 at 04:54, Grant Edwards <grant.b.edwards@gmail.com> wrote:

    If you're a beginning programmer, then IMO learning C first is
    probably detrimental. [...]

    Not as detrimental as starting with BASIC, and then moving on to x86 assembly language, and trying to massage the two together using CALL ABSOLUTE in order to get mouse input in your GW-BASIC programs.

    Ah the "good old days".


    Indeed. The 1990s gave me all manner of skills, including the
    aforementioned mouse control in a BASIC program, writing a Terminate-and-Stay-Resident program that hooks an interrupt, tricks
    for *not* writing a TSR and still acting like one, building GUIs using
    pixel precision, building GUIs using pixel precision but fully
    automatically, using HTML tables to create layouts.... oh, yes, so
    many skills... To anyone suffering from https://xkcd.com/1479/ right
    now, I can assure you, quite a lot of that knowledge DOES eventually
    become obsolete when better methods come along. It just sometimes
    takes a decade or more.

    (And then occasionally it still haunts you. I'm finding table-based
    layouts in a site that I now have to manage. Eventually I'll fix it
    all, eventually....)

    ChrisA

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Meredith Montgomery@21:1/5 to Maruful Islam on Wed Sep 7 16:35:26 2022
    Maruful Islam <maruf.gibl@gmail.com> writes:

    I want to start learning python. I have a question about learning python.

    Is learning C essential or not for learning python?

    Surely not necessary. There's a generous recent thread about books on
    Python. Have a look at it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Greg Ewing@21:1/5 to Chris Angelico on Thu Sep 8 11:55:21 2022
    On 8/09/22 6:57 am, Chris Angelico wrote:
    Not as detrimental as starting with BASIC, and then moving on to x86
    assembly language, and trying to massage the two together using CALL
    ABSOLUTE in order to get mouse input in your GW-BASIC programs.

    Or starting with hand-assembled SC/MP machine code and then moving
    on to Applesoft BASIC.

    --
    Greg

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From avi.e.gross@gmail.com@21:1/5 to All on Wed Sep 7 20:32:11 2022
    Chris,

    I started with BASIC in high school and kept shifting my focus from one computer language to another long before I even looked at Python.

    Arguably each language had a REASON for existing so it supported some ideas
    or paradigms or ways of looking at things. Many at first were rather focused
    on doing one or a few things well, and others not so well or not at all. No need to rehash it.

    In a sense, many modern languages can be viewed as containing multiple overlapping modules which collectively do all kinds of things in many ways
    and can do whatever many earlier initial releases of earlier languages did, sometimes better but also sometimes slower. If you look at Python as a base
    and added modules, it can do all the mathematical things of say FORTRAN, manipulate text and produce reports and on and on. But it also can NOT do things done in basic, or at least not easily, like subroutines and goto's
    that are associated with a more primitive way to solve problems.

    Is there any purpose in teaching new students how to structure your code so that you use such methods? Well, maybe. I mean we have all kinds of slightly hidden ways to do a GOTO in some languages such as breaking out of a nested loop. Underneath it all, an IF/THEN/ELSE type of statement has regions you
    jump between. But arguably it is helpful to see operations on a higher level and leave the details of how it is accomplished in well tested code within
    the interpreter or compiler.

    C was designed on purpose to do some things that a language like PASCAL was designed not to allow or make easy. Both started off though as fairly simple languages that did things somewhat linearly. You can obviously emulate many things using a simplified subset of Python that would allow programs in
    those languages to be done. If that is all you want to learn, fine. But if
    your goal is to make use of OO and functional programming and other
    paradigms supported, ...

    As I posted elsewhere, I ask why the questioner specifically mentioned C. I also use R and there too, C is only needed if you want to speed up some function by writing parts in their version of C or C++. The fact that many interpreters are written (or sometimes were written) in C is not really relevant.


    -----Original Message-----
    From: Python-list <python-list-bounces+avi.e.gross=gmail.com@python.org> On Behalf Of Chris Angelico
    Sent: Wednesday, September 7, 2022 2:58 PM
    To: python-list@python.org
    Subject: Re: Question about learning Python

    On Thu, 8 Sept 2022 at 04:54, Grant Edwards <grant.b.edwards@gmail.com>
    wrote:

    On 2022-09-07, Chris Angelico <rosuav@gmail.com> wrote:
    On Thu, 8 Sept 2022 at 01:50, Maruful Islam <maruf.gibl@gmail.com>
    wrote:

    I want to start learning python. I have a question about learning
    python.

    Is learning C essential or not for learning python?

    Absolutely not essential. In fact, I would strongly recommend
    learning Python before ever picking up C, as it's much easier to
    mess around in Python.

    If you're a beginning programmer, then IMO learning C first is
    probably detrimental. C has quite a few quirks and pitfalls that will
    a) frustrate you and waste time, and b) influence your way of thinking
    about programs in a way that will be unhelpful for higher level
    languages.

    Not as detrimental as starting with BASIC, and then moving on to x86
    assembly language, and trying to massage the two together using CALL
    ABSOLUTE in order to get mouse input in your GW-BASIC programs.

    Don't be me, folks.

    ChrisA
    --
    https://mail.python.org/mailman/listinfo/python-list

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From avi.e.gross@gmail.com@21:1/5 to Maruful Islam on Wed Sep 7 20:15:13 2022
    Maybe we should ask WHY the person asking the question about how to learn a computer language called Python is pairing it with the idea of whether to
    also learn C.

    What are they preparing for? Most people using Python have absolutely no
    reason to learn C, or C++ or C# or JAVA or one of a bewildering number of other languages. They may end up using functions that unknown to them have
    been partially implemented using libraries created in C or other languages
    but so what? They never see that except if they want to look at source code.

    So are they looking for a job that will require not just Python but also C?

    If anything, it is an impediment for many people to learn two rather
    different languages at about the same time as many things are very different and lessons in one often do not carry over well to the other. As examples, C uses braces to group things and Python uses indentation and C tends to need things like data types spelled out and Python mostly does not care what type
    it is.

    Now if a question is asked about how to learn a relatively few languages
    with different paradigms that represent an assortment of ways to think about and solve problems, sure, C might take a slot. But arguably you may want something more modern that is somewhat descended from C as a compiled
    language.

    If your goal is to use Python in ways it is designed to be used, learning C first may spoil your thinking and you may implement algorithms in Python
    that loosely translate the way it is done in C but can be done much nicer
    using Python costructs.


    -----Original Message-----
    From: Python-list <python-list-bounces+avi.e.gross=gmail.com@python.org> On Behalf Of Meredith Montgomery
    Sent: Wednesday, September 7, 2022 3:35 PM
    To: python-list@python.org
    Subject: Re: Question about learning Python

    Maruful Islam <maruf.gibl@gmail.com> writes:

    I want to start learning python. I have a question about learning python.

    Is learning C essential or not for learning python?

    Surely not necessary. There's a generous recent thread about books on
    Python. Have a look at it.
    --
    https://mail.python.org/mailman/listinfo/python-list

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Meredith Montgomery@21:1/5 to avi.e.gross@gmail.com on Wed Sep 7 22:26:29 2022
    <avi.e.gross@gmail.com> writes:

    Maybe we should ask WHY the person asking the question about how to learn a computer language called Python is pairing it with the idea of whether to also learn C.

    Excellent point!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dennis Lee Bieber@21:1/5 to All on Thu Sep 8 23:19:14 2022
    On Thu, 8 Sep 2022 07:42:19 +1200, dn <PythonList@DancesWithMice.info> declaimed the following:

    TSRs? Now that was an ugly period of history! (trying to make a >single-process operating system do multi-processing - only to find that
    many program[me]s assumed they had full use and undisputed control of
    the computer. Happy days...)


    I laughed when M$ MSDOS (2?) introduced TSRs... My TRS-80 running L(S)DOS had similar things at least a year earlier. And these were
    /run-time/ loadable. They called them "filters" (and device drivers were
    also an option). Key-click was one such -- though it also showed some
    quirks (like... If the processor was really busy, the key-board driver
    would buffer key-strokes, but the filter activated when an application
    /read/ the key-board). Filter to control printer formatting, a JobLog
    filter, Key-Stroke Multiply filter (I never used it, but it apparently uses
    a table of special keys and expands them to longer strings). Commands to
    load device drivers (or remove them!). Could even change the number of cylinders for a floppy drive -- My drives were "loose" enough to allow my
    to add 2 cylinders.

    On the other hand, one can start too 'high' or too 'modern'. Like the
    person enthusing about MSFT's and AWS' programming AIs, thinking that
    such tools will replace programmers (one of the aims of the COBOL
    language back in the 1960s). His short-form description spoke volumes:
    'it saves anyone from having to look-up Stack Overflow any more' - a
    'blind' cut-and-paste prospect that saves the 'author' from the
    difficulties of 'learning stuff'; until it is time to, um, learn-stuff -
    to know why one needs to learn-stuff BEFORE taking from SO/AI.

    I once worked with someone whose idea of programming was to find examples of working code, and cut&paste snippets to make an application. We needed to control four devices via GPIB... She wrote four short programs
    and a DCL script to run them in sequence.

    Problem: each program had to issue a GPIB initialization command before it could continue to talk to any device. But each initialization command
    would UNDO any configuration the previous program had set up! We discovered THAT when TDY to the remote site (and she'd already returned home). I had
    to debug the situation, and rewrite the four programs into a single
    consolidate program over a weekend (and I'd never worked with GPIB before
    this -- my task was the post processing of the data that was collected
    after the GPIB chain had been set up for data collection).

    I think I'm not giving away any secrets these days, but this was a Quick Response Contract for a proof of concept -- that a geo-bird could
    catch over the horizon GPS signals, and thereby improve the satellite
    tracking data for ephemeris generation. Had to be over-the-horizon as
    geo-birds are above GPS, and GPS aims signals down to earth. We had to
    catch side-lobes as GPS birds were high enough to avoid
    ionosphere/troposphere effects.



    --
    Wulfraed Dennis Lee Bieber AF6VN
    wlfraed@ix.netcom.com http://wlfraed.microdiversity.freeddns.org/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fulian Wang@21:1/5 to All on Thu Sep 8 01:34:13 2022
    Python is an appropriate computer language for kids and teenagers. A very good book for beginners: Invent Your Own computer games with Python
    Author: Al Sweigart
    It's free online, but it's worth to have one.

    Get Outlook for iOS<https://aka.ms/o0ukef>
    ________________________________
    From: Python-list <python-list-bounces+estates=hestates.org@python.org> on behalf of avi.e.gross@gmail.com <avi.e.gross@gmail.com>
    Sent: Wednesday, September 7, 2022 7:32:11 PM
    To: python-list@python.org <python-list@python.org>
    Subject: RE: Question about learning Python

    Chris,

    I started with BASIC in high school and kept shifting my focus from one computer language to another long before I even looked at Python.

    Arguably each language had a REASON for existing so it supported some ideas
    or paradigms or ways of looking at things. Many at first were rather focused
    on doing one or a few things well, and others not so well or not at all. No need to rehash it.

    In a sense, many modern languages can be viewed as containing multiple overlapping modules which collectively do all kinds of things in many ways
    and can do whatever many earlier initial releases of earlier languages did, sometimes better but also sometimes slower. If you look at Python as a base
    and added modules, it can do all the mathematical things of say FORTRAN, manipulate text and produce reports and on and on. But it also can NOT do things done in basic, or at least not easily, like subroutines and goto's
    that are associated with a more primitive way to solve problems.

    Is there any purpose in teaching new students how to structure your code so that you use such methods? Well, maybe. I mean we have all kinds of slightly hidden ways to do a GOTO in some languages such as breaking out of a nested loop. Underneath it all, an IF/THEN/ELSE type of statement has regions you
    jump between. But arguably it is helpful to see operations on a higher level and leave the details of how it is accomplished in well tested code within
    the interpreter or compiler.

    C was designed on purpose to do some things that a language like PASCAL was designed not to allow or make easy. Both started off though as fairly simple languages that did things somewhat linearly. You can obviously emulate many things using a simplified subset of Python that would allow programs in
    those languages to be done. If that is all you want to learn, fine. But if
    your goal is to make use of OO and functional programming and other
    paradigms supported, ...

    As I posted elsewhere, I ask why the questioner specifically mentioned C. I also use R and there too, C is only needed if you want to speed up some function by writing parts in their version of C or C++. The fact that many interpreters are written (or sometimes were written) in C is not really relevant.


    -----Original Message-----
    From: Python-list <python-list-bounces+avi.e.gross=gmail.com@python.org> On Behalf Of Chris Angelico
    Sent: Wednesday, September 7, 2022 2:58 PM
    To: python-list@python.org
    Subject: Re: Question about learning Python

    On Thu, 8 Sept 2022 at 04:54, Grant Edwards <grant.b.edwards@gmail.com>
    wrote:

    On 2022-09-07, Chris Angelico <rosuav@gmail.com> wrote:
    On Thu, 8 Sept 2022 at 01:50, Maruful Islam <maruf.gibl@gmail.com>
    wrote:

    I want to start learning python. I have a question about learning
    python.

    Is learning C essential or not for learning python?

    Absolutely not essential. In fact, I would strongly recommend
    learning Python before ever picking up C, as it's much easier to
    mess around in Python.

    If you're a beginning programmer, then IMO learning C first is
    probably detrimental. C has quite a few quirks and pitfalls that will
    a) frustrate you and waste time, and b) influence your way of thinking
    about programs in a way that will be unhelpful for higher level
    languages.

    Not as detrimental as starting with BASIC, and then moving on to x86
    assembly language, and trying to massage the two together using CALL
    ABSOLUTE in order to get mouse input in your GW-BASIC programs.

    Don't be me, folks.

    ChrisA
    --
    https://mail.python.org/mailman/listinfo/python-list

    --
    https://mail.python.org/mailman/listinfo/python-list

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Angelico@21:1/5 to Greg Ewing on Sat Sep 10 06:41:33 2022
    On Sat, 10 Sept 2022 at 06:38, Greg Ewing <greg.ewing@canterbury.ac.nz> wrote:

    On 8/09/22 6:57 am, Chris Angelico wrote:
    Not as detrimental as starting with BASIC, and then moving on to x86 assembly language, and trying to massage the two together using CALL ABSOLUTE in order to get mouse input in your GW-BASIC programs.

    Or starting with hand-assembled SC/MP machine code and then moving
    on to Applesoft BASIC.


    I have no idea how we survived.

    Though, "survived with our sanity intact" clearly didn't happen, so
    perhaps there's that.

    ChrisA

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Angelico@21:1/5 to Dennis Lee Bieber on Sat Sep 10 06:57:44 2022
    On Sat, 10 Sept 2022 at 06:45, Dennis Lee Bieber <wlfraed@ix.netcom.com> wrote:

    On Thu, 8 Sep 2022 07:42:19 +1200, dn <PythonList@DancesWithMice.info> declaimed the following:

    TSRs? Now that was an ugly period of history! (trying to make a >single-process operating system do multi-processing - only to find that >many program[me]s assumed they had full use and undisputed control of
    the computer. Happy days...)


    I laughed when M$ MSDOS (2?) introduced TSRs... My TRS-80 running L(S)DOS had similar things at least a year earlier. And these were
    /run-time/ loadable. They called them "filters" (and device drivers were
    also an option). Key-click was one such -- though it also showed some
    quirks (like... If the processor was really busy, the key-board driver
    would buffer key-strokes, but the filter activated when an application
    /read/ the key-board). Filter to control printer formatting, a JobLog
    filter, Key-Stroke Multiply filter (I never used it, but it apparently uses
    a table of special keys and expands them to longer strings). Commands to
    load device drivers (or remove them!). Could even change the number of cylinders for a floppy drive -- My drives were "loose" enough to allow my
    to add 2 cylinders.


    To be fair on MS-DOS, you didn't *have* to use a TSR to hook
    interrupts, and the same idea of those filters would work (just hook
    the keyboard interrupt in a cooperative way; last installed is first
    executed). But the OS offered only one option for a program to run and
    put itself somewhere: "terminate process and increase the base segment
    address for subsequent processes", which would allow you to leave any
    amount of memory (on a sixteen-byte boundary) active.

    There's no reason that filters couldn't have been written that blit
    themselves into some other part of memory, point some interrupt
    vectors there, and then fully terminate. Sure, the OS wouldn't have
    offered any protection, but the OS didn't offer any actual protection
    anyway. All we'd need is a spare slab of memory for things to put
    their code into, one which everyone could allocate and deallocate
    from..... oh. Yeah, like virtual memory.

    ChrisA

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)