AI 前线导读: 本文是 GitHub2018 年 Octoverse 报告——GitHub 活动的趋势和洞见,开源社区和 GitHub 数据科学团队等系列文章的一部分。
仅在 2018 年,GitHub 新用户数量就超过了前六年的总和,托管着超过 1 亿个存储库。所有这些增长都要归功于开源社区。2018 年,拥有不同开发经验水平的你们在这里共同构建、合作从兴趣爱好到专业工具的项目,涉猎范围广泛。随着这一年即将结束,我们希望 2018 年的 Octoverse 报告能够重点展示一些今年最活跃的新开源项目。
更多干货内容请关注微信公众号“AI 前线”(ID:ai-front)
我们从 2017 年 12 月 10 日到 2018 年 12 月 9 日提取的数据来回顾一下今年的新开源项目。2018 年顶级开源项目的评选标准分别是开源前 28 天收到 star 数最多,以及项目开源前 28 天贡献者数量最多的项目。
2018 年顶级项目
2018 年开源的顶级项目涵盖了从学习、代码到专业工具的各个领域,从娱乐辅助项目到用于完成工作的项目应有尽有。
对于那些刚接触代码或者编程语言的新手,你可能 star 了不少编码示例项目,例如trekhleb / javascript-algorithms 和leonardomso / 33-js-concepts, 以及快速教程,如30-seconds/30-seconds-of-code。
你还为 Hacktoberfest 的项目做出了贡献,比如将各种语言的 Hello World 程序添加到Hacktoberfest-2018 / Hello-world和Omkar-Ajnadkar / Hello-World,或将更复杂的算法示例添加到 VAR 解决方案/算法(https://github.com/VAR-solutions/Algorithms)。
像wangshub / wechat_jump_game这样的游戏项目为你带来很多乐趣,你为之贡献 star 数,或为这个项目贡献了代码,也许kelseyhightower / nocode 这样的项目也让你开怀大笑。 felixrieseberg / windows95和Microsoft / MS-DOS引发了一些怀旧情绪,迅速收获了你的 star 和贡献。
新的开源项目还帮助你在 TypeScript 开发中使用denoland / deno等工具完成工作,ValveSoftware / Proton帮你将游戏迁移到 Linux,facebookresearch / Detectron 可以支持图像识别算法的研究。
精华项目介绍
AI 前线对以上 10 个顶级开源项目的资料做了进一步挖掘,并选了几个对于开发者极具价值或特别有意思的项目重点介绍如下。
trekhleb / javascript-algorithms
本仓库包含了多种基于 JavaScript 的算法与数据结构。 每种算法和数据结构都有自己的 README,包含相关说明和链接,以便进一步阅读(还有 YouTube 视频) 。所有数据结构和算法被分为面向初学者和进阶者两类,其中数据结构涵盖链表、队列、栈、哈希表、堆、树、图等,算法则分为数学、集合、字符串、搜索、排序、链表、树、图、加密等内容,对于想要入门算法和数据结构且惯用 JS 的开发者来说,是一个非常友好的开源项目。更棒的是,这个开源项目的 README 文档还支持简体中文、繁体中文、韩语、日语等 8 种语言,中国开发者也可以轻松上手。
leonardomso / 33-js-concepts
这个项目罗列出了 JavaScript 开发者应懂的 33 个概念,旨在帮助开发人员掌握 JavaScript 中比较重要的基础和进阶概念。这并不是必备,但在未来学习(JavaScript)时,可以作为一篇指南。这个项目是基于 Stephen Curtis 撰写的文章创建的,你可以在这里阅读这篇文章。
这个项目同样有一个对应的中文版本,作者 stephentian 在其中附上了关于这些概念在国内的一些文章和视频。
30-seconds/30-seconds-of-code
30 秒学会编程:本仓库是精选 JavaScript 代码段的集合,这些代码段都是开发者可以在 30 秒或更短的时间内理解的。
举个例子,dayOfYear 代码段用于从 Date 对象获取一年中的某一天。
通过 new Date()和 Date.prototype.getFullYear()可以将一年中的第一天获取为一个 Date 对象,然后用输入的
data
减去这个值并除以每天的毫秒数就能算出输入的日期是一年中的第几天。使用 Math.floor()可以将生成的日期计数适当地舍入为整数。
Omkar-Ajnadkar/Hello-World
“Hello Word”大概是所有人学习一种新编程语言时会编写的第一段代码了,而这个代码库的目标是涵盖所有编程语言中的“Hello World”程序。
VAR-solutions/Algorithms
数据结构和算法:使用不同语言编写的算法结构部署示例。
wangshub/wechat_jump_game
中国开发者贡献的“教你用 Python 来玩微信跳一跳”。
2017 年 12 月 28 日下午,微信发布了 6.6.1 版本,加入了「小游戏」功能,并提供了官方 DEMO「跳一跳」。这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离。分数越高,那么在好友排行榜更加靠前。通过 Python 脚本自动运行,让你轻松霸榜。
其原理是利用图像识别精确测量出起始和目标点之间测距离,再估计按压的时间来实现精确跳跃。
获取源码
kelseyhightower/nocode
一个搞笑的莫须有“项目”:没有代码:没有代码是写出最安全可靠应用程序的最佳方法;什么也不写,不在任何地方应用。
Microsoft/MS-DOS
MS-DOS v1.25 和 v2.0 源代码:此 repo 包含 MS-DOS v1.25 和 MS-DOS v2.0 的原始源代码和已编译的二进制文件。
这些文件与 2014 年 3 月 25 日在计算机历史博物馆展示的是同一份文件,在此再次发布是为了方便人们查询,写作参考和用于作品中,对早期 PC 系统感兴趣的人可以用它进行探索和实验。
denoland
Deno 是由 Node 之父 Ryan Dahl 发布新的开源项目,使用 Go 语言代替 C++ 重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终提供一个安全的 TypeScript 运行时,支持 TypeScript 开箱即用,有人将它视为下一代 Node。
了解更多信息,可以参阅 InfoQ 之前的报道《Node之父ry发布新项目deno:下一代Node》。
ValveSoftware/Proton
Proton 是一个与 Steam 客户端一起使用的工具,允许 Windows 游戏在 Linux 操作系统上运行。它通过 Wine 来实现这一点。
大多数用户更愿意使用 Steam 客户端的 Proton,高级用户可以使用源代码更改 Proton。例如,一些用户可能希望使用具有特定 title 的不同版本的 Wine。
facebookresearch/Detectron
Detectron 是 Facebook AI Research 开源的软件系统,实现了最先进的物体检测算法,包括 Mask R-CNN。它是用 Python 编写的,由 Caffe2 深度学习框架提供支持。
在 FAIR,Detectron 已经应用于许多研究项目,包括:用于物体检测的特征金字塔网络,MASK R-CNN,检测和识别人体——目标相互作用,密集物体检测的焦点损失,非局部神经网络,学习分割所有目标,数据蒸馏:走向全方位监督学习,DensePose:室外密集人体姿态估计和群体规范化。
star 数 Top10 项目
根据 2018 年在 GitHub 上开源前 28 天累积的 star 总数,我们评选出 2018 年开源十大项目。
基于贡献者 Top10 项目
根据 2018 年 12 月之前,在 GitHub 上开源前 28 天内项目贡献者的总数,我们评选出十大开源项目。
新开源项目主题
与 2017 年相比,2018 年创建的开源项目数量增幅最大的是非编程语言类别。例如,下列排名第三的 dotnet 说明,为 Windows 开发应用程序的开源项目越来越多。在我们的编程语言编程语言TOP10一文中, JavaScript 当选为新项目中最流行的编程语言。在 2018 年的 Top 主题中,我们还看到 nodejs、react 和 vue 这些用于 JavaScript 开发的工具。机器学习也在 GitHub 上越来越受欢迎,标记了机器学习的开源项目也在榜单之列。
nodejs
react
dotnet
docker
android
machine-learning
api
ios
cli
vue
原文链接:
https://blog.github.com/2018-12-13-new-open-source-projects/
评论 1 条评论