python is a trash programming language, but, aren’t they all?

Show thread

ehhh the language is fine but the dependency/environment nightmare is real

Show thread

@ashfurrow I wish they didn't try to model it on ruby, nodejs and rust.

@ashfurrow it's better than Perl or PHP, but I really wish Ocaml had gotten more popular.

@ashfurrow nix made python development pretty bearable for me

i still don't like writing it though

@ashfurrow The language is incredibly naïve, the implementation was subpar 20 years ago and now it's just embarrassing (fucking GIL!). But it's easy to write mostly-working pseudocode in, and it's got so many libraries written in C.

@mdhughes @ashfurrow it gets shit done actually. Some of its implementation weirdness (refcounting) is actually great in the context of Array crunching.

@holger @ashfurrow I like refcounting, [I'm an Obj-C nerd for life]. But then you get into the C API and it's a mess, much worse than if they just put Boehm GC in. And the loss of all but 1 core is awful.

Julia's eating Python's lunch on the scientific side, and I try to do everything I can now in Scheme or JS, which is also 1-core but at least the compiler doesn't suck (20-1000x faster).

@ashfurrow To be fair, that is exactly what I would expect when I multiply a string.

@stolas @ashfurrow A more correct behaviour would _obviously_ be to multiply the individual bytes of the string and attempt to cast the result (after resolving overflows) as UTF8 and throw an encoding error if it fails.
:bloblamp:

@cathal @ashfurrow That's so precise that there's a horror story from real life somewhere in there.

@stolas @ashfurrow I so wish I had something that awesome to recount but nah, just a lurid imagination for bad programming design :p

@ashfurrow re: dependencies, I just use pipenv and haven't had any problems (although, I never develop on Windows.)

@ashfurrow That's just string concatenation being a monoid! If you were willing to accept the overloaded + in the first place…

Now, the real question is whether you allow division. String → Int → Maybe String…

Sign in to participate in the conversation
Mastodon for Tech Folks

This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either!