From: Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> On Sat, 23 Jun 2018 14:52:24 -0500, boB Stepp wrote:
[...] >> 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. It has been a long, long time since Python has been a "simple" language suitable for rank beginners, if it ever was. Python is not Scratch. https://scratch.mit.edu/ Right from version 1.0, Python has included some advanced features, even mind-blowing features (metaclasses, a.k.a. "the killer joke"). We're now up to version 3.6 (in production) and 3.7 (in beta) and Python includes some very advanced modern[1] features, like syntactic support for asynchronous programming, decorators, generators, coroutines and more. Better to say that Python is *accessible* to beginners: you can do a lot of good work in Python using simple constructs and imperative scripts, and most importantly, the syntax generally doesn't get in your way. There's relatively little boilterplate needed and a gentle learning curve. Compare "Hello World" in Java and Python: public class HelloWorld { public static void main(String[] args) { // Prints "Hello, World" to the terminal window. System.out.println("Hello, World"); } } versus: print("Hello, World") The Python example requires the programmer to learn effectively three things (print, parentheses, strings), compared to over a dozen for Java: - classes; braces; parentheses; strings; methods; attribute access using dot; "public" declarations; "static" declarations; "void" declarations; type declarations; the existence of System; System.out; System.out.println; semicolons; the implicit calling of main. Aside: there's an extensive, and yet still incomplete, list of Hello World programs here http://helloworldcollection.de/ with some impressive examples. Enjoy! [...] > As an aside we just had another round of software, OS and hardware > upgrades. Now I can use Python 2.7! Yay! Welcome to the 2000s! Hope you will catch up to Python 3 by the 2020s :-) > 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. Indeed. That's one of the beauties of Python -- even when there's an advanced way to do it, there's generally a simple way too. [1] I say "modern", but in fact very little in computer science wasn't invented by Lisp in the 1950s, or if not Lisp, by CLU in the 1970s. -- Steven D'Aprano "Ever since I learned about confirmation bias, I've been seeing it everywhere." -- Jon Ronson --- BBBS/Li6 v4.10 Toy-3 * Origin: Prism bbs (1:261/38) -- https://mail.python.org/mailman/listinfo/python-list