Malbolge
Python managed to turn me away before I wrote a single line of code.
Running an already functional project took me nearly two hours and three separate tutorials.
What’s so difficult?
import project as p p.run()
Hmm, I follow the package’s readme and only get invalid command errors.
Gotta install the pip dependencies.
Oh but first you need to create a venv or everything will be global. Why isn’t that local by default like with npm? Hell if I know!
Ah but before that I need to install the RIGHT version of Python. The one I already have likely won’t do. And that takes AGES.
Oh but even then still just tells me the command is invalid. Ah, great, I live CLIs. Now I’ve gotta figure out PATH variables again and add python there. Also pip maybe?
Now I can follow the readme’s instructions! Assuming I remember to manually open the venv first.
But it only gives me errors about missing pieces. Ugh. But I thought I installed the pip dependencies!
Oh, but turns out there’s something about a text file full of another different set of dependencies that I need to explicitly mention via CLI or they won’t be installed. And the readme didn’t mention that, because that’s apparently “obvious”. No it’s not; I’m just a front-end developer trying to run the darn thing.
Okay. Now it runs. Finally. But there’s a weird error. There might be something wrong with my .env file. Maybe if I add a print statement to debug… Why isn’t it showing up?
Oooh, I need to fully rebuild if I want it to show up, and the hot reload functionality that you can pass a command line argument for doesn’t work… Cool cool cool cool.
yeah, all that setup sucks even after being writing python for years.
Nowadays I’ve been running every project with
uv
and it’s a much better and faster experience, usually in 3 steps: 1. initialize, 2. add dependencies, 3. run project:# if the project doesn't already have a pyproject.toml with dependencies, initialize it # uv will also install the right interpreter if not present: uv init --python 3.13 # anything you would install with pip, use uv add: uv add dep1 dep2 # run the project / script uv run main.py
Then in future runs (as long as you have the pyproject.toml), you can just do
uv run main.py
(shorthand touv run python main.py
), even when there’s no venv created. No more activating virtual envs. No more long interpreter installations. No more accidentally messing with system’s packages or the PATH variable. With theuv.lock
that’s also a lot more reliable to reproduce thanrequirements.txt
and similar.This does not reflect my experience with python at all. Except the version thing used to be a thing. Not really any more.
This has way more to do with that specific project being poorly written/not documenting things well than any shortcomings in Python
Yeah package system is a nightmare in python I’m so spoiled if Rust that I find it hard to enjoy another language…
Is that not just the post?
I think they jpeg’ed it up.
Thanks, went over my head. I was thinking they had maybe thought they were on mastodon or something and tried to repost it and were actually on Lemmy.
Is there a term they use for that? Like people used to say retweet… Do they remasta it?
Im not on mastodon too much but i think they call a tweet a toot and a retweet a retoot
Tootché
I think the official therm is to boost a post.
I’ve learned python after CPP… And I can’t #even remember all the cases when I thought “damn, I wish I could’ve just used pointers”
I’ve been in industry for a decade, big tech for over 6 years. And I STILL fucking hate Python. I can write in it, but everything about it just feels wrong
Similar story in our team with 2-15 YoE. We do TS and C# but recently did a good takeover of the API from one of our offers which is in python We all now fucking hate python. The codebase is fine, the language isn’t.
Even our C++ guys won’t touch my C code with all the pointer tricks and unions used for hidden castings. Whimps!
But python has worse problems than lacking pointer. Have you ever copied a piece of code from an external source into a python source? It really can f-ck up everything if one has tabs and the other has spaces.
Or a complier that tells me when I mispell a variable in an assignment or use the wrong type for something.
Might I introduce you to the wonderful language known as Nim? Python-like syntax, compiles to C, C++, and even JS, has mature libraries and good tooling, and some memory safety features built in! And yes, you can use pointers!
Y’all need Qt Creator: C++ for under the hood and Javascript for the UI. Virtually nonexistent base of coders who can do both competently and if you’re not careful you end up moving to Finland because of it.
I worked a bit on the previous version of Neptune UI https://doc.qt.io/archives/neptune3ui/ wit QML and I worked mostly with integration of https://doc.qt.io/QtApplicationManager/ into different cars. But I stayed in Sweden for that.
I know Qt is cross-platform, but cars? Wow! I only ever used it for shitty Skype clones for Canadian ISPs.
It’s the exposure to those languages that reassures Python developers that Python is superior.
Take nodejs for example. you write js on the backend, js on the front end and you’re convinced that js is all you’ll ever need.
I dont mind Python, in fact I kind of like it. Its easy enough, works fast enough and has a huge community backing. Open up notepad and start typing. The space thing is kinda stupid. I prefer braces and semicolons but apparently new programmers cant remember to use them so Python just got rid of them… not my thing but whatever, I can live with it.
However, I’d never really want to create a large project in it. The dev tools arent there, .net style project management isnt there. I can see how it just becomes a mess if you try to make something that isnt just downloading some data, parsing and importing to somewhere else. Its great for simple stuff. It can do larger stuff - though not as good. It cant do enterprise, performance heavy, commercial stuff.
Pick the right tool. Yeah you can make a website in x86 ASM and you can make embeded systems for the space shuttle in Python. The question is why.
It cant do enterprise, performance heavy, commercial stuff.
It can, I’ve been doing it for almost a decade. I’ve never noticed a lack of dev tools, and I’m not sure why .NET style project management is a prerequisite for creating enterprise applications. Obviously you can write more performant code in other languages, but I’ve found that 90% of the time, python’s performance is good enough.
Agree on picking the right tool for the job though. Most of the time though, unless you’re dealing with an extreme edge case (like writing embedded firmware for the space shuttle), that just means picking the language your team is most comfortable with.
Coding space characters? Fuck no
Where Delphi?
Dead and buried?
he just chillin at the beach
Cobol
💰💰💰💰💰
Let me guess. Are the Java and Python programmers happy after because they leave up their technical debt for someone else to resolve? 🤭
that’s why it’s so addicting. lol
Every time I use python it makes me want to throw my computer through my window. Doesn’t happen with other languages. Pip fucking sucks it seems like every time I want to install dependencies for a project there is one that throws a compilation error when installing it. Like, why does it not try to download the version of the package that works with my version of python?? It doesn’t even tell me why it failed!!!
Yeah that’s annoying but it’s a short-term problem. Python just recently cleaned up some long-standing issues that broke backwards compatibility in packaging (for certain things). Most public modules that broke made trivial changes to fix the problems (once they learned about them) and life went on.
However, for some fucking reason a whole bunch of dependencies related to AI are dragging their feet and taking forever to fix their shit. Insisting that everyone “just use Python 3.10” and it drives me nuts too.
This problem started to become a real thing almost two years ago (so they had plenty of warning and time to fix things) and yet here we are with still a handful of core dependencies that won’t install for things like Stable Diffusion, Flux, and various LLM stuff because they’re dragging their feet.
I blame corporate culture: Enterprises hate upgrading their shit and they’re as slow as glaciers sometimes. There’s probably tooling at Nvidia, for example, that needs a ton of work for Torch to work with new versions of Python and since all their documentation already was written for running on Python 3.10 (and Ubuntu 22.04 LTS) they’ve created a lot of work for themselves.
Any day now they’ll finally finish fixing all these little dependencies and then we’ll have another two years of ease before the problem rises again with Python 3.14 and it’s massive GIL-free improvements that require big changes in code to actually take advantage of them.
Yup. The fact that the “proper” method to develop is to work in a sandboxed environment tells me everything I need to know. I feel like the only thing you learn from python is how to fight python instead of anything about programming. Personally, I think we need to stop recommending it as a first language.
So… The proper way is… Global installs? What are you saying here?
Just use poetry or something, install the environment in your project directory and you’re done. The versions of your dependencies are fixed, so are consistent across installs, and because it’s sandbox you aren’t polluting your system, and vice versa.
And if you’re using a language that installs the dependencies localy, guess what? That’s what you’re already doing, only with less security.
There’s another one?! What’s wrong with venv, pipenv, virtualenv, flit, conda, etc. I just want to write code, not fight with silly tools. It’s a scripting language after all.
a) poetry came out 6 years ago, though UV is the new kid on the block, it’s easier to complain about that if you want to.
b) so, you are fighting with silly tools, but don’t want newer, hopefully better tools? If you aren’t fighting with silly tools, then more options is bad? I guess it’s a bit confusing for beginners?
c) how are you fighting with the tools? This is a genuine question, I don’t remember the last time that the tooling caused a problem and I’ve been working professionally with python for the last 5 years, on both small and larger projects, first I used conda, and in the last few years poetry. In poetry, it’s two commands to create a new environment, and install everything. The only time I had a problem was with an internal library that had misconfigured dependencies.
d) here’s the rundown on the dependency tools:
- Virtualenv is one of the oldest, from the python 2 times
- venv is just a subset of Virtualenv that was integrated into the standard library to have venvs available without external tools
- conda is not python specific, it also does R, Ruby, some DB stuff, etc… It tries for maximum compatibility with various systems. This is apparently very useful in bioinformatics which use very disparate tools.
- Pipenv is an attempt to implement ruby-like dependencies. I don’t know much about it, it’s not used much.
- flit is lightweight, for publishing packages only
-poetry is what I am currently using. Simple toml based dependencies. Installs the packages wherever your want. Since it uses toml, it’s compatible with other tools like dependi to check for updates. It’s got a pretty good set of commands that you don’t need to remember because
init
andupdate
is what you need 90% of the time. Can also publish packages, and has separate dev/prod dependency groups. - uv is the new one, written in rust (of course) and very fast. Also installs python versions, meaning you no longer need a separate tool/docker images to manage your python versions. No multiple dependency groups yet. Aiming to become the only tool you need to do anything in python. Still <v1.0 and not feature complete.
- pdm is more of a project manager, that allows for plug ins, scripts, and also no virtual envs if you want. Does a lot of things similar to poetry.
I mean, every one if these has a reason for existing, and is an improvement of the previous one (pdm started as a personal project, let people have their fun) . It’s also a good few years between them, so it’s not like they’re spamming them.
My bad. I personally can’t stand Python, and am just a python hater. If I used python professionally as a general purpose language, I would probably want all the tools. Though… I never needed a virtual environment in another language.
In the codebases I work in, python is occasionally used as a cross-platform scripting language, which is where its bread and butter should be. Never more than 200 lines. Every time I crack open a codebase, if there is any python, it doesn’t work. That will be the thing I have to fight before I get to work on the real problem. If it has been a year, it’s broken. If it’s a Linux project, you’re better off using Bash if you want it to run a year from now. On Windows, well…
Did… Did someone on the Internet admit to not being 100% correct?!
What is happening right now? Is it the apocalypse? the end times?
Has great Cthulhu risen, neath the dark waves of the abyss to tear mind from-
Ok, a bit dramatic, but when was the last time you saw anyone give an inch in an online argument?
Anywho, thanks for the context, though I think the idea of python as a “scripting language” is a bit overblown.
I felt bad you typed all that out when I’m just a python hater who isn’t able to argue in good faith.
i still do not fathom what on earth you people are doing to get these issues.
The worst annoyances i’ve had with python is just running the correct commands to install stuff, which is no different from working with git.
Rust:
Missing a fursuit or cat ears and a tail plug
Or fox ears :3
Foxgirls are absolutely valid sorry for this erasure
I prefer cat ears and tail plug. Im not a furry, I’m a catgirl :3
(No problem with furrries tho)
Catgirls are cute and I will pet any who will allow
Mrrp :3
(I wan headpats)
pat pat pat happy girl!
:333
Jesus Christ! No thanks! I can’t imagine improperly placing cabinet knobs on closet doors like that
Fun fact: the negative space in the pattern of the door is a cross. The 2 squares below it (out of frame) make an open Bible too.
Learned that on a field trip to a door factory where I nearly got left behind because I was looking at a very loud door cutting machine.I already hate that style of door but the knobs make it even worse
Pink Fedora logo is class
Is the archinstall script not working?
Idk, it was some image I found on Unix socks
You can’t see the C one because it went by too quickly.
PHP
That’s PCP
dead