this post was submitted on 16 Sep 2024
227 points (83.7% liked)

Programmer Humor

19827 readers
1004 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 16 points 3 months ago (6 children)

For all of those, Lisp is the more logical choice. Plus, whitespace as syntax is the worst possible design decision.

[–] [email protected] 24 points 3 months ago (1 children)
[–] [email protected] 11 points 3 months ago

Still easier to refactor than Python. ;-)

[–] MajorHavoc 14 points 3 months ago* (last edited 3 months ago) (2 children)

Lisp is the more logical choice.

Relevant XKCD. Python has replaced Perl, but things have otherwise changed quite little.

[–] [email protected] 6 points 3 months ago* (last edited 3 months ago) (3 children)

Perl is the only language that looks just as incomprehensible before and after a rot13 transformation.

Python on the other hand is the only language that will cause your application to stop working because you mixed up tabs and spaces, even though it looks perfectly fine on your scr.

And lisp is hard to say if you have one.

Edit: aa -> after a

[–] [email protected] 5 points 3 months ago

It is absolutely fine to mix tabs and spaces in Python, as long as you are consistent about it. It's not recommended though, as it's easy to mess up if you're not paying attention. Most IDE's will convert tabs to spaces anyway so it's a bit of a non-issue.

[–] MajorHavoc 2 points 3 months ago

Perl is the only language that looks just as incomprehensible before and aa rot13 transformation.

Lol. You're not wrong.

[–] [email protected] 2 points 3 months ago

Perl is the only language that looks just as incomprehensible before and after a rot13 transformation.

APL would like a word, though I imagine ROT13 on APL source code might actually be horrific.

[–] [email protected] 4 points 3 months ago (1 children)

I still write more Perl than Python these days.

[–] MajorHavoc 2 points 3 months ago (1 children)

I'm kinda jealous. I don't miss maintaining production Perl code, but Perl was more fun to code in.

[–] [email protected] 3 points 3 months ago

Feel free, it’s still out there!

[–] Scoopta 9 points 3 months ago (1 children)

That syntax decision is single handedly why I avoid python if possible

[–] [email protected] 9 points 3 months ago (1 children)

For me it's dependency hell. Almost as bad as npm.

[–] Scoopta 5 points 3 months ago (2 children)

...is it truly that bad? npm is the reason I don't even install software based on node on my machines... python doesn't seem nearly as bad by comparison? (I run it, just don't like to write it) Maybe it's worse than I realize

[–] [email protected] 5 points 3 months ago (1 children)

I haven't used npm. But pip is horrible. Some times I've used a well-known library that only works on linux, but there is no mention of it whatsoever, and it installs without problem. The error only happens at run-time (not even when importing!) and says nothing about platform-dependency. I only learned that it was a linux-only library because I happened to try running it on a Linux machine to see if it worked.

Many times you have to set up your environment a specific way (environment variables, PATH, install dependencies outside of pip) for it to work, and there's no mention of it anywhere. Sometimes you install the library with pip, sometimes with apt, and there is no way to know which one. And sometimes the library is both in apt and pip, but the pip one does nothing.

Furthermore, good luck importing a library. You might have installed it with "pip install my-library" but to import it you have to do "import MyAwesomeLibrary3". And pip won't tell you about that.

[–] Scoopta 3 points 3 months ago

Wow that sounds like a headache, even though I've avoided python for other reasons that sounds like an additional reason to do so. Also the reason I avoid npm isn't for a technical reason like you've outlined here. It's because even installing npm requires me to install an entire other Linux distros worth of packages. Why do I need to install like 100+ new packages just to use a freaking package manager????

[–] [email protected] 3 points 3 months ago* (last edited 3 months ago)

Not as bad. But if a bigger tool like Paperplane doesn't run after an update, it's likely some changed dependency in python.

[–] [email protected] 3 points 3 months ago* (last edited 3 months ago) (1 children)

You say that, then use a language that allows you to do this (it's not lisp)

if (foo);
{
  bar();
}
[–] [email protected] 4 points 3 months ago* (last edited 3 months ago)

You can make embarrassing mistakes in virtually any programming language that's not too esoteric.

When I still used Python for prototyping (today, I usually use Go for that), it happened much too often that I did this:

if foo:
    bar()
   foobar() # syntax error

In Lisp, however, both errors are much harder to make (not even considering GNU Emacs's superb auto-indentation - which is what most Lispers use these days, as far as I know):

(when foo)  ;; <- obvious!
    (bar))
(when foo
    (bar)
          (foobar)  ;; <- still valid
(quux))  ;; <- also still valid
[–] [email protected] 3 points 3 months ago

I've had very few issues with whitespace in my decade or so of using python, especially since git and IDEs do a lot to standardize it. I'm a Python simp, tho

[–] [email protected] 2 points 3 months ago

I mean, their goal was readability, and at least they're trying new things.