ajkjk 5 hours ago

I can't believe that in 2025 it is still hard to find documentation for basic functionality in languages as ubiquitous as, say, Python.

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?

  • skydhash 5 hours ago

    > I can't believe that in 2025 it is still hard to find documentation for basic functionality in languages as ubiquitous as, say, Python.

    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.

    • rovr138 2 hours ago

      In the case of python, it's all built-in. People just don't know their tools.

        $ 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.
    • arduinomancer 4 hours ago

      I’ve found that as well

      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

  • jolmg 4 hours ago

    > 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?

    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.
    • ajkjk 4 hours ago

      Well I don't mean python, it is obviously not a shell. I just mean something like it.

  • 1vuio0pswjnm7 2 hours ago

    "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?"

    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 experimentation, 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

    • ajkjk an hour ago

      of course operating a computer via a shell is programming...

      you can also write shell programs in standalone files!

  • jpitz 5 hours ago
    • wormius an hour ago

      Heh, glad to see it, was gonna post this. Now you have it, do you want to use it. (bluff call time LOL). Being a bit facetious, don't get too offended at the joke, people. But yeah, Xonsh is the "python(ish) shell" option if that's what you want.

      • ajkjk an hour ago

        oh yeah that looks cool

  • chrash 4 hours ago

    > 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’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

  • ddimitrov 5 hours ago

    Shells are much better than python at managing and orchestrating process execution. Also the pipes and filters model is simple and powerful when it fits your problem, which for me is many times a day.

  • edudobay 5 hours ago

    What kind of Python information were you having trouble finding?

    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.

    • skydhash 5 hours ago

      For ruby, you need a good book, and be good at reading references docs.

      • msgodel 4 hours ago

        The first thing I bought at my last job was the Oreilly Ruby book. I can't remember what it's called.

    • ajkjk 3 hours ago

      fucking... all of it

      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.

  • layman51 5 hours ago

    I understand why GeeksForGeeks is garbage but I don’t get why W3Schools is garbage. Anyone know why?

    • ajkjk 3 hours ago

      are you asking why it is bad as in "in what sense is it bad?" or as in "how did it end up being so bad"?

      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.

  • goodoldneon 5 hours ago

    PEPs are often great documentation. They definitely don't cover everything, but they can be helpful

    • ajkjk 3 hours ago

      how sad it is that the documents that described the changes exist as the reference for them, though.

    • edudobay 5 hours ago

      I find a bit infuriating that the official docs for pattern matching are the PEPs. Maybe that will change at the next pattern matching lang change, and I think PEPs and language docs each have their separate purposes, but on the other hand it's nice that the PEP is good (and current) enough as usage documentation.

  • msgodel 5 hours ago

    Python has amazing documentation. Between the built-in help() function and the official documentation (which is hosted on their site) it's hard to find anything better.

  • taeric 5 hours ago

    Python is a funny one to include there, as you should be able to just `help(foo)` to get the documentation. You can flat out run `help()` to get an interactive help session.

  • ranger_danger 5 hours ago

    be the change you wish to see

    • ajkjk 4 hours ago

      The first step is complaining

      • ajkjk 3 hours ago

        anyway i am already working on other things i want to see changed. can't fix everything yourself

    • belter 4 hours ago

      So that LLMs can be trained on it? I predict the return of the paid web just on the back of that.

      • ranger_danger 4 hours ago

        what do you suggest?

        • belter 2 hours ago

          Fix the copyright laws against AI, or I suggest creators go full Atlas Shrugged...

    • yieldcrv 5 hours ago

      stop everything and focus on this completely altruistic goal because you had a mild inconvenience, what do you mean 'privilege', I'm just down to earth like that

hackyhacky 5 hours ago

The fact that most new programming services and products are oriented towards C-suite types, and not to the people who actually use them.

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.

[1] https://www.astronomer.io/

