Hacker News new | ask | show | jobs
by the__alchemist 80 days ago
A different angle: I think a lot of software is not accessible due to friction points and interfaces. Non-compatible interfaces, and simply being proprietary for business/incentive reasons.

So, you might ask "Why are you building X when Y exists". The answer is usually something to the effect of "I can't interface with Y". Programming languages themselves are one of these obstacle. So is linking to system libraries. (e.g. many C and C++ code bases) C-FFI sometimes makes this easier though.

I value low-friction interfaces in software, and I think this is usually not done well.

Another example: I think this is why I dislike Async rust so much. It places a barrier within the language.

Some concrete anecdotes from the past few days: Why am I writing SPME algorithms, asking an LLM to implement a linear constraint solver, etc? Those and many more algorithms that have existed and been heavily used for decades? No/shitty rust libs, and the C/C++ libs have no good way I can interface with, aren't documented well, license concerns etc. I.e., I could try to re-use, but instead re-write because it's, surprisingly, the lower-friction option.

People lament re-inventing wheels, but often miss that the off-the-shelf wheels each have their own bolt patterns, brake interfaces, and dimensions. And sometimes they look solid, but have subtle defects.