Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Reinventing the wheel is fine. However most attempts should be done "in your basement" and thrown away. Don't publish your attempt on the likes of github. Learn what you can from it and then throw it away. Apply lessons learned the the dominate project already there. [...] > Note that I said "most" above. There are reasons to write a start a new project despite others in the same space existing. However this should not be done until you define what is wrong with existing projects.

I couldn't disagree with this more. Reinventing something in public view can be extraordinarily valuable, even if without a clearly defined problem to address. Off the top of my head:

- Learning in public can have benefits: I personally tend to write much better software if I know there is any chance someone else might see it and reinventing the wheel (Todo app anyone?) is a great way to focus on learning some new techniques or technology without the added overhead of also inventing a novel solution to some hard problem.

- Contributing to the dominate project in any space requires working within the constraints of the existing code and project/user expectations, and if you just show up out of the blue trying to "apply lessons learned", you also need to make a convincing argument for why your way is the better way. On the other hand, reinventing the project allows the freedom to experiment and demonstrate some radical alternative and doing it in public allows anyone (including dominant project maintainers and users) to learn from it.

- People that don't have any interest in the original project, but do have interest in aspects of the reinvention can benefit. For example, I haven't used Calibre in years and don't plan to now, but I'm grateful the author shared this because I hadn't heard of Tauri prior or seen a Bun project, and now I'm exploring the repo and learning something new.

> There are many good open source projects that could be great if more developers would work on them.

Eh. Sounds like a Zero-Sum Fallacy.



> I personally tend to write much better software if I know there is any chance someone else might see it

Sounds like a personal problem. I'm not sure how to fix it, but it seems like you should take more pride in your work even if nobody will see it.

> Contributing to the dominate project in any space requires working within the constraints of the existing code

This is a GOOD thing. The world doesn't need more half baked open source solutions. The world needs more open source code that many people have carefully worked to perfect. If you have not already worked on a project then you don't understand it and the constraints and compromises that went into the original. I've seen many times where someone has attempted to do better (often in closed source software) and when they were done ended up with a similar mess to the first as there are often not-obvious things involved in the original decision that you end up reinventing.

> Sounds like a Zero-Sum Fallacy.

Not a Fallacy - there are only limited number of people working on open source. There is only a limited amount any one person can contribute. As such there often is a zero sum.

Again, don't get me wrong - there are sometimes good reasons to start from scratch. However if you don't understand the real problems of the original you cannot hope to fix them. Many of the problems are political - there are a number of people working on open source that I cannot stand and thus I refuse to work on projects they work on so if I'm really interested a new project is sometime the only option. Sometimes rewriting in Haskell or Rust or whatever the language of the day is really is worth doing. However the default should be work on a project that is already there.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: