Hacker News new | ask | show | jobs
by zefei 4172 days ago
Developers who re-invent/re-imagine some wheels usually realize at the end why the original wheels are designed like those. We, understandably, don't quite appreciate the work other people have done, where we consider their tradeoffs as mistakes. But when we do them ourselves, we eventually see the huge amount of conflicting goals, as tradeoff is the essence of engineering, or anything.

However, almost all the good new things came from some re-invention. Don't let the tradeoff scare you away from your original ideas. Maybe the whole interface doesn't beat what we have now, but there are quite a few very good stuff in your demo. And I believe some of them (zoomable overviews, widgets), can truly work better than what we have now. It somehow reminds me of Rob Pike's Acme editor, though they look very different.

2 comments

> Developers who re-invent/re-imagine some wheels usually realize at the end why the original wheels are designed like those.

While that is true, I do also think it's healthy to have some scepticism about the design of projects because some are just poorly executed (either because it's based on an outdated model that everyone has stuck to because it's the standard way of doing things, or because of time constraints, or sometimes just because of a lack of love for the project).

Sometimes it's worth people re-inventing the while just to see for themselves as occasionally a new developer might just have a unique perspective that results in them solving a previously considered "unsolvable problem".

Obviously this philosophy isn't without it's drawbacks. But sometimes it's worth testing the old standards.

>We, understandably, don't quite appreciate the work other people have done, where we consider their tradeoffs as mistakes.

Part of this is because it's hard to differentiate between crap and something that was well-designed without putting the time into researching it. This leads developers to just assume most things are crap unfortunately.

It is important to distinguish between prototypes and demos vs. products meant for consumption; many people easily get confused that all released code should somehow be shippable. This is why I'm hesitant to release my own demos even though I get a lot of requests for them.