Re: Question about learning Python
On Sat, 10 Sept 2022 at 06:45, Dennis Lee Bieber wrote: > > On Thu, 8 Sep 2022 07:42:19 +1200, dn > 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 -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
On Sat, 10 Sept 2022 at 06:38, Greg Ewing 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 -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
On Thu, 8 Sep 2022 07:42:19 +1200, dn 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 wlfr...@ix.netcom.comhttp://wlfraed.microdiversity.freeddns.org/ -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
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! -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
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 -- https://mail.python.org/mailman/listinfo/python-list
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 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 wrote: > > On 2022-09-07, Chris Angelico wrote: > > On Thu, 8 Sept 2022 at 01:50, 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? > > > > 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
RE: Question about learning Python
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 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 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 -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
Maruful Islam 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
Re: Question about learning Python
On 08/09/2022 07.15, Chris Angelico wrote: > On Thu, 8 Sept 2022 at 05:09, Grant Edwards wrote: >> >> On 2022-09-07, Chris Angelico wrote: >>> On Thu, 8 Sept 2022 at 04:54, Grant Edwards >>> 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 -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
On Thu, 8 Sept 2022 at 05:09, Grant Edwards wrote: > > On 2022-09-07, Chris Angelico wrote: > > On Thu, 8 Sept 2022 at 04:54, Grant Edwards > > 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 -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
On 2022-09-07, Chris Angelico wrote: > On Thu, 8 Sept 2022 at 04:54, Grant Edwards 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". -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
On Thu, 8 Sept 2022 at 04:54, Grant Edwards wrote: > > On 2022-09-07, Chris Angelico wrote: > > On Thu, 8 Sept 2022 at 01:50, 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? > > > > 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
Re: Question about learning Python
On 2022-09-07, Chris Angelico wrote: > On Thu, 8 Sept 2022 at 01:50, 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? > > 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 -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
On Thu, 8 Sept 2022 at 01:50, 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? 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 -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
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. -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
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: l...@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? -- https://mail.python.org/mailman/listinfo/python-list
Re: Question about learning Python
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 -- https://mail.python.org/mailman/listinfo/python-list