14
hitko
5y

Python is a fucking joke. "Readability" disguised as 150+ magic methods and values. Virtual environments to hide shitty dependency management. Strings that may or may not act as comments. No correlation between package and module names - install Pillow; import PIL. **kwargs instead of options=dict(), because why separate function arguments from arbitrary extra data? And finally, the only way to have tkinter on Windows is to install IDLE, so that some fucktard can stick their shitty app right up yours ...

Comments
  • 2
    I think ruby/rails is far worst in the magical sense. It's fucking scary, alas you do produce web apps at max speed
  • 3
    @cobolplz The scariest thing for me is still this, especially if it's in some third-party library:
  • 0
    Pillow is an exception as far as naming goes. PIL was deprecated, and it was continued as Pillow. To remain backwards compatible they retained the PIL import name.
  • 1
    Yup, I never thought I'd say this, but I'm happier with javascript
  • 0
    @620hun There are other similar cases. Install python-opencv; import cv2. Install python-dateutil; import dateutil. A significant portion of packages on PyPi actually do this, not only exceptions like PIL.
  • 0
    @hitko then something's fucked up over on your end, try using pip and not your distro's package manager
  • 0
    @Parzi Emmm no, if you look up packages on PyPi (where pip downloads from), the official documentation states "pip install opencv-python" and "import cv2" (same goes for other aforementioned packages).

    Python packages are essentially just structured zip archives; installer (pip, easy install, or system package manager) doesn't care where the package has been downloaded from, or under what name - if there's a folder named "cv2" inside the package, installer will place it in "site-packages/cv2", no fucks given.
Add Comment