[Tutor] TESTING

Alan Gauld alan.gauld at yahoo.co.uk
Fri Nov 2 06:02:36 EDT 2018


On 02/11/2018 03:45, Avi Gross wrote:
> I am not totally up on the exact purposes of this group but have noted how
> many of the questions asked have been frustrating.

Unfortunately that goes with the territory.
We are a list catering to beginners to Python and, frequently,
to programming. As a result the participants often have little
or no experience of using technical mailing lists or fora.

> I wonder if it would make any sense to provide a template people might fill
> out to suit their needs.

The problem is how. Where would the template reside? We do
provide some hints on the welcome mails that go out but its
clear that most newcomers don't read it, so a template
would likely suffer the same fate.

But the biggest problem for a mailing list, unlike a web site,
is that there is nowhere to post information in a persistent
manner. You could go to the archive and search, but that takes
effort which newbies are unlikely to expend.

Also, we want to encourage people to use the list and a long
list of "rules" and formats is likely to drive them elsewhere.

> An example might be people who want you to pretty much do their homework for
> them from beginning to end.

This has been an issue as long as I've been on the internet
(ie since before 1986)and there is IMHO no cure other than
to consistently offer help but not solutions. Those who want
to learn will come back. Those who just want a quick fix
will just ask on Quora...

> But to do it ALL for someone generally is not the role of a tutor in the
> real world.

Absolutely.

> On the other hand, when someone discusses how to optimize their code, and
> shows the ways they already tried, it may be valid to present them with a
> complete program that illustrates it assuming this is not a homework problem
> but a more advanced person that may be interested.

And that's how we try to deal with it. If its a genuine
problem we will give more complete solutions, if its
(suspected) homework we give hints and tips.

> But, to make this message more meaningful, I have a question. In my reading
> I see Python has been bifurcated into often incompatible releases we call 2X
> and 3X. 

Yes, although 2.X is effectively deprecated. But industry
usage requires that it still gets some support.

> So, does anyone see any further breaks in Python such as when 4.0 comes
> along or will we have some backward compatibility for a while? 

Others can answer this better than I but so far each
generation of Python has been close to a decade apart
(v1 ~ 1991, v2 ~ c2000, v3 ~ c2010) So v4 would logically
appear around 2020, but I've seen no specific discussion
of that whereas both v2 and v3 had long debates about what
would be in/out and how much backward compatibility would
be included.

> one of the earlier guiding principles of Python was to have mainly one
> obvious way to do something and in my reading, I often see MANY ways

Yes, I've never bought the 1 obvious way line. Any decent
programming language offers multiple paths. Language idioms
may evolve to suggest a preferred option but in practice
you need alternatives for expressiveness.

> it. Much of this is caused by adding new features while retaining the old.

And is exacerbated by the Open Source model. Anyone can come up with a
"good idea" to "fix" an issue and it gets adopted. Just look at the long
history of how to start an external process from Python. system(),
popen() - and its several variants - exec(), command(), subprocess,,,

> especially when you use a package written by someone and then abandoned. 

That's always a problem with 3rd party libraries. If its in the core
language and standard library it should be maintained, or at least
go through a controlled and published obsolescence process.

> I wonder if others have written tools (such as in frozen programs) that
> gather up an exact snapshot of the environment needed when you submit a
> paper so it can be replicated!

That's really a configuration management issue and certainly such
tools exist, but they require you to store all the historical
versions within the CM system. The best I ever used was ClearCase
which had a concept of views, controlled by a text file. By changing
the view then restarting the tool it would magically recreate the
full disk image of the project as it had been frozen, including
code, compilers, debuggers etc. The only problem was when the OS
itself was incompatible and that required a virtual machine.
As a maintenance programmer it was absolutely brilliant. You could
take a bug report and within minutes have the relevant version
of the system loaded and ready to work, then next bug you had a
completely different version ready in the blink of an eye (well
maybe 2 or 3 minutes! :) But ClearCase cost megabucks.

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos




More information about the Tutor mailing list