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