If I google something simple I get 100 junk sites of garbage (GeeksForGeeks, W3Schools, etc), a bunch of AI-generated crap, a bunch of archaic out-of-date stuff, the official documentation which is a wall of dense text, some tutorials that mention the basics, a bunch of shitty bootcamp blogspam (they make you write blog posts about crap to get your brand out there, you know), some stackexchange posts with twenty different answers from 2010, etc. And I'm thinking of, like, Python here, cause that's what was pissing me off this week. God help you if what you're looking for is made by Apple.
Sure we're using AI to look up documentation now but that should never have been necessary. Just like now we use AI to google things because google is so shitty. It's not that AI is great, it's that search engines and documentation are more dogshit than ever and AI is a bandaid.
also it is amazing to me that shells still exist in more-or-less the same form. dear god can I just get a terminal that runs something like Python directly?
I do have this problem as well, I've just started a job with Ruby and it took too many searches until I could find the official docs for some kind of syntax.
For Python I feel it's easy to find stdlib docs, but can be hard to find some specific things about the language itself in the official docs - sometimes it's too technical and I wish there was a more pragmatic middle ground.
the other day, the example that made this top-of-mind, was looking up the python string formatting options. Google found https://docs.python.org/3/library/string.html which is a giant wall of text that I should not have to read all of just to find a reference. Plus it has the fucking formal grammar--who cares!? I just want a lookup table. But this is my experience every time I try to do anything. I always end up going back to https://learnxinyminutes.com/python/ because at least it just lists all the information I want! Of course if I programmed Python every day, which I haven't in a while, then a lot of this would be preloaded in my mind... but seriously, just make a damn reference, it's not hard. Python seems to constantly conflate "full technical specification" with "quick reference materials". Which, fine, if time and energy were no limitations, would be equivalent. But sometimes you just want to know the answer to a simple question in less than 30 minutes.
That’s why we get familiar with the documentation manual and bookmark the web version. Then there’s offline documentation browsers (dash, devdocs,…).
> it is amazing to me that shells still exist in more-or-less the same form
Bash and ZSH are quite good for their use cases (running command). and there are shell like fish that leans more towards interactive use instead of automation. Python’s primitive are not very good for launching commands.
It’s a good idea to take some time to understand how the official language docs are organized so that you can just jump there straight away and bypass all the noise
$ python
Python 3.13.2 (main, Mar 6 2025, 08:26:01) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> help(os)
Same thing happens with so many other things.It's bad because it's missing most of the information it should have. look at https://www.w3schools.com/css/css3_flexbox.asp for instance, it has none of the reference materials it should have about flex, yet it is in the top 5 google results for "css flex". it's completely useless as a reference (or for learning, really). compare to https://developer.mozilla.org/en-US/docs/Learn_web_developme... which actually has the information on it, albeit in an annoying tutorial format.
There's no reason why you can't set Python to be your shell. Here you go:
sudo usermod -s /usr/bin/python $USER
su $USER
You'll likely find that it's not that great as a shell language. Shell languages are made to be primarily used interactively. With Python, you'll have a lot of extra syntax to type all the time. They're also made to glue other programs together. I don't think you'll find it as convenient to use the output of one program as the input of another in Python. Job control will also not be as convenient.i’ve been maining `nushell` for about 1.5 years now, and it’s basically this. a real programming language that is designed as a command runner and output parser. i have a ton of scripts that parse output from common commands like `git` and facilitate a ton of shell-based workflows: https://github.com/covercash2/dotfiles/tree/main/nuenv
But what does this have to do with programming
Is this suggesting that operating a computer via a shell is "programming"
(It's possible to administer a computer running UNIX by using a shell, without knowing any programming languages^1)
"dear god, can i just get a terminal that runs soemthing like Python directly?"
Assuming "dear god" is a figure of speech, who would be the person(s) responsible for delivering on this request
Many years ago, during experimentatioon, I changed the program launched by init to a program other than a Bourne shell by editing one line of init.c
That "shells still exist in more-or-less the same form" is probably one of the reasons I like them so much
1. Assuming one believes the shell is not a programming language
you can also write shell programs in standalone files!
Nearly a million lines of 3-spaced C89, still in heavy perpetual development.
Libraries that change their api surface so much over time that LLMs end up producing code against deprecated versions of the library. More up front thought should be given to the api surface.
Sometimes you come upon a library and it tells you what it does but there is no explanation or context on why you would want to use it
Most websites looks like [1] or [2] which are full of corporate-friendly buzzwords but don't help me understand what they actually do or how they work. To get a concrete understanding I need to go to github and find repos that actually use the product to even understand what it's for.
I actually think it's the right approach for a tech business - your main landing pages should market towards the buyers and then you can have more technical documentation pages for the users. As an example from your comment: https://tailscale.com/kb/1151/what-is-tailscale
Not just programming languages, all sorts of tech product websites really fail to answer the two essential questions "What the heck do you do and what does it cost?" while having lots of fancy words and pictures.
Even Cloudflare. Imagine you're one of the 10,000 people to discover what Cloudflare does today[1]. Can you go to their website and get an answer? Absolutely not. "We make websites, apps, and networks faster and more secure. Our developer platform is the best place to build modern apps and deliver AI initiatives." above the fold on their front page. If you don't already know what Cloudflare does, does this mean anything at all? Not in the slightest.
These are inherent to what you're working on. If you want something more planned, you might enjoy lower-level software or working at a mature company. Device drivers? Car control logic? Startups and consumer product companies are always trying to find the best product-market fit, and you do that by iterating.
Tech is moving too fast to keep up, a project I worked on and haven't touched in months; NPM would make me feel it's ancient, ofc a lot of the updates are security patches and important, but more often than not it's just libraries trying to race other libraries building different (debatable) features.
I'm just venting because that's the prompt and I don't need a solution or rely on AI. but if someone does have solutions I guess I'm interested
If you could report a bug on any product/project and it’s up to the users to open/verify/close it
Could put pressure on companies to improve quality since the number of bugs is public
Think for five minutes about your abstraction and create meaningful types and config languages, don't just hack it with a hashmap.
- when enabling the Canvas the prompt scrolls to the first prompt constantly
- Canvas doesn't allow for browsing of the documents
- Ctrl+C doesn't copy, wtf?
- Gemini over eagerly edits Canvas documents, inserting errors and silly comments
- it has been doing this since forever.
Claude is the clear winner, but has tighter usage limits.
In many (most?) ways things have gotten worse since the days of running make or an .exe.
Stuff I wrote in Javascript/jQuery twenty years ago still works fine in the browser. Now I’ve got some Gatsby projects I built around 2019 and I can't deploy them due to various degrees of incompatibility with minimum versions of Node.
I get why, as a server platform, Node has to be improved to eliminate security holes. But for static site deployment, there ought to be some kind of stable foundation that will work forever; or, at least, build tools should be designed around the idea of stable Node features that won't deprecate or dissolve as the future marches on.
And if a package locks the version of node, you have to deal with removing the package or patching it yourself.
ChatGPT has saved me soo many hours fixing this though.
The amount of modern languages that think they can solve everything in the type system boggles my mind.
I feel the allure of over typing most in typescript, because it is so flexible to make really complicated types. I see the mistakes most often when JS libraries move from JS to TS. They go overboard with the typing. The code becomes gibberish.
I’m building something in Python right now and the lack of static types is just painful.
That being said, Scala and typescript have really powerful (maybe too powerful?) type systems.
It is impossible how to know if a program will halt without running it, in general terms (Halting problem).
One way to think about the type system is as a less expressive language that is guaranteed to halt. So, it has the pro that we can check properties of the system without running it (IMHO, that is amazing), but it also has the con that it is less expressive (I know, or think I know sometimes, some property holds but you need to express it using the the system) which can be frustrating.
The drawbacks of YAML have been well-documented[1]. And I think it's worse now in the LLM era. If I have a system that's controlled via scripts, an LLM is going to be good at modifying those scripts. Some random YAML DSL? The LLMs have seen far fewer examples, and so they're going to have a harder time writing and modifying things. There's also good tooling for linting and checking and testing scripts to ensure LLM output is correct. The tooling for YAML itself is more limited, even before getting into whatever application-specific esoteric things the dev threw in.
What could be done about it? Hard to tell. I think actually productive use cases of generative AI for software development exist, I spend a lot of time with Claude every day. But I don't generate code, examples maybe, mostly I use it as a first (but not only) tool for research.
I think a lot of tooling could be built around generative AI providing reviews for human code, rather than it generating code for humans to review.
I'm pretty confident we'll get to a good place with a set of good practices and good tooling. But right now, it's pretty terrible, and my only solution at the moment is to not work with anyone who AI generates code. Luckily I'm in a position to enforce that, not everybody is.
Nowadays in 2025 with LLM autocomplete in IDEs, TS is a joy, anyone not using it for anything serious just smells of plain incompetence
It tells me within 5 minutes that dealing with you is going to be a pain in the ass, so I'm unlikely to buy or pursue and I'll start looking for something else.
I don't want to be put in a sales funnel, not yet, I just want to be able to do some due diligence on my own for a little while.
itake•4h ago