Re: Question about learning Python

2022-09-09 Thread Chris Angelico
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

2022-09-09 Thread Chris Angelico
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

2022-09-09 Thread Dennis Lee Bieber
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

2022-09-09 Thread Meredith Montgomery
 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

2022-09-09 Thread Greg Ewing

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

2022-09-07 Thread avi.e.gross
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

2022-09-07 Thread avi.e.gross
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

2022-09-07 Thread Meredith Montgomery
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

2022-09-07 Thread dn
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

2022-09-07 Thread Chris Angelico
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

2022-09-07 Thread Grant Edwards
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

2022-09-07 Thread Chris Angelico
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

2022-09-07 Thread Grant Edwards
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

2022-09-07 Thread Chris Angelico
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

2022-09-07 Thread Thomas Passin

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

2022-09-07 Thread Lars Liedtke

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

2022-09-07 Thread Sandro Volery
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