Ask HN: What are your current programming pet peeves?
91–100 of 110 posts
Re: Ask HN: What are your current programming pet peeves?
#92Having 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.
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!
Re: Ask HN: What are your current programming pet peeves?
#93Earlier quoted context omitted.
It sort of sounds like you want a ~yaml config that's unmarshaled to an object.
LMAO that's exactly the kind of pattern I'm ranting about. I don't know if you're being sarcastic or not.
Re: Ask HN: What are your current programming pet peeves?
#94Earlier quoted context omitted.
> 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…
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.
Re: Ask HN: What are your current programming pet peeves?
#95When someone uses an odd number of indentation! That really grinds my gears for some reason.
https://github.com/libretro/RetroArch Nearly a million lines of 3-spaced C89, still in heavy perpetual development.
Re: Ask HN: What are your current programming pet peeves?
#96Earlier quoted context omitted.
https://github.com/libretro/RetroArch Nearly a million lines of 3-spaced C89, still in heavy perpetual development.
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.
Re: Ask HN: What are your current programming pet peeves?
#97Null 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)
Re: Ask HN: What are your current programming pet peeves?
#98Git. 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.
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....Re: Ask HN: What are your current programming pet peeves?
#99Earlier quoted context omitted.
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.
Not so great if you don't know the import or it's not intuitive (pathlib, shutil).
$ 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.Re: Ask HN: What are your current programming pet peeves?
#1002. 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