Settings

Theme

Ask HN: What are your current programming pet peeves?

29 points by alexathrowawa9 6 months ago · 109 comments · 1 min read


Perhaps someone could point out a solution or discussion could inspire someone to create a solution.

ajkjk 6 months 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 6 months 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 6 months 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.
      • thunky 6 months ago

        Not so great if you don't know the import or it's not intuitive (pathlib, shutil).

        • rovr138 6 months ago

          You can search in module names and summaries,

              $ 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.
              >>> help()
              Welcome to Python 3.13's help utility! If this is your first time using
              Python, you should definitely check out the tutorial at
              https://docs.python.org/3.13/tutorial/.
              
              Enter the name of any module, keyword, or topic to get help on writing
              Python programs and using Python modules.  To get a list of available
              modules, keywords, symbols, or topics, enter "modules", "keywords",
              "symbols", or "topics".
              
              Each module also comes with a one-line summary of what it does; to list
              the modules whose name or summary contain a given string such as "spam",
              enter "modules spam".
              
              To quit this help utility and return to the interpreter,
              enter "q", "quit" or "exit".
              
              help> modules files
              
              Here is a list of modules whose name or summary contains 'files'.
              If there are any, enter a module name to get more help.
              
              compileall - Module/script to byte-compile all .py files to .pyc files.
              filecmp - Utilities for comparing files and directories.
              fileinput - Helper class to quickly write a loop over all standard input files.
              gzip - Functions that read and write gzipped files.
              idlelib.grep - Grep dialog for Find in Files functionality.
              linecache - Cache lines from Python source files.
              netrc - An object-oriented interface to .netrc files.
              pathlib - Object-oriented filesystem paths.
              plistlib - plistlib.py -- a tool to generate and parse MacOSX .plist files.
              shutil - Utility functions for copying and archiving files and directory trees.
              tempfile - Temporary files.
              ...
          
          I know there's search engines and there's use cases. I'm just trying to highlight that some people that work in a language day in and out, don't even know how to get their documentation. I just want people to know their tools better to ask smarter questions. It won't remove questions and that's fine. Just help me help you.
    • arduinomancer 6 months 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 6 months 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 6 months ago

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

  • jpitz 6 months ago
    • wormius 6 months 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.

  • 1vuio0pswjnm7 6 months 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 6 months ago

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

      you can also write shell programs in standalone files!

  • chrash 6 months 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 6 months 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.

  • msgodel 6 months 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.

  • edudobay 6 months 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 6 months ago

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

      • msgodel 6 months ago

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

    • ajkjk 6 months 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.

  • goodoldneon 6 months ago

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

    • edudobay 6 months 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.

    • ajkjk 6 months ago

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

  • layman51 6 months ago

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

  • bdangubic 6 months ago

       claude mcp add context7 -- npx -y @upstash/context7-mcp
  • taeric 6 months 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 6 months ago

    be the change you wish to see

    • yieldcrv 6 months 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

    • ajkjk 6 months ago

      The first step is complaining

      • ajkjk 6 months ago

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

    • belter 6 months ago

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

hackyhacky 6 months 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 6 months 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 6 months 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 6 months 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 6 months ago

    Funny you used astronomer as an example today

  • colechristensen 6 months 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 6 months 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 6 months 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 6 months 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 6 months 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 6 months 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 6 months 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 6 months 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 6 months 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 6 months 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.

spoonsort 6 months ago

When someone uses an odd number of indentation! That really grinds my gears for some reason.

  • ranger_danger 6 months ago

    https://github.com/libretro/RetroArch

    Nearly a million lines of 3-spaced C89, still in heavy perpetual development.

    • techbrovanguard 6 months ago

      i tried to submit a patch to retroarch and it was one of the least pleasant experiences i've had in a while. makefile hell, layers and layers of incomprehensible macros, and spaghetti code everywhere. no thank you. i may be a masochist but i still respect my time.

      • ranger_danger 6 months ago

        Same, IMO most of the main devs are extremely toxic, and their turnover rate among contributors is the worst I've ever seen in my 30 years of professional and volunteer/FOSS coding.

  • into_ruin 6 months ago

    This feels like an urban legend designed to scare kids

J_McQuade 6 months 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.

  • giraffe_lady 6 months 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.

  • octopoc 6 months 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.

    • wink 6 months ago

      It all depends what libraries you are using and if they are properly documented and thought through.

      I half remember a recent problem in the AWS TypeScript CDK. I don't know what exactly the Type was, but it was like: You get a SomeFoo from (their) API1 and a BarFoo from (their) API2 - they are called nearly the same, they expose basically the same fields, and you are only interested in one of the fields but there are zero convenience functions and you somehow have to convert between these 2 interfaces for no discernable reason and all you want is a `new BarFoo(someFoo.value)` but value is private. That's when you lose all hope because it's functionally identical to just pass `{"value":someFoo.value}` :)

  • const_cast 6 months ago

    I work in PHP, I would say about 90% of all bugs are type errors.

    Even if they're not type errors, if I sit back and think about what the root cause is, it's the type system and dynamic typing.

    Addressing an array at null? Type error! Referring to a key that doesn't exist? Believe it or not - not a logic error, that's a type error! If we uses objects or structs that's not possible, but arrays are basically structs with dynamic member ;(

    Anything around empty()? Type error. Arithmetic errors? Almost always type errors! Using postfix logic operators? Believe it or not, type error! Anything around DateTime? Usually a type error!

  • rorylaitila 6 months 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.

  • mejutoco 6 months 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.

  • sn9 6 months ago

    What problems do you work on?