[2] https://tailscale.com/

  • wavemode 4 hours ago

    Well, that's obviously because the people using the software aren't the customers. The customers are the ones signing the checks.

    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

    • hackyhacky 4 hours ago

      Yes, I understand why they do it, and I assume that doing it that way is the "right approach" for them, for the capitalistic reasons that you specified. It just makes me sad that the amazing capabilities of the web are being squandered and marketing fluff, when that same page real estate could be used to educate and enlighten.

  • Gibbon1 9 minutes ago

    Almost 30 years ago National Semiconductor had an early nicely done website that allowed you to search for products, get data sheets, ask questions, find reps and distributors. I used it all the time.

    1997-8 one day I bring it up and it's been replaced by a glossy site extolling the value of National Semiconductor stock and lauding the CEO, CFO, and the board members and nothing about the companies actual product. A few months later they added a link to the old site down in the right hand corner.

    I've come around to the idea that MBA's shouldn't be allowed to own individual stocks. Only through index funds.

  • chrisgd 5 hours ago

    Funny you used astronomer as an example today

  • colechristensen 4 hours ago

    Que Office Space: "What would you say... ya do here?"

    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.

    [1] https://xkcd.com/1053/

Eric_WVGG 5 hours ago

I’m pretty sick of the moving target that is Node and common build chains.

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.

  • itake 3 hours ago

    Yeah, I went through that too: Gatsby, React, and NodeJS all needed upgrading.

    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.

SaberTail 4 hours ago

Currently, domain specific languages written in YAML. I see these everywhere, from configuring individual utilities to managing giant architectural stacks. People get in their heads that YAML is more easily written and read than code, and so instead of just writing the code to do something, users have to deal with a bunch of YAML.

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.

[1] https://noyaml.com/

fhd2 4 hours ago

Other people's AI generated code. They don't understand it, it's over engineered, it looks right at first glance but turns out to be full of subtle bugs. At least that's pretty much universally been my experience.

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.

panic 5 hours ago

It’s frustrating to have to find the right place to report a bug, learn the specific format the project is expecting, then have the bug closed by a “stale bot” after a few weeks. I wish there were an independent, cross-product bug tracker that focused on cataloguing and diagnosing bugs for the benefit of users rather than on tracking work for the benefit of the developer.

  • arduinomancer 4 hours ago

    That is an interesting idea, like a universal bug tracker

    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

    • msgodel 3 hours ago

      I've been writing some software that does this actually. I have like 3 serious parallel side projects going though plus my day job.

xnx 5 hours ago

Effort to get code running on my machine. There are hundreds of unique processes for any bit of code you find on Github.

In many (most?) ways things have gotten worse since the days of running make or an .exe.

iamzubin 5 hours ago

Packages/frameworks/libraries deprecating features left right and center.

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.

J_McQuade 5 hours ago

Having used Scala and TypeScript a lot for work over the last ~5 years, I think I'm going to say static typing. It's lunacy. Computers mostly don't work in types, my brain usually doesn't work in types, and only a small subset of the problems I work on really work in types.

The amount of modern languages that think they can solve everything in the type system boggles my mind.

  • octopoc 4 hours ago

    I was going to say the opposite—even my side projects almost immediately hit the point where I’m spending more time fixing bugs that the compiler would have found than I spend time wrestling with static types.

    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.

  • mejutoco 3 hours ago

    Not trying to convince you, although I disagree completely. I only want to share how I think about it in case it resonates. I am over simplifying but bear with me.

    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.

  • rorylaitila 4 hours ago

    Yeah I agree with this. My mind is type-oriented, but they are not a panacea. The biggest issue arises when the existing type is too wide/narrow or askew of the requirements. It can be difficult to morph the program into the new necessary types while maintaining backwards compatibility and not confusing the codebase. For this reason, I like gradual typing the most. Start with wide permissive types, narrow where I can.

    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.

  • sn9 an hour ago

    What problems do you work on?

  • giraffe_lady 4 hours ago

    I've come to believe through experience that hindley milner and its derivatives are the sweet spot. I shouldn't have to tell the compiler the types, and I shouldn't be attempting to implement business solutions in the type system. It should just know what is already there and tell me it when it can't reconcile that with what I'm adding, because that indicates a problem with my reasoning. The constraints this places on the language semantics end up being neutral-to-positive as well.

tmaly 5 hours ago

Lack of README files that explain the project, the audience, and provides some good examples.

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.

  • arduinomancer 4 hours ago

    I’ve noticed that as well with README’s

    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

qq99 5 hours ago

