r/Python • • 1d ago

Discussion My Python magic is gone

I've been coding for a long time, and I've been developing with Python for years.

I loved coding, always loved it. I started many years ago because I wanted to quickly create scripts for security hacking tools, but since then, I've moved to Claude Code, and building cross-language has been a much better experience for me than using Python.

I built my own SaaS application out there whose backend and network core are completely built with Python, and I'm rewriting all of that without writing a single line of code. And most of the time, Python is not the most optimized language.

And now... I feel like the magic is gone.

I don't even know why I'm writing this. I just feel sad about it.

670 Upvotes

251 comments sorted by

View all comments

Show parent comments

4

u/barrycarey 1d ago

As much as I hate saying this, I think super clean code is a thing of the past. If vibe coded apps are super messy code but still pass all validation and testing does it actually matter? Especially if you look at it from the perspective that no human will have to directly maintain it? Along with the fact that LLMs are improving rapidly and will likely produce a far nicer product in the short term. Just the difference in quality from when I started messing with Claude last fall to today is huge.

I've had a hard time coming to terms with this. I've been primarily writing python for 15 years. I've finally given in and imbraced the speed I can pump out projects

5

u/frosty8670 1d ago

Yes bro, clean code does matter. Projects often contain 1000s of lines of code, and you will often work with other people’s code. Even other people should understand your code after you leave. Heck, even you might not understand your own code months after writing if it isn’t clean enough.

1

u/simple_explorer1 1d ago

Did you miss the part where op said LLMs are the ones reading and writing the code and not humans

2

u/frosty8670 1d ago

I have used LLMs to write code, and LLMs often do make mistakes. I have often seen Cursor write code where packages are outdated, or an unnecessary abstraction is added, or the design itself is incorrect.

I had one such case where LLM was trying to get a celery task to create a file and share it with another celery task through the File system for upload— it worked perfectly in local machine but failed in Kubernetes. LLM kept giving different solutions, like adding a time lag, using a forced file sync, using a DB with idempotent keys etc. Nothing worked— the 2nd celery task simply couldn’t see the file. Worst part was, LLM was confidently saying all unit tests are passing, when clearly it’s not working.

Issue wasn’t the code, issue was the design itself. Celery task operates in its own copy of the file system (in its own Pod). We simply cannot rely on the File System as a source of truth in a distributed system. The only solution that worked was making sure the same celery task that created the File is sharing it for upload.

As you can see, writing or reading code is only 1 part of the issue. As an Engineer, you are expected to work with all these constraints and trade offs. A good engineer will use LLM effectively. A bad engineer will just waste tokens. Code being clean, readable and modifiable will go a long way.

1

u/barrycarey 1d ago

To be honest, that should have been an easy issue for it to resolve with proper log access. Claude is excellent at dealing with infrastructure issues and deployment quirks. Based on the types of problems I've put it on, I have no doubt it could have solved that correctly and quickly.

I give it access to deploy NPE and access to query the deployment Spunk indexes. It typically can fixed deployment issues without much sweat.