Python for beginners or not? [was Re: syntax difference]

Steven D'Aprano steven.d'aprano at 1
Sun Jun 24 12:35:56 EDT 2018


From: Steven D'Aprano <steve+comp.lang.python at 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)



More information about the Python-list mailing list