Cursor doesn't auto-retry my request, it presents me with a button to click to retry. If you know the request failed, you could just retry on my behalf!

  • iamzubin 5 hours ago

    also, if there's a system to rollback, why ask for confirmation on the query I asked for on Agent mode. bro just do it! if it breaks I'll rollback.

branperr 4 hours ago

I would say type signatures that don't really describe the state of the program. Especially when someone has objects with a bunch of optional fields that either shouldn't be optional or should be represented in a different way, like as a discriminant union.

torial 4 hours ago

Git. Having lived through many cycles of version control systems (VSS, SVN, TFS, Hg), this one has gone on long enough to be replaced with something more intuitive. I think a lot of project complexity is work arounds of inherent Git issues. But I'm just a caveman lawyer.

  • yjftsjthsd-h 7 minutes ago

    Have you had a chance to try jj? (It's git compatible)

  • giraffe_lady 4 hours ago

    I switched to fossil for personal projects a few years ago. Documentation and ticket system already there, hosts itself so don't need to bother with github etc. Different collaboration model but so far has worked fine when I've needed to bring other people in.

    • spiderxxxx 39 minutes ago

      fossil is great, and I wish more companies used it. It's so simple, has everything you need, documentation, bugs, email alerts, chat, a forum, a wiki. It's all there. Having to go to jira to manage something, confluence for something else, git for source code and bug tracking, it's all a mess, when you can use something like fossil. Yet all I hear when I mention fossil is "never heard of it, not using some toy project, sticking to what I know".

juancn 3 hours ago

Having to put contact information to get any technical info on a commercial product.

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.

singularity2001 4 hours ago

Function coloring. It's spreads like cancer amongst different programming languages and only a few are not infected yet. Clearly the 'goto' mistake of our decade!

mavamaarten 5 hours ago

Honestly, my biggest programming pet peeves are not really technical but social. Constantly working on moving targets, being responsible for both fleshing out and building these moving targets, having to estimate work and then being told that that takes too long, ...

  • dehrmann 5 hours ago

    > Constantly working on moving targets, being responsible for both fleshing out and building these moving targets,

    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.

  • arduinomancer 4 hours ago

    Yeah for me figuring out _what_ to build and estimating it are the biggest problems day to day

ieie3366 4 hours ago

Using JS instead of TS. Pre-LLMs it was way slower to write and debug complex types. Especially in startup environments it was not often worth it.

Nowadays in 2025 with LLM autocomplete in IDEs, TS is a joy, anyone not using it for anything serious just smells of plain incompetence

jasonthorsness 4 hours ago

I am frustrated that the programming agents never seem to use the latest version of the languages (Go it seems to be multiple versions behind) or packages. This is especially annoying in front end.

dehrmann 5 hours ago

IntelliJ (and other IDEs) have a funny workflow for generated code. I want to edit a .proto file and have it handled the same way editing a .java file is, but I have to build it Maven/Gradle.

childintime 5 hours ago

Drop 32 bit, 16b modes and segments from x64 CPU's. If you must, maintain just one core fully x86.

childintime 5 hours ago

Gemini has several fatal flaws (on Firefox):

- 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.

itake 5 hours ago

frameworks or languages deprecating apis.

yieldcrv 5 hours ago

monorepos complicate everything. documentation doesn't factor them in, deployment instructions don't factor them in. efficient deployment needs a whole additional framework on top. additionally AI also doesn't understand the combination of things, but when it does, a new major version of a framework has dropped and isn't in the training set.

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

  • impure 4 hours ago

    Just use Git Submodules.

msgodel 5 hours ago

Hash maps. Everyone just turns their brains off and uses hash maps for everything. The code this creates is awful for users, awful for people consuming it, awful for people maintaining it.

Think for five minutes about your abstraction and create meaningful types and config languages, don't just hack it with a hashmap.

  • xboxnolifes 4 hours ago

    Do you mean just passing around values as key-value pairs in hashmaps instead of something meaningfully typed, or something else?

  • Zambyte 5 hours ago

    Can you elaborate on common misuses you see?

  • dehrmann 5 hours ago

    It sort of sounds like you want a ~yaml config that's unmarshaled to an object.

    • msgodel 4 hours ago

      LMAO that's exactly the kind of pattern I'm ranting about. I don't know if you're being sarcastic or not.