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.
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?
OTOH, there is no much benefit today in Clojure over other languages for database backed apps, most of what is considered good Clojure code is more about the methodology than the language per se. The real benefits IMO is when you paired it with Datomic avoiding the impedance mismatch in data structures, but Datomic is another can of worms.
They let Anders Hejlsberg have free reign over his languages, encouraged it in fact.
He joined them in 1996, and has done J++, C# and now TypeScript. They seem quite content for him to just keep making new languages which they throw all their marketing muscle behind.
Me, some rando MS employee who works on languages: yeah, I can actually do pretty much anything that I feel is right, at half the level of Guido (if even that) and a miniscule amount of clout
At least in my group our ability to do what we want was directly corresponding how connected/influential our sponsor was, and absent that, I have almost no ability to do what I feel is right, even if I have data backing it up, if the powers that be are in opposition.
I don't want to paint this as some universal ms-doing-terrible-things statement, just that I don't personally feel like I have much freedom to assert philosophy or ideology, and I've seen well respected individuals in engineering even up to and above principal/partner die on comparatively minor hills before which makes me think it's not just me.
And while I'm being dangerously candid, this to me seems like a prestige hire much like carmack at facebook, and I chuckle at the ado being given in both directions in this thread. I will be pleasantly surprised if this motivates more python support but expect neither good nor bad.