HACKER Q&A
📣 blunte

Developers, why are we re-implementing the same wheels


Companies around the world are paying developers to build software solutions to problems that have been solved many many times already - web applications.

Most web applications include some subset of: user and api authentication, database interaction, remote api, user and/or api output, and performance features like caching, load balancing, proxying, etc. This is not an exhaustive list, but these are some of the primary, common elements. The total set of possible combinations of features, even including some special sub-features, is not excessively large.

Why are we still cobbling these elements together manually? After 30 years of building web applications, we have a pretty good idea of what's possible and how to solve it. Even with frameworks, we still are working far too low level. We should be choosing which features and which options we want and feeding that into a system that runs the solution or generates a deployment script for the solution.

The business specific details should be handled by plugins, and that customization is where we should be putting our time and creative energy. A well designed plugin system would also allow developers to use whatever language they prefer for each plugin, and developers could a language based on the special needs and ideally suited libraries. It would also free us from language lock-in.

Wordpress, while not initially intended to be such a system, is a partial example (even though it's a 15+ year old view on a solution to originally a different problem).

Why is there no modern answer to this problem? (Or if there is one, what is it and why don't we use it?)


  👤 gregjor Accepted Answer ✓
It’s not just web development. It’s most software development.

Well, of course, there's the famous idea that people who don't pay attention to history are condemned to repeat it, and unless they're as smart as the original people who made it, they might even do worse. So in the old days people were admonished for reinventing the wheel, but today I think most of the old-timers would love for the new people on the scene to at least reinvent the wheel but it seems more like they're reinventing the flat tire. — Alan Kay


👤 MiddTech
Lack of a robust and universally available/adopted mechanism for sharing, standardising and utilising said wheels. In addition, an ecosystem and/or culture that supports such a universal standardisation.

This is assuming that standardisation is even the answer, i can state subjectively that there is no currently acceptable universally applicable method for implementing authentication/authorisation; and that's just one example.

There are auth standards, sure, even good ones, but implementing said standards across the entire galaxy of development environments,architectures and business limitations. Good luck with that, i really mean it, solve this and you'll never have to work again.

No github doesn't count, it's not universally accesible, nor is it viable for some Even if it did, it's still only the availability part.

TL;DR; shit is complicated. https://xkcd.com/927/