Reject modernity
Return to C
Reject tradition
Embrace scratch
You’re the “chaotic evil” guy aren’t you
When everything’s a logic block, nothing will be
Reject modernity
Return to z80 Assembly
amen
Python 3.13 is adding support for removing GIL, via PEP 703
Python is just a pile of dicts/hashtables under the hood. Even the basic
int
type is actually a dict of method names:x = 1; print(dir(x)) ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', ... ]
PS: I will never get away from the fact that user-space memory addresses are also basically keys into the page table, so it is hashtables all the way down - you cannot escape them.
audible C++ programmer disgust
This is why I decided to learn Nix. I built dev environment flakes that provision the devshell for any language I intend to use. I actually won’t even bother unless I can get something working reliably with Nix. ;)
For example, here’s a flake that I use for my Python dev environment to provide all needed wiring and setup for an interactive Python web scraper I built:
{ description = "Interactive Web Scraper"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs?ref=nixpkgs-unstable"; utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, utils }: utils.lib.eachSystem ["x86_64-linux"] (system: let pkgs = import nixpkgs { system = system; }; in rec { packages = { pyinputplus = pkgs.python3Packages.buildPythonPackage rec { pname = "pyinputplus"; version = "0.2.12"; src = pkgs.fetchPypi { inherit pname version; sha256 = "sha256-YOUR_SHA256_HASH_HERE"; }; }; pythonEnv = pkgs.python3.withPackages (ps: with ps; [ webdriver-manager openpyxl pandas requests beautifulsoup4 websocket-client selenium packages.pyinputplus ]); }; devShell = pkgs.mkShell { buildInputs = [ pkgs.chromium pkgs.undetected-chromedriver packages.pythonEnv ]; shellHook = '' export PATH=${pkgs.chromium}/bin:${pkgs.undetected-chromedriver}/bin:$PATH ''; }; }); }
I’ve been intrigued by Nix for quite a while. I will learn it as well.
It feels like magic. I think of it as the glue that makes almost all of my software work together seamlessly. I can’t wait to use it for one-click deployments of my software on a server or high-availability cluster.
This a much better done meme
The other one before makes zero sense
Good meme. However I do think that most people starting out will not really have to deal with any of those issues in the first few years apart from maybe the pip/venv/poetry/etc choice. But whatever they’ll pick it’ll probably work well enough for whatever they’re doing. When I started out I didn’t use any external libraries apart from pygame (which probably came pre-installed). I programmed in the IDLE editor that came with Python. I have no idea how I functioned that way, but I learnt a lot and hat plenty of fun.
What about the issue where people try to install new version of python sometimes try to uninstall the “old” pre-installed version on a linux system and thus borking the whole s
Definitely not me, anymore
I may or may not have done this haha. I’m a threat to any working piece of software, just enough knowledge to be able to break shit and too little knowledge to avoid breaking shit. I think after all these years I’ve mostly learnt my lesson though. The package manager is the boss, and if I don’t like it I have to work around it without upsetting the package manager
Man, the variable scoping thing is insidious. It will never not be weird to me that
if
s and loops don’t actually create a new scope.And then you try to do a closure and it tells you you didn’t import anything yet.
I find Python easy to just code a prototype with. But I find Rust easier to get right.
This is basically what I’ve been telling people for years. Prototype in Python to get the concepts down, then when you’re serious about the project, write it in a serious language.
Sooo… switch to Perl then? 😜
Of course! Why didn’t I think about that? Maybe I could also switch some other parts of the code to Lisp?
Maybe some Lua, as a treat?
I feel offended by you somehow equalizing perl and lisp
S-s-s
S-s-s
S-s-s
S-s-s-sure!