syntax difference

boB Stepp robertvstepp at gmail.com
Sat Jun 23 19:44:51 EDT 2018


On Sat, Jun 23, 2018 at 5:35 PM Bart <bc at freeuk.com> wrote:
>
> On 23/06/2018 20:52, boB Stepp wrote:

> The first programming exercise I ever did involved asking for three
> numbers, then determining whether those numbers could form the sides of
> a triangle.
>
> Then [40 years ago], the easy part was reading the three numbers. Now
> that would be the more challenging part.
>
> This is one of the basics that is missing. Getting around it is not
> hard, but it's some messing about and it's a distraction. But 40 years
> ago it was just 'readln a,b,c'; it was just taken for granted.

I don't think there are any *basics* missing.  One of the differences
between then and now is that trying to live in a simpler
ASCII/extended ASCII world is no longer possible.  The Internet and
open source movements among other things have brought in more (most?)
of the world as participants in the programming endeavor.  The many
peoples of this world and their many, varied cultures is quite rich
and complex, and they have real needs to express their thoughts as
naturally as they can.  I would contend that the basics are there, but
the complexity of the data and ideas that need to be dealt with these
days is what makes the programming journey more challenging but also
more interesting than in the days of yore.  When I first went to
college in the seventies, it was all punch cards, main frames, a few
minicomputers, time sharing IBM selectrics, etc.  I would *not* want
to go back to that!  I find today's challenges and opportunities much
more fascinating!!

> > Anyway, so far Python has not lacked for anything I have needed so
> > far.
>
> I'd be surprised if Python lacked anything; there can't be anything that
> someone has thought of that is either built-in or bolted on, if not
> always that elegantly or that efficiently.

I am not qualified to speak to issues of Python's language design, but
as a user of Python I have yet to be disappointed.  But I imagine all
languages, including yours, have accumulated cruft that in retrospect
the creators would like to remove.  But the difference, as far as I
can tell, between your languages and Python is that Python has a huge
number of active users with who knows how many LOC in production
environments, but your languages do not.  So you have the benefit, as
their creator and essentially sole user, to keep polishing and
refining your ideas.  The Python devs don't have that luxury.  But
they are obviously, even to me, constantly not only adding new
functionality, but trying to minimize the cruft as best they can
without compromising people's production code.  I imagine that the
transition from version 2 to 3 was not undertaken halfheartedly, but
only after much thought and discussion since it did break backwards
compatibility.  But now having used both Python 2 (Which I still have
to code in at work.) and 3, even I with my limited knowledge and
capabilities appreciate the positive benefits of the changes.

> However, imagine having to use a language which didn't have assignments
> as you are used to, and that you would expect to exist. Then you might
> well remark that it's missing something that you regard as a basic,
> while the proponents of that language point out that it doesn't stop you
> writing programs; it just needs a different approach.

But the beauty of things as they are today, is that if someone has
thought of it, it is probably accessible and available to use.  Not
only that, but one can cruise through the many different programming
languages and see what others have imagined and thought to be useful
and grow one's knowledge and insight much more easily than ever
before.  And if I have a need that Python or any other language I use
does not address, I can surely find one online.

> (I believe that you can write any program using just IF-GOTO statements
> and ASSIGNMENT statements, and no other flow control (given suitable
> data-types and means of I/O). But if you wanted to try out an
> interesting experiment along those lines (eg. transcribe any flowchart
> to code), a large number of languages, including Python, make it hard
> because 'goto' is missing.)

I have done the "GOTO" thing ages ago.  I would not want to go back to
that bad place.  There are too many better alternatives now for flow
control.  With today's hardware I don't think any benefit from any
theoretical optimizations would be of any benefit in practice.  As a
person who does not have much time for studying and writing programs,
I have a hard enough time understanding what I wrote after a break
from programming.  I would not want to put any more stumbling blocks
in my code for later maintainability, not to imagine having to do so
for other people's code.

> > All I can say is I have yet to find much at all in Python cumbersome
> > or bewildering.
>
> No? How many ways are there in Python, including third party add-ons, of
> working with record-like objects?

If I am understanding you correctly by your reference to "record-like
objects", again it isn't a problem of lacking basics in Python, but it
is in the complexity of real data structures that modern programming
must deal with.  And again, with the types of record-like objects I
have had to deal with, Python's standard library has proved more than
sufficient.

> > As an aside to Bart, if you strongly feel that Python is missing a
> > really useful feature, then why don't you do the usual thing, start a
> > very specific thread about just that feature (Not just a collection of
> > things you like in one of your languages.), and if you manage to
> > persuade the community of its usefulness, then write up a PEP about
> > it?  Just saying ... ~(:>))
>
> I'm not a user...

Then I am truly puzzled, Bart.  Why do you even bother to hang out on
this list?  If you do not want to use Python and you do not want to
improve Python's design and implementation, what is your point of
being here?  You *do* seem to generate a lot of ill will, I hope
unintentionally.  But why not take a different, more helpful tack?
You seem to have a lot of ideas.  If you really think they are
applicable to improving the Python language, why not take your ideas,
one at a time, and have serious discussion, perhaps better on
Python-Ideas, on how Python can be meaningfully made better?  That
would be a helpful approach which I think, if done with the intention
of helping Python to be the best language it can be (Within the
constraints it has to operate within in practice.), then I would hope
your potential contributions would be positively received by the
community.  But as it stands, you seem to adopt the role of a naysayer
and critic without offering anything positive to the community.  And
of course, you would have to know how to use Python properly in
idiomatic style.  Why not choose this positive approach?  I think it
would be a win-win for both you and Python.

-- 
boB



More information about the Python-list mailing list