I've finally found time to examine this rather long, rambling thread. On Wed, Jun 20, 2018 at 5:46 AM <bart4...@gmail.com> wrote: > > Yeah, people keep bringing that up when they run out of arguments. > > So, every programmer must always use the most advanced, most esoteric > features possible at every opportunity? Coding should only be for the elite? > > There is a place for various levels of programming language. I'm saying that > Python which is always touted as a 'simple' language suitable for beginners, > is missing a surprising number of basics.
I still feel like a rank beginner, but on the Tutor list some disagree. Perhaps I feel this way because the more I try to study and research programming/computer science topics, the more I realize how little I know and how much remains to be learned, so I continue to feel like a beginner. But I am beginner enough that I can respond to the above points. A handful of years ago at the job I do, I started to get tired of doing the same basic things over and over, so I investigated what possibilities the software I used on the OS it used had in order to automate these tasks. Perl proved to be available, but Python wasn't uniformly then, so I wrote some programs in Perl. I got it figured out and wrote some useful program in Perl, but the language never did feel natural and easy to understand to me. Later the OS and hardware got updated and I found Python was now fully available in the 2.4 version. I started writing new programs in Python and found it quite easy to use and understand. As I needed to, I started rewriting earlier programs I had done in Perl in Python instead, and was happier for it. As an aside we just had another round of software, OS and hardware upgrades. Now I can use Python 2.7! Because I read and study about new things as I take them up, I soon learned that I had only so far scratched the surface of Python's depths. But despite knowing that Python had many more features to explore, both in the core language and the standard library, this never hindered me in writing my beginner-level programs. I got things done, and I got them done fairly easily, and never felt burdened by all the "other stuff" that Python had to offer. But I am continually grateful that this "other stuff" exists! For instance, recently I was working on a problem for home use that I was doing in Python 3 (Not that 3 vs. 2 matters here.). I was concerned about loading potentially really large files into RAM and not having enough memory for it. Alan Gauld suggested I try a generator approach. I had not used these yet, though I was aware of this feature's existence. So I did some reading up on them, wrote some code with my attempted implementation of them, submitted my efforts to the Tutor list for critique, and while I am sure I did not do a professional job of things, I was quite happy with the result as it solved the problem I was concerned about. So even dipping my big toe into the "other stuff" proved an enjoyable and understandable experience. This has always been my experience with Python. When the time comes that I need something, I find it is there either in the core language or the standard library, and it proves not burdensome to learn the new feature(s). This has been my beginner's journey with Python: Easy to do useful stuff, easy to read and easy to understand. When I need something _more_, I find it already exists and proves relatively easy to understand *as long as* I am willing to put in a bit of study. And I don't think needing to put in a bit of study to learn how to use a new feature is unreasonable for me or anyone else. Anyway, so far Python has not lacked for anything I have needed so far. Of course, I realize that if I need to do something closer to the machine level, Python is probably not going to be the preferred go to tool, and even being a beginner I have enough sense to realize this. But then again, I would not be too surprised if Python or a third party library did not already meet this future, hypothetical need. > That these are useful is demonstrated by the cumbersome add-ons that need to > be used to provide that functionality. Often in over the top ways and often > in a bewildering variety of ways in the case of records. All I can say is I have yet to find much at all in Python cumbersome or bewildering. As to the original point of this thread concerning type-hints, I am aware of them, once asked a bit on Tutor about them, but decided I am not ready to go there yet. But to (I hope.) help my learning of Python syntax, I am forcing myself to *not* use linters, etc. Once I feel that I have Python in my head and in my fingers, then I will start using such sensible tools and will probably reexamine type-hints. 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 ... ~(:>)) -- boB -- https://mail.python.org/mailman/listinfo/python-list