if you depend on more, you are capping what you can build to only what you can manage to get working and integrate, plus you also lose control over the code; for me personally, it's a lot easier to write a complicated algorithm, than it is to figure out a complex build system for a random library in the wild (with few exceptions like miniaudio); and it's especially worth it, because when i understand the problem, i can usually define a way better api for my usecase than any library writer can
They tried, sort of, in 2002 they acquired 3DLabs. Wish they kept making MP3 players though, but that market collapsed in on itself with the rise of smartphones. A shame, for a few years I had both a smartphone (Galaxy A) and an MP3 player (ipod touch, but I miss my mini/nano) separately. I really wouldn't mind a dedicated music player again.
More people who are not traditionally programmers are now writing code with AI assistance (great!) but this crowd seems unlikely to pick up Clojure, Haskell, OCaml etc... so I agree this is a development in favor of mainstream languages.
Imo there's been a big disconnect between people who view code as work product vs those who view it as a liability/maintenance burden. AI is going to cause an explosion in the production of code, I'm not sure it's going to have the same effect on long term maintenance and I don't think rewriting the whole thing with ai again is a solution.
Even for small projects the optimisation criteria is different if the human's role in the equation shifts from authoring to primarily a reviewing based one.
> How is Blip different to nearby sharing like AirDrop?
Apple’s “AirDrop” and Google’s “Nearby Share” can be really handy. However, they aren’t compatible with each other and require devices to be physically next to each other. They are also unreliable when transferring large files, and will often lose your progress.
> Blip doesn’t need devices to be nearby, so it’s much more reliable. Blip works wherever your internet connected devices are in the world, and works regardless of what kind of device you own. You can transfer from Android to Mac, Windows to iPhone, iPad to Android—you name it!
I write my high level dependencies by hand in a "requirements.in" for applications, and in "pyproject.toml" for libraries.
A simple "requirements.in" I did over this weekend was a single dependency:
miniboss >=0.4, <0.5
And used pip-compile to pin all transitive dependencies:
pip-compile -o requirements.txt requirements.in
This generated a "requirements.txt" with 14 dependencies with pinned versions:
attrs==25.3.0
...13 more dependencies
It's then only a matter of running "pip install -r requirements.txt" in the venv for my "application" (wrapper scripts for Docker).
I've largely settled on this scheme for work and person projects because it's simple (only dev dependency is pip-tools or uv), and it doesn't tie me to a particular Python project management tool (pipenv, pdm, poetry, etc.).