I see we don't have a Python channel, and maybe don't need a dedicated one... but I was so jazzed to see PEP 751 get approved and pave the way for a standard lockfile format. I figure we probably have enough Pythonistas around that I'm not the only one. Thanks Brett! :tada: (explicitly not tagging him even though I know he hangs around here)
(Even as a user, this feels even sweeter after seeing PEP 665 rejected.)
+1 on the Python channel idea :light_bulb:
Never got into python. About 25 years ago my brother got me a python programming on windows book as a gift. I tried to write a script and for some reason couldn't get it to work with COM. I picked up a ruby book and it "just worked" so I wrote the script in ruby. After that I was on the ruby train for a long time. I guess I still am because anytime I need to write a script or whatever I reach for ruby.
Those first experiences count for sure :thumbs_up:
I made the #rust and #terminals-and-shells-and-tuis-oh-my channels but they don't seem to have exploded in popularity, haha
I have some internal heuristic that guides when I flip from bash/fish to Python for scripting, never really reached for Ruby for that case. The threshold for flipping to Python keeps getting lower for me (so much love to inline script metadata.
@Ron Waldon-Howe just noticed the tui one earlier today, good stuff :thumbs_up:
valon-loshaj said:
+1 on the Python channel idea :light_bulb:
You know, why not... #python
I used to reach for node.js for scripting, but got fed up with the fact that I would somehow always end up with 1,800 items in my node_modules :grimacing:
Python is my go-to nowadays
One nice thing about scripting languages like JavaScript, Python, Ruby, etc is that they tend to have fairly rich standard libraries, so for many use cases you can get quite far without needing any third-party dependencies at all
I would have given python more of a chance if it were easier to install. But for some reason I've always had trouble getting python projects started.
valon-loshaj said:
I used to reach for node.js for scripting, but got fed up with the fact that I would somehow always end up with 1,800 items in my node_modules :grimacing:
Python is my go-to nowadays
My go to is Deno nowadays. Usually need almost no extra dependencies
AJ Kerrigan said:
I see we don't have a Python channel, and maybe don't need a dedicated one... but I was so jazzed to see PEP 751 get approved and pave the way for a standard lockfile format. I figure we probably have enough Pythonistas around that I'm not the only one. Thanks Brett! :tada: (explicitly not tagging him even though I know he hangs around here)
(Even as a user, this feels even sweeter after seeing PEP 665 rejected.)
Glad you're excited about it! (And it's always fine to tag me.)
AJ Kerrigan said:
I have some internal heuristic that guides when I flip from bash/fish to Python for scripting, never really reached for Ruby for that case. The threshold for flipping to Python keeps getting lower for me (so much love to inline script metadata.
Yes, I do hope inline script metadata gets more people using Python for one-off scripts.
Nabeel S said:
I would have given python more of a chance if it were easier to install. But for some reason I've always had trouble getting python projects started.
Have you looked at -- in no particular order -- https://pdm-project.org/ , https://hatch.pypa.io/ , or https://docs.astral.sh/uv/ , all of which will install Python on-demand from https://github.com/astral-sh/python-build-standalone ?
One thing I like about ruby over python is that it's much easier to write one liners so you can just execute them directly. Ruby also has really good and idiomatic method chaining and built in support for CSV, JSON and YAML processing so it really comes in handy
There are lots of resources , there is even a book
https://learnbyexample.github.io/learn_ruby_oneliners/
AJ Kerrigan said:
Those first experiences count for sure :thumbs_up:
Python was technically my first language because it’s the one I got working on my parent’s OS 9 iMac. But when I visited colleges (1999-2000) and told a CS professor that I was teaching myself Python he said “never heard of it” and I felt deflated.
Took me 15 years to get back to it (via C++, Java, PHP, Perl, JavaScript, Ruby, and a bunch of side languages). Too bad no one told me until later that CS professors are some of the least informed about industry trends.
Andrew O'Brien said:
AJ Kerrigan said:
Those first experiences count for sure :thumbs_up:
Python was technically my first language because it’s the one I got working on my parent’s OS 9 iMac. But when I visited colleges (1999-2000) and told a CS professor that I was teaching myself Python he said “never heard of it” and I felt deflated.
Took me 15 years to get back to it (via C++, Java, PHP, Perl, JavaScript, Ruby, and a bunch of side languages). Too bad no one told me until later that CS professors are some of the least informed about industry trends.
That does sound deflating :(. I'm sure when you got back to it though you had a ton of useful context that made the re-entry smoother at least. I also had a couple Python entry points, initially doing text processing / parsing stuff as a more readable alternative to Perl. All Python 2. Coming back for a second wave it was right into devopsy stuff, where I was different and so was Python (in the "you _should_ be using Python 3 but probably aren't yet" time frame :laughing: ).
AJ Kerrigan said:
I'm sure when you got back to it though you had a ton of useful context that made the re-entry smoother at least.
Yeah, actually for years I was looking at Python web programming from a Ruby PoV and thinking "okay, this is fine, but why wouldn't I use Ruby for this?" Around the mid-'10s I realized not only that Python could do a lot more than web, but that I had developed a restrained style of Ruby as a defense against 8 years of scars that ultimately was "Python with end
s". (The little metaprogramming I still did could be handled by decorators and context managers, which also happened to cleanly divide into "compile time" vs. "run time" metaprogramming.)
Also, the F100 I worked for had their own python
build that compiled in all of their proprietary libraries, which gave me access to a whole new world that had previously been hidden behind nasty XML RPC services that were meant to be a fallback for anyone who wasn't using the blessed C++ or Python tools. That's what really pulled me in.
Man I just loved building DSLs with ruby. It really is a magical language. I imagine lisp devs feel the same way about their language. Being able to shape the language to your whim gives me such joy.
Recently just for LULz I decided to write a plain old rack app, no framework or anything. For some weird reason I decided it would be functional as possible so I made a decision to minimize the use of classes. I also chose to limit my use of lambdas just to challenge myself. Turned out to be a super easy, barely an inconvenience!
My code ended up being a bunch of modules which acted as namespaces and all module level functions. The routing table was just a hash, if the path wasn't in the hash the router tried to guess the module to use by using the path of the request and trying to match it up to defined modules. If it could find a match it put it in the hash to memoize the route.
The core was file with less than 100 lines of code including blank lines and comments and such. There were a couple of other files in there to handle things like config, middleware loading etc but honestly altogether a couple of hundred lines at most and all done in an evening of watching youtube videos while coding.
I doubt I am going to anything with it but as a bit of amusement it was amazing.
I am thinking about writing something in ruby again and I guess the default is rails but I might fool around with roda because I think I can do similar things when not put in the box rails puts you in.
Tim Uckun said:
Recently just for LULz I decided to write a plain old rack app, no framework or anything. For some weird reason I decided it would be functional as possible so I made a decision to minimize the use of classes. I also chose to limit my use of lambdas just to challenge myself. Turned out to be a super easy, barely an inconvenience!
I loved Rack so much, but was always frustrated that most of the Rails devs I worked with had never bothered to look into it and preferred to use Rails-specific middleware type things (filters? been awhile).
So simple, yet so powerful. And so many useful and truly modular components available.
I know it was inspired by WSGI, but even having been in Django and FastAPI for 2 years I don't find myself touching that level (or I guess ASGI now) very often.
@Andrew O'Brien On the one hand Rails is often frustrating because it's so opinionated and huge. On the other hand you will eventually need all that it offers things like mailers, cache, background jobs, and of course the mountain of security related code in there.
Roda seems like a good compromise, bigger than rack and sinatra but fast and lightweight. You still have to hand roll a bunch of stuff though because there isn't an out of the box solution for configuration, middleware management, mailing, etc.
I left out the discussion about the ORM. AR is pretty amazing and Sequel is also great but honestly neither one of them works the way I want them to work. I want a more repository based approach.
FYI the latest release of pip has experimental support to generate a lock file.
It feels odd for this to be so late given the Executive Order for SBOMs, etc
I figured this was standard in any government and government-adjacent technology stack by now
Ron Waldon-Howe said:
It feels odd for this to be so late given the Executive Order for SBOMs, etc
I figured this was standard in any government and government-adjacent technology stack by now
Nothing previously prevented you from shipping SBOMs (although I was just PEP delegate for standardizing where to put SBOMs in Python wheels). And I don't think anything mandates e.g. hashes for files or anything. Plus you could do a decent chunk of this sort of thing with requirements.txt
files if you had them include stuff like hashes.
Spec is now up! https://packaging.python.org/en/latest/specifications/pylock-toml/
Last updated: Jun 28 2025 at 11:36 UTC