Essential insights from Hacker News discussions

Python: The Documentary [video]

Here's a summary of the themes expressed in the Hacker News discussion:

Nostalgia for Python's Simpler Past

Many long-time developers recall a period when Python was favored for its simplicity, clarity, and ease of use for scripting and smaller projects. This era is often contrasted with the perceived complexity and bloat of modern Python.

  • "I used to love Python, back when it was basically just an alternative to perl for scripting. Now it strikes fear into my heart when I encounter something largish written in Python because it usually means "super slow bloated researchy untyped ai/math code that's a nightmare to work with"" - umvi
  • "I was a big fan of python between 10 and 15 years ago for similar reasons, it felt "cleaner" than other scripting languages while also having rich standard and extended libraries." - kev009
  • "IMO, that was largely well deserved. But it seemed like a lot of people overlooked why it was loved. Most of us weren't wishing that our 2k+ line projects were all written in it. Those little 20-500 line scripts were just so much more fun in Python than anything else though, and it showed up in survey after survey." - jsight
  • "It's notable that you've written this in the past tense. These kinds of scripts don't seem to be a focus for Python any more." - pansa2
  • "During university I used Python 2 on and off. It was amazing during that era and what I could build." - elcritch
  • "I remember learning it in college. How easy it was to pull and parse a webpage and allow me to store and study the world’s information. I was hooked." - scripper1
  • "It was always a glue/prototyping language—if you're using it for kernel drivers or multi-threaded Fibonacci servers or worse, that bad decision is yours (or that of your boss). ;-)" - mixmastamyk

Perceived Increase in Complexity and Bloat

A significant portion of the discussion centers on the idea that Python, as a language and an ecosystem, has become more complex and bloated over time. This is attributed to the vast array of libraries, frameworks, and evolving language features.

  • "Now it strikes fear into my heart when I encounter something largish written in Python because it usually means "super slow bloated researchy untyped ai/math code that's a nightmare to work with"" - umvi
  • "The modern Python script feels more like loosely combining a temperamental set of today’s latest library apis, and then dealing with the fallout. Sometimes parallels the Node experience." - nighthawk454
  • "Now…? Electron, a few languages, a few frameworks, and a few dozen libraries. Just to start. Bizzare." - nighthawk454
  • "But then of course simplicity only takes you that far, and its logically impossible to have a simple clean interface to problems that require several variables tweaked. Python had to evolve and is now having the same bloat and complications that plague any other language." - kamaal
  • "The language has become extremely complex as it prioritizes the needs of a few teams writing millions of lines over millions of developers each writing relatively few lines." - pansa2
  • "Type hints aren’t a single addition - with every release they get more complex. It wouldn’t surprise me if the language included 20+ typing-related PEPs by now. The other obvious example of complexity is pattern matching. The feature is very complex, especially how it breaks established rules of the language." - pansa2
  • "My personal opinion is it is a garbage language. For the inconsistencies and the short comings and the stuff it glosses over and absurdities like having the default queue be thread safe (sacrificing performance)." - fnord77

The Role and Impact of Libraries and Ecosystem

The discussion highlights how Python's reliance on a vast ecosystem of libraries has fundamentally changed how it's used, sometimes leading to unexpected or over-engineered solutions for what were once basic tasks.

  • "I think a lot of it is things have shifted away from the raw language. Less and less you’re dealing with Python, and more an assortment of libraries or frameworks. Pandas, numpy, torch, fastapi, …, and a dozen others." - nighthawk454
  • "Libraries can overtake aspects of a language for better and worse. Ruby seemed really tied to Rails and that was great for it as an example." - kev009
  • "Ha, Pandas just to parse a website is a bit extra, I’d say. But yeah, it’s weird that you need libraries and api endpoints to do basic tasks these days." - nighthawk454
  • "And you’re right. It’s not fun anymore. It feels more like a pseudolanguage for expressing tensors now, because of the influx." - b33j0r
  • "And then you find out that Nim people still rely on Nimpy, Rust people on PyO3, and even Julia people on PyCall or PyPlot. Yeah, no reason to use Python anymore, except by calling Python from your awesome language." - wolvesechoes

The "Disaster" of Python Packaging and Dependency Management

Packaging and dependency management have been a persistent pain point for Python users, though there's recognition that recent tools like uv are significantly improving the situation.

  • "Packaging has been a nightmare. PyPI has had its challenges. Dependency management is vastly improved thanks to uv - recently, and with a graveyard of tools in its wake." - nighthawk454
  • "The deployment story is a disaster." - kev009 (observing common complaints)
  • "Virtualenvs are not fun anymore even though uv is trying." - WD-42

Debate on Typing and Dynamic vs. Static Languages