tmaly 6 months 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 6 months 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

DamnInteresting 6 months ago

I dislike the manufactured overcomplexity of web app development nowadays, especially in corporate environments. Maybe I'm just curmudgeonly, but all of that command-line building crap with frameworks and dependencies and auto-reloading browsers--I feel it adds a lot of work for little reward, and introduces a lot more opportunities for problems to arise. All I need is a good text editor and a browser with dev tools, thank you very much. Grumblescoff.

qq99 6 months 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 6 months 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.

  • wink 6 months ago

    I've not used cursor but if it's one where every request costs token where do you draw the line? 1 retry? 3 retries? Configurable? Bases on what?

    I mean, I'm 90% with you but this is at least one where I could imagine a good reason and not just laziness or stupidity on the service's side.

    • qq99 6 months ago

      I imagine (and hope) I'm not being billed for requests that fail. In my own apps that use Anthropic API, sometimes the req just fails the initial connection (and so has to be retried), usually works in 1-2 retries.

NalNezumi 6 months ago

1. Debugging multiprocessing. I know it's tricky to implement but I'd imagine there would be more tools today for that than your brain, logging and (single process) debugger.

2. Good explanation for build system. I don't know how many time I've ventured out to "aight let's learn cmake once and for all" to just give up and default to "Google when you get stuck, copy paste Stackoverflow solution" when I get some niche error. For programming I can almost always find and understand error, making my knowledge deeper. Build system, not so much

3. (in python) people using dict as config objects. Worst code (that work) I ever read was ML research code using json -> dict as experiment setup configuration. crux was that every object that read this dict ALSO modified to it, including adding function calls that modifies it. It was a horrible mess following it even with debugger. I'd love to have some advanced linter that tracks the dicts thrown around

mikewarot 6 months ago

Most documentation sucks - Example: I like Free Pascal/Lazarus, it has much to recommend it, except the documentation sucks, it's an anti-feature. Many functions are documented with a list of arguments, and that's about it... not what those arguments should be, nor examples of usage, etc. The same is true for many languages and libraries. It's part of the reason LLM coding engines enhance productivity (by helping you get around this defect)

Null terminated strings - Really... it's 2025... can't we kill that off already?

Breaking changes to languages/libraries -- Python really caused a ton of unnecessary grief with the breaking changes to strings in their rush to force Unicode into places it didn't belong.

Ambient Authority Operating Systems - Why do I have to trust all of my programs with all of my user privileges? I don't do that in other areas of life... I don't hand over my wallet to buy an ice cream cone. I don't wire everything directly into the 220 feed into my house. Why can't we just use an OS that supports power boxes (dialog boxes for file operations, that enforce the choice, instead of leaving it up to good faith in the application)

Internet "Access" instead of full connectivity - Why are we still forced to "access" the internet, instead of just running our own machines? (If we had better OSs, we could do that safely).

Memex - It's been 80 years... a full human lifespan... and we still don't have a working Memex. We should be able to surf the net, and then recall (offline!) and recreate anything we've seen, link it into our own narratives, and then spool off a copy for our friends.

HTML - HTML is not a language for the markup (annotation) of hypertext. You can't add a separate new layer to an existing resource without copying or editing it. HTML is part of why we still don't have Memex. (That and copyright insanity)

torial 6 months 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.

  • mikewarot 6 months ago

    The main blocker for me was having the wrong mental model of what GIT really is. I thought it was all about deltas, and saving each and every "change" to a file, which was dead nuts wrong.

    GIT makes snapshots of everything. The functionality is a bit oddly distributed in terms of the command set, but it's all snapshots. You could make a fully compatible program that just does a full snapshot (without ever looking for merge errors, etc), to make everything easy-peasy.

      I bet there's a command line way to do that already....
  • giraffe_lady 6 months 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 6 months 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".

  • yjftsjthsd-h 6 months ago

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

branperr 6 months 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.

yieldcrv 6 months 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

singularity2001 6 months 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 6 months 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 6 months 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 6 months ago

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

juancn 6 months 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.

ieie3366 6 months 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

jmclnx 6 months ago

"elseif", cannot stand that statement. Only know 1 other who hates it :)

jasonthorsness 6 months 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 6 months 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.

xtiansimon 6 months ago

I find APIs mostly opaque with documentation using tautological descriptions. I wish authors would describe the design at a high level, so I can scaffold my learning.

msgodel 6 months 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.

  • Zambyte 6 months ago

    Can you elaborate on common misuses you see?

  • xboxnolifes 6 months ago

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

  • dehrmann 6 months ago

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

    • msgodel 6 months ago

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

      • dehrmann 6 months ago

        I don't mean to a hashmap; I meant to a pojo/dataclass/whatever.

        • msgodel 6 months ago

          Sure but it's the overly general hashmap based interfaces everywhere which includes these canned serialization formats that's the issue. Someone else in this thread posted noyaml.com which is a great summary of the issue there.

childintime 6 months ago

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

childintime 6 months 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 6 months ago

frameworks or languages deprecating apis.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection