Yes. Obviously people have different tastes, but many many people find Python to be tastefully designed.
> It basically ignored Scheme, ML, and Erlang dialects from its creation onwards.
Those are... all radically different languages from each other.
This is like arguing that a peanut butter and jelly sandwich would be better if it was more like sushi, chocolate, and pasta.
Not really, but that wasn't my point. My point was, that at the time of Python's creation, all those languages existed and have taste. The fact that they were ignored in Python's development is an example of it not having taste.
The best example of this is Python's scoping rules. When something like Scheme or ML exists and you end up with Python's scoping, it's hard for me to understand where the taste is.
It objectively has ignored features from those languages, such as immutability, concurrency, sane scoping, functional ways of thinking, pattern matching, better REPL, etc. which have all been making their way into most modern languages. So what’s tasteful about Python? The benefits it has that I see are that it’s easy to download and run for simple scripts and has clean-ish syntax, but that’s about it. For anything larger, it quickly gets in the way.
Popularity is a confusing beast. What has made Python popular, in my opinion, is that it was adopted by scientists, but in my experience, that group of people has little taste in software and little want to figure out what else is out there.
You say that like that doesn't count for a lot.
The ease of getting Python to do various small bits of automation is the main reason I use it.
And those things aren’t enough to justify building large software out of.
My favorite example here is that in a function definition, `def foo(): \n pass`, the `:` isn't needed, a machine can parse it with only the newline. The : is a requirement because it made it easier for humans to read the language in user tests.
I would recommend at least checking out Racket and giving it a chance if you've never even heard of Scheme. If you like Python's syntax, then you might be interested in the Rhombus project that the Racket team is embarking on or Pyret, both of which have Python-esque syntax. I'd also recommend F#, which has just as clean, if not cleaner syntax than Python.
It's hard to call Python's syntax perfection when it is missing piping and pattern matching. Python can't even do multiline method chaining without an extraneous "\" character or parentheses. Python also doesn't have a multiline comment syntax.
Doesn’t mean I dislike functional languages either. I just specifically found the parentheses more annoying than clarifying.
Scheme is a better comparison, but its lexical scoping requires all local variables to be explicitly declared. You can argue that it's a feature, but that's rather subjective - and if somebody wants the simplicity of assignment-is-local-declaration, how exactly would you do it differently than Python?
https://en.wikipedia.org/wiki/Amoeba_distributed_operating_s...
I think it would have seemed out-of-scope to include too many sophisticated features. Also GvR was young, he might not have had [enough] exposure to all those languages, eh?
Makes you think about how important the syntax for a language is.
To a seasoned programmer it may look obvious, but Python is still by far the best language for newcomers, and generally people tend to stick much longer to the language they were first taught.
I think that saying Guido has taste implies that Python is tasteful.