A significant thread of the conversation revolves around the merits of Python's dynamic typing versus the benefits of static typing found in other languages like Rust or Go. Proponents of static typing feel it leads to more robust and maintainable code, while defenders of Python's approach emphasize its flexibility and argue against the necessity of strict type enforcement for all systems.

  • "Typeless loosy goosy code that passes dictionaries all over the place is just not fun." - WD-42
  • "mypy --strict in CI & don't let dict[str, Any] pass review if the keys are constants, insist on a dataclass or at least a TypedDict." - morningsam
  • "Letting functions take anything as an argument and then just assuming it's a duck with the methods you want is no way to write a robust system." - cherrycherry98
  • "Everyone keeps harping on type safety, but it just doesn't play out in reality. Linux Kernel is incredibly robust, has never been a broken mess, and has basically no type enforcement, as you can cast pointers into other stuff." - ActorNightly
  • "In general, all typing does is move error checking into the compiler/preprocessor instead of testing. And time spent on designing and writing type safe code is almost equivalent to time spent writing tests that serve as an end-to-end contract." - ActorNightly
  • "Yes, as a result of strong development practices, a high skill floor, and where work is done by a small number of people knowledgable in the domain. These things are not mutually exclusive with type checking." - sunrunner
  • "Compile-time type checking can essentially eliminate all need for type-based tests and is able to do it automatically for any code that exists, whereas this has to be opted in when using tests to check types." - sunrunner
  • "Do you write tests for every third-party function that interacts with your code, so that it never fails in runtime after a version bump?" - instig007

The "Not Fun Anymore" Sentiment and Seeking Alternatives

Several users express that Python is "not fun anymore," leading them to explore or switch to other languages. Rust and Go are frequently mentioned as preferred alternatives.

  • "But you’re right. It’s not fun anymore." - b33j0r
  • "I’m exaggerating only in feigned outrage. In my actions, I’ve been coding in rust, go, and zig ever since ChatGPT came out. I think that moment made me value python less." - b33j0r
  • "But damn is it just not fun anymore. Runtime errors are not fun anymore. Runtimes are not fun. Virtualenvs are not fun anymore even though uv is trying. Typeless loosy goosy code that passes dictionaries all over the place is just not fun. Rust ruined it for me. Or maybe I’m just bored." - WD-42
  • "I was hopeful that in the transition from a BDFL-based governance system to a Steering Council, we would see a larger variety of experience and opinions designing the language. Instead, I don't think there has ever been a single scientist, finance worker etc on the Steering Council - it's always software developers, almost always employees of large software companies." - pansa2
  • "If I can't use python, I'll use Ruby. If I can't use Ruby, ill use Perl." (This is a misquote in the original, likely intended satire referencing a quote about Ruby/Perl, but the sentiment of seeking alternatives is present).
  • "Go" - nikolayasdf123
  • "C" - nikolayasdf123
  • "For better or worse, I find Python beautiful. ... Even on HN, indentation reigns king." - aliljet (This is a more positive take, but still within the context of discussing Python's characteristics).

Python's Dominance in AI/ML and its Implications

Python's strong position in the AI and machine learning space is acknowledged, but some users feel this dominance has influenced the language's direction, potentially at the expense of its broader appeal.

  • "I’m happy that python basically took over the role once filled by matlab, and I’m happy that it became the leader in AI dev instead of something worse (probably Java if gpt2 had hit 5-10 years earlier)." - b33j0r
  • "Now it strikes fear into my heart when I encounter something largish written in Python because it usually means "super slow bloated researchy untyped ai/math code that's a nightmare to work with"" - umvi
  • "But then you find out that Nim people still rely on Nimpy, Rust people on PyO3, and even Julia people on PyCall or PyPlot. Yeah, no reason to use Python anymore, except by calling Python from your awesome language. The fact that these awesome Python packages are just wrappers over C/C++ doesn't change much - for some reason people using other languages are not willing to write and maintain wrappers of similar quality, including documentation." - wolvesechoes

Accusations of Bureaucracy and Corporate Influence

A more critical perspective accuses Python's development and community of becoming too bureaucratic and influenced by large corporations, leading to decisions that alienate individual developers or overlook their needs.

  • "Python has always suffered from the overrepresentation of talkers, and the recent draconian "leadership" that consists of the worst people have driven most developers away apart from some failing corporate projects. This video tries to revive the spirit that existed in 2000 before many of those developers sold out Python to corporations and turned utterly evil." - tx5912379
  • "The language has become extremely complex as it prioritizes the needs of a few teams writing millions of lines over millions of developers each writing relatively few lines. The reason is that the design team are all working on these large codebases and, understandably, mostly focused on what makes their own lives easier." - pansa2

Python's Enduring Strengths and Readability

Despite the criticisms, many users still appreciate Python's core strengths, particularly its readability and how it remains a joy for certain types of tasks.

  • "For better or worse, I find Python beautiful. And here's an easter egg for everyone (it comes up in the Documentary too): import this" - aliljet
  • "Even on HN, indentation reigns king." - aliljet
  • "Yeah, nothing has really ever hit the same levels of readability that Python has for me, even if a language like Rust is very well-designed and better in many aspects." - Hamuko
  • "If I'm doing something 10 hours a day, I'd like to feel good while doing it and that's exactly what Python delivers." - wraptile
  • "An incredibly versatile and powerful, yet simple to understand, language." - TheAlchemist
  • "My personal opinion is it is a garbage language." - fnord77 (This is a strong negative opinion, but still an opinion on the language itself).
  • "It still has the most reliable debugger integration of any mainstream language which is my favorite thing about the language in its current state. Debugger >> language -- next most popular language manifesto slogan (i hope)." - breatheoften