4 ms·
Disclaimer: Career Python Programmer here. First off, this thing is just a (click/flame)bait post. Bulleted list with zero explanations. That said, no langu
by bussierem 5y ago
Disclaimer: Career Python Programmer here.
First off, this thing is just a (click/flame)bait post. Bulleted list with zero explanations. That said, no language is perfect and I can agree with some of it. Addressing points I disagree with the most:
- Startup time: Given that this is a self-professed C(++/#) programmer, _of course_ Python will be slower than a compiled language. This is just a compiled language fan not liking a "not compiled" language, and has nothing to do with Python itself.
- Import system: Having historically used/dabbled with about a dozen+ languages, I have yet to find an import system I like, including the C family of languages.
- Toxic runtime environment: Ignoring the strange use of the word "toxic", without ANY detail whatsoever on what they mean by this, this is pretty useless criticism.
- Error handling / Exceptions: Not sure what he's comparing to. 90% of languages do bad error handling; even the newer ones like Rust/Go/Elm that try to do this well have their own faults and most people ignore them. Also, given that it's a C-family programmer stating this... Python does exceptions basically the same as the C-family, so yeah I guess he hates his favorite languages too?
- kwargs: Without any context, this is a meaningless complaint. Care to elaborate? No? Moving on then.
- List Comprehension syntax: This one is baffling to me. I guess someone who is used to C#'s Linq might find this a bit harder to grasp, but as someone who has used both professionally it's really not that bad, and this syntax is one of the things most people love about Python.
- Globals: Yes, we hate them too. _That's why nobody in their right mind uses them_
- Variable scope: IMO python variable scoping isn't that bad -- maybe a few warts, but I've never had significant problem with it.
- Significant whitespace: I mean....how? Yes it has whitespace-based blocks, but...it's not actually MORE whitespace than a {}-based language... What does "significant" mean here...?
- Standard library: You mean one of the best things about Python? That I don't need 60 billion dependencies on my project to be able to the most basic shit? Now you're just being ridiculous. Also, coming from a C# dev? C'mon man.
- Dependency management: Needs more context. requirements.txt isn't the best choice, but Poetry makes things much more standardized, and very easy to manage -- no different than many other dependency managers.
- Environment variables: ....What? What about them? This isn't a Python thing. Do you dislike how it handles them (as a hashmap)? Do you dislike the environment variables used by the Python runtime? ELABORATE.
- Jupyter Notebooks: Well given that this is not only 100% external to Python, but also completely a voluntary and (AFAIK) not "industry standard for all Python devs" tool, it's like calling C a shitty language because of Arduino.
TLDR: Congrats you googled all the things someone could possibly hate about a language and posted them in a bulleted list without context and called it a "rant"
Also:
> Criticism and nitpicks aren't wrong, but miss the point. Truthiness > Truth
Oh okay, so you never once intended to listen to anyone. Might as well publish these posts to /dev/null
- ComradePhil 5y ago> Significant whitespace: I mean....how? Yes it has whitespace-based blocks, but...it's not actually MORE whitespace than a {}-based language... What does "significant" mean here...? I believe that the author means that the white space itself is significant as a part of the syntax... which it shouldn't be.
- kolanos 5y agoYou can just use braces with: from __future__ import braces
- mikestew 5y agoWhat does "significant" mean here Meaning that there is significance to whitespace, as opposed to C where you could cram it all onto one line if you wanted. To put it another way, C doesn't care how you indent, if you even do it at all. Python cares, and will not run your program if you get the whitespace wrong. Whereas I think you read it as "there's lots of whitespace in Python", which is not what was intended.
- bussierem 5y agoAh yes you're correct I didn't consider that meaning of the word! Thanks for the clarification. I'll leave my comment as-is though to avoid confusion.
- alfor 5y agoPython was very good in the 2000 with the included batteries but I don’t think they are up to the task anymore 20 years later. Python became the glue language for ML, but that was never it’s intended target and I think that we see more and more than we need something else to go forward.
- mixmastamyk 5y agoA few are long in the tooth but almost all are functional or have been removed. Pypi an option. Great situation imho.