灌篮少年 发表于 2025-4-6 00:31:32

天下上最盛行的软件,抛弃了Git!

天下上利用最盛行的软件是什么?
Windows ? Android?  Office ?
都不对!
答案是 SQLite !一个嵌入式数据库。
https://i-blog.csdnimg.cn/img_convert/e0a5dbe45ccbae597bc9b20e3960bc04.png
你大概没听说过它,但是它就在你身边的:
每一台智能手机中(Android 和iOS),Mac电脑,Windows 10电脑。
每一个重要的欣赏器中(Chrome, Firefox, Safari)
大部门的机顶盒当中
每个PHP和Python安装目录中
很多盛行的桌面应用(微信、QQ、 DropBox、 Skype、 iMessage、WhatsApp、 Adobe Acrobat Reader....)
......
不信的话可以在电脑中搜索一下 “*.db”,看看能发现多少个。
SQLite的发明人是Richard Hipp。
https://i-blog.csdnimg.cn/img_convert/07f6d22379eb68d50031ce1321f45e26.png
Richard不光写了SQLite,他还写了别的一个版本控制软件Fossil。
https://i-blog.csdnimg.cn/img_convert/df45fa8136c583b1d5c3e673f7ff5e62.png
有趣的是SQLite项目利用Fossil来做版本控制。
而Fossil又利用SQLite来存储内容。
有点儿鸡生蛋,蛋生鸡的感觉。
我们不光要问:现在Git已经是源码管理系统中最盛行的软件,SQLite为什么不利用Git,而要重新努力别辟流派呢?
Richard写了一篇文章《Why SQLite Does Not Use Git》,表明了其中的原因,几个要点如下:
1. Git的头脑模型过于复杂
Git的复杂性分散了人们对于正在开发软件的注意力,Git用户需要牢记一下全部内容
(1)The working directory
(2)The "index" or staging area
(3)The local head
(4)The local copy of the remote head
(5)The actual remote head
Git提供了很多命令和选项在全部这些位置之间举行文件移动和比较。
相比而言,Fossil只需要思量他们的工作目录和正在处置惩罚的check-in,干扰淘汰了60%,每个开发人员的大脑周期是有限的,Fossil需要的大脑周期更少,从而可以释放智力资源来专注正在开发的软件。
正如一个利用过Git和Fossil的用户在HackerNews上缩写的:
Fossil让我安心,因为我拥有齐备......通过一个命令同步到服务器...... 我从来没有通过Git获得过这种安心。 
2. Git没有提供良好的态势感知能力
当Richard想看看SQLite最近发生了什么情况时,他可以利用Fossil的Timeline功能,在一个屏幕上看到全部更改的择要,只需几下点击,就可以看到细节信息,乃至用手机也可以,非常方便。
GitHub和GitLab没有提供雷同的功能,最接近的是“Network graph”,但是它渲染起来很慢(除非事先有缓存),而且不提供那么多的细节,移动设备上结果更不好。
GitHub的commit视图不错,有详细信息,速度快,可是每次只能提供显示一个分支,无法轻松知道全部最近的更改。 
很多Git用户会利用第三方的Git图形查看器,它们需要单独安装和管理,而且很多是特定平台的(例如仅实用于Mac的GitUp),想用这些图形查看器,起首还得同步本地存储库,很麻烦。 
3. Git 不跟踪历史分支名称
Git保留了commit序列完整的DAG,但branch tag是本地信息,它不会同步,不会保留,这使得查看历史分支变得非常乏味。
Richard用一个分支的例子对比了Git和Fossil,Fossil可以清楚地显示Branch开始的位置,什么时间归并回主干,GitHub则不行,除非利用第三方的工具。
https://i-blog.csdnimg.cn/img_convert/7fff2a8798b8b9105d1f25adbe2687f9.png
4. Git需要更多的管理支持
Git是个复杂的软件,建立Git服务器并不容易,所以大多数开发人员利用第三方服务如GitHub和GitLab,从而引入额外的依赖项。
相比之下,Fossil是个独立的二进制软件,包罗GitHub,GitLab的焦点功能,建立一个服务器非常高效,只需几分钟时间就拥有一个带有wiki、错误跟踪和论坛的社区服务器,为用户提供打包下载,登录管理等功能。
Fossil对硬件要求很低,可以在 5 美元/月的 VPS 或 Raspberry Pi 上正常运行。
5.Git提供了糟糕的用户体验
下面这个xkcd 的漫画虽然浮夸,但是却切中要害。
https://i-blog.csdnimg.cn/img_convert/1106cd563b6eff5faaa95f6552c37cb2.png
说实话,很少人质疑Git提供的用户界面不理想,很多底层的实现都展示在了和用户交互的接口中,交互接口设计很糟糕,有个网站乃至专门天生假的Git资助手册:https://git-man-page-generator.lokaltog.net/#ZWR1Y2F0ZSQkaGVhZA==
Richard的吐槽挺犀利的,但我能感同身受的只有第一点和最后一点:模型复杂,用户体验差。 
我刚开始接触Git时也有很强的抵触情绪:项目组就这么几个人,为什么要用分布式的系统?搞什么本地仓库,远程仓库,还得记着各种各样烦人的命令...... 
集中式管理SVN它不香吗? 
用得多了,发现有两个好处:
(1) 在本地有个副本,可以自由地修改,而且能提交到本地的代码仓库中,先把版本管理起来,这是很爽的一件事变。比及符合的时间再push,什么事变都不耽误。
(2) Git的分支着实是强,创建分支不像SVN那样得复制目录,很轻量级,新特性开发都可以用分支来搞。
当然,代价就是记着,用熟那些复杂的命令。
Richard是个挺有意思的人,他很喜欢造自己的小工具,喜欢自给自足。
除了SQLite和Fossil之外,他还开发了一个Web服务器althttpd,这是个小巧,简朴,安全,低资源占用的Web服务器,现在sqlite.org网站就架在它之上,每天处置惩罚50万个Http哀求,传输200G的数据。
Richard还开发过一个叫CVSTrac的Bug跟踪系统,也是利用SQLite来存储相关数据。 
所以,Richard对Git的吐槽有为自己产品宣传的成分(至少这篇文章在HackerNews中引发了三次大讨论,赚足了眼球,吸尽了流量),但也真的是自己利用觉得觉得不爽的地方。
SQLite选择了Fossil,那是因为对Richard来说,Fossil充足了,而且在某些功能上更好,更能满意自己的需求。 
就像他利用自家的Althttpd,而不是Apache一样。
但是对于更多的程序员来说,Git和GitHub的生态系统更有效。
这个天下应该是百花齐放的。
全文完,觉得不错的点个赞或者在看吧!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 天下上最盛行的软件,抛弃了Git!