当前位置:首页 > 焦点

国外源码网站

GitHub 上那个叫“free-programming-books”的国外仓库,star 数早就过了 30 万。源码里面躺着几千本免费编程书的网站链接,从 C 语言到 Rust,国外从算法导论到机器学习实战。源码我第一次翻的网站时候愣了半天——原来那些动辄标价七八十美元的技术书,有相当一部分是国外作者自己放出来或者出版社限时免费的。这个仓库本身不存书,源码只做索引,网站但就是国外这份索引,养活了不少第三世界国家的源码自学开发者。

说到源码网站,网站SourceForge 是国外绕不开的老家伙。1999 年上线,源码比 GitHub 早了整整九年。网站当年 Linux 内核之外的很多开源项目都往上面扔,下载页面那个绿色大按钮是标配。可惜后来商业味越来越重,捆绑安装包的事没少干,口碑慢慢就塌了。现在去 SourceForge 逛,很多项目最后更新停在 2015 年前后,像一座数字废墟。但废墟也有价值——有些老库只在这里留了完整版本,GitHub 上反而找不到。

真正改变游戏规则的是 GitHub 的 Pull Request 机制。在这之前,给开源项目贡献代码基本靠邮件列表发 patch,格式稍不对就被 maintainer 骂回来。2008 年之后,fork、改、提 PR,流程标准化了,门槛一下子降下来。我认识一个在成都做外包的朋友,他英语口语稀烂,但靠 GitHub 上的 issue 和 PR 跟老外协作了好几年,愣是攒出一份像样的开源履历,后来跳槽去了新加坡。

GitLab 走的是另一条路。它把整套东西做成可以自己部署的,企业内网也能跑。很多公司不想把代码放别人服务器上,GitLab 就成了首选。不过它的社区版和企业版功能差距不小,有些好用的 CI/CD 特性得掏钱。这事儿在开发者圈子里一直有争议,但人家也得吃饭,没什么好说的。

Bitbucket 被 Atlassian 收购之后,定位就偏了。它跟 Jira、Confluence 绑得紧,适合已经在用 Atlassian 全家桶的团队。免费私有仓库额度给得比 GitHub 早,但社区活跃度差一大截。我试过在 Bitbucket 上搜一个冷门库的 issue,结果发现提问的人三年前发的,至今零回复。那种冷清感,跟 GitHub 上动辄几十条讨论的场面完全两个世界。

国内的话,Gitee 算是填补了一块空白。访问速度快,中文界面友好,有些政府项目和高校作业指定往上面传。但 fork 过来的项目经常不同步,搜索功能也糙。有次我想找一个国产数据库的源码,在 Gitee 上搜出来的结果排序乱七八糟,最后还是回 GitHub 才找着。

其实还有一类网站容易被忽略——像 Debian 的 sources.debian.org 或者 kernel.org 的 git 仓库。它们不算社交化编程平台,但存着最原始、最完整的源码快照。你想看 Linux 内核某个子系统的历史提交,在 GitHub 镜像上翻和直接去 kernel.org 翻,体验完全不同。后者没有花哨的界面,就是纯 git log,但信息密度高得惊人。

用这些网站久了,会发现一个规律:平台会死,代码不会。SourceForge 半死不活,但上面那些老项目照样有人下载编译。Google Code 2016 年关停,迁移到 GitHub 的仓库很多都断了 issue 历史。所以我现在看到好项目,第一件事是 clone 到本地,第二件事是看看有没有其他镜像。别把鸡蛋放一个篮子里,这话在源码托管上同样成立。

分享到: