有意义的新轮子几乎只能靠自己去发现。一个新轮子应该含有或多或少的一些新的洞察,基于这些洞察对已有的东西进行改进,否则就容易变成如你说的没有意义的产出,只是自娱自乐的 toy project 。
从个人浅显的观察来说,新事物的周边都很贫乏,有很多做轮子的机会。也可以思考新生技术的应用,机会也比较多。如果是非常成熟和火热的领域,可能都被别人做的差不多了。
举个例子,之前我在寻求内核和容器、虚拟化方面的开源贡献,但是发现基本是大公司主导的社区,稳定成熟,没有大的创新点,大功能不会让一个 newcomer (或相对公司的“外人”)去做,而小的功能做出来不但没有 credit ,甚至别人 review 也不是很积极,虽然最后合进去了,但是中间被 delay 和要求 rebase 的体验很不好。
后来我正好学了 Rust ,寻求做点东西。Rust 算相对年轻的技术,这几年越来越成熟。基于个人的经验,之前工作遇到的一些云原生、容器方面的基础设施,因为资源占用和性能开始从 Go 转用 Rust 的不少。我想这是一个好机会,即用 Rust 重写 Go 的驻留后台的系统服务软件,获取内存占用等等方面的优势。然后我想到 frp ,看了一些他的代码,觉得是一个机会,所以写了
https://github.com/rapiz1/rathole/ 确实在原来设想的内存占用和二进制方面上获取了优势。我想在资源受限的场景,比如嵌入式设备上会更有它的 niche 。这是一个从新技术应用入手的例子。
总结一下,造一个有意义的新轮子其实还是一件创新的事情,从自身经验出发,关注机会多的新领域和新技术,比跟从别人的烂大街的项目列表要有意义。