独孤九剑(0x00) - 我为什么要做 Dit

又挖了一个坑!不是没事专坑自己,只是想在无聊的时光里,找个乐子,找点事做。

小时候,最令人着迷的就是邻家 DVD 里播放的功夫电影。三五个小伙伴,从中午看到下午,再从下午看到傍晚,从不缺席。印象中的男主角除了爱上师父的女儿外,一般都会经历三个人生阶段: 被虐->上山学艺->下山报仇。

再长几岁,便成了金庸迷,被查大侠天马行空的想象力深深折服。一个人的脑子里,怎么会容得下那么多光怪陆离的故事,竟然如此真实,如此自然,令人信服。巧合的是,金庸笔下那些快意恩仇的大侠们,也大都有过独自修练的经历。

后来,迷上了计算机,不能自拔。从此“一入侯门深似海,从此萧郎是路人”,渐渐地走上了程序员这条让人又爱又恨的不归路。我最佩服的大牛有两位:Linus 和 Donald。风靡世界的 Linux 操作系统,虽然没有使用任何 MINIX 和 Unix 的源代码,但是 Linus 至少是研究透了 MINIX 和 Unix 的工作方式的。Donald 花费近十年的时间解决了计算机排版问题,且不说 TeX 逼近圆周率的完美程度,就光十年如一日做只一件事的耐心,就让人敬佩不已。

我想我也应该静下心来,经历这样一个默默修炼的过程,来磨练自己好高骛远、急于求成的心性。要修炼就得有剑谱,我心中最喜欢的剑法就是独孤九剑。

独孤九剑

那本看了 1/3 的《计算机程序设计艺术第1卷》在我柜子里都不知道躺了多少年,一直没有勇气再捡起来,对 Donald 这种神一样的人物,我只能望洋兴叹了。而 Linus 就亲民多了,是个一封邮件就能联系到的大侠。Linux 和 Git 得其一者得天下,而 Linus 拥有两者。一般来说,人愈老而修为愈深,Git 作为 Linus 后期的作品,可谓炉火纯青,已入化境。

Git 有着优雅的设计,精良的数据结构和扎实的算法,涉及文件系统、缓存、网络、终端,是系统学习计算机体系结构和程序设计的绝佳案例。是的,Git 就是我心中唯一的独孤九剑。

Dit

对,接下来我会抄袭模仿 Git 实现一个类似的工具 Dit ,来打发无聊的业余时间。我已经为它想好了 logo,大家感受一下:😄 dit logo

基于以下这几点:

  • 源于对 Git 的爱和对 Linus 的崇拜
  • 取名 Dit (do it together),希望有更多小伙伴参与
  • 就算是小写 git,也不希望耷拉着,要坚挺呐
  • 相关的技术会引入下一版本的 OpenSSE
  • 为什么分支要靠右,考虑过左撇的感受吗,Dit 就是要与众不同
  • 青色代表我单调乏味的人生

为了避免原模原样的照搬,我会用 Golang 来实现。基础数据结构会按 Git 的设计思路来。其它部分,会自己先实现一个版本,再参考 Git 的版本,选取其中一个来使用。实际看 Git 源码的时候,我发现之前的担心是多余的,根本看不下去,大概懂了为啥 Linus 当初没有用 MIXIN 的任何代码,就按自己的理解来实现吧。

据计划做这件事开始,已经过去快两年了,今天又回来,希望这次可以坚持住。事实再一次证明,做为屌丝程序员,能解决温饱的项目永远具有最高的优先权。一有时间就会拾起来,并甘愿无偿付出,才是兴趣,才是真爱,我对 Git 就是这样。

安心做点事吧,进击的小伙伴!

如果你喜欢这篇文章,欢迎赞赏作者以示鼓励