8 ms·
> Do people really consider Python to have taste? Yes. Obviously people have different tastes, but many many people find Python to be tastefully designed. > I
by munificent 6y ago
> Do people really consider Python to have taste?
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.
- bmitc 6y ago> Those are... all radically different languages from each other. 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.
- ajkjk 6y agoI suspect Python's popularity was greatly helped by ignoring those languages. Your definition of taste isn't everyone's.
- bmitc 6y agoI didn’t say it was. I am curious though what others consider to be tasteful about Python. 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.
- munchbunny 6y ago> 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. 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.
- bmitc 6y agoIt counts for a lot, but it’s not like that’s all people use Python for. There are also other languages with similar amounts of lesser friction to get going. And those things aren’t enough to justify building large software out of.
- joshuamorton 6y agoPython's taste is one of ergonomics. Expressiveness + easyness to read, even for a beginner. Python evolved from a project that was testing the UX of syntax for programming languages. 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.
- Nimitz14 6y agoI just looked up some scheme code. "Tasteful" ? lol. Python's syntax is perfection.
- bmitc 6y agoGreat, another person in the camp that hates parentheses at first sight. :) A language, and thus the taste of the language, is not just its syntax. It's the whole package. It just so happens that Scheme and Racket have a minimal syntax to enable more regular semantics and advanced macros. 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.
- munchbunny 6y agoEven though I was proficient with Scheme, the parentheses were my least favorite part. I got tired of going crosseyed lining things up. Doesn’t mean I dislike functional languages either. I just specifically found the parentheses more annoying than clarifying.
- bmitc 6y agoI can understand a dislike of parenthesis in the sense of it being a personal preference based on actual experience. I will admit that I was weary of them at first myself, but once I got into Lisps and particularly Schemes, I found myself liking the spartan nature of them. In a world full of complexity, it is nice to just get on with life, so to speak, when it comes to syntax, and I enjoy the regularity. F# is my favorite language, but I do hold Scheme dialects close.
- int_19h 6y agoML is a strongly typed language, so it's hard to compare it directly. 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?
- carapace 6y agoFWIW, Python was originally written as a shell language for a distributed OS called Amoeba. https://en.wikipedia.org/wiki/Amoeba_distributed_operating_system 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?