NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

2020 年软件工程现状:Python 或将成为第一大编程语言,中国开源涨势最猛

  • 2020-04-08
  • 本文字数:3230 字

    阅读完需:约 11 分钟

2020年软件工程现状:Python或将成为第一大编程语言,中国开源涨势最猛

现在,是时候谈一谈 2020 年及以后的软件工程状况了。


本文以 GitHub Octoverse 数据为基础,加上我作为一个拥有十年经验的软件工程师的经验和观察。软件工程在过去 20 年来实现了爆炸式的增长,而且这种势头似乎还在保持。据《财富》(Fortune)数据显示,2019 年全球前 15 家科技公司的总收入达到了创纪录的 1.67 万亿美元,比 2018 年增长了 2%。今天的软件公司比以往任何时候都要多。



此外,现有的非软件公司在产品中引入了更多的软件组件,从汽车到洗衣机,无所不包。未来是软件的天下,但并非所有的软件都是平等的。确定软件最有前途和发展最快的领域,可以帮助你实现事业和项目的腾飞。投资于一个发展中的领域,可以帮助你更容易找到一份工作,并获得更高的报酬,帮助你为项目筹到资金。那么,闲话少叙,直入正题。

编程的发展

2019 年,有 1000 万开发者新人进入了 GitHub。我猜想大部分新用户都是来自美国以外的地区,但即便如此,这仍然是一个巨大的数字。非常感谢 GitHub,能够在几乎没有任何问题的情况下,将规模扩大到这样的程度,我对 GitHub 表示敬意。



这些新开发人员为来自世界各地的 4400 多万个仓库做出了贡献。80% 的代码提交来自美国以外的国家和地区。同样,在美国以外的国家和地区,科技行业也在快速发展,GitHub 的数据也表明了这一点。也许在几十年内,硅谷将会有多个竞争者争夺世界软件工程中心的头把交椅。


还有一点要注意,GitHub 的数据并不能代表整个世界,但它能很好地反映出总的趋势,因为它是世界上最大的代码托管提供商。


去年,在全球财富 50 强企业中,近 70% 的企业为开源做出了贡献。70% 这一数字是巨大的,根据 GitHub 的数据,这一数字还在不断增长。不仅如此,去年 GitHub 上有 290 万个组织,这个数字听起来大得离谱,但随着越来越多的公司将软件组件引入到他们的流程中,即使再大的数字也将会变得司空见惯。


开源的发展

平均而言,GitHub 上的每个开源项目都有来自 41 个不同国家和地区的贡献者。这再次表明了美国以外的国家和地区的增长速度。



继美国之后,开源的使用在中国、印度和德国加快了速度。中国的开发人员分叉(Fork)和克隆的项目比去年增长了 48%。我想,没有人会对中国软件的增长感到意外。问题不在于中国是否会超越美国,而是在于何时超越美国。



开源使用情况


如果我们从大洲层面来看,亚洲已经领先于美国和欧洲。然而,看到南美洲和非洲远远落后,单单是欧洲的贡献还不到三分之一,这三大洲的人口加起来有 16 亿,出现这样的状况,是令人悲哀的,也有些令人惊讶。



提示:我专门写过一篇如何正确使用 GitHub 进行软件开发的文章。在这篇文章中,我提供了完整的 GitHub 工作流程,同时在我的 android-docker 开源项目上完成了一些实际工作。同时,我还提供了一些关于高效使用 GitHub 的实用评论和技巧。如果你想阅读的话,链接文末。

顶级库

在每一种编程语言的前 50 名开源包中,包括 JavaScript、Python、Ruby 等,都有大量的依赖项目。例如,尽管平均每个直接贡献者不到 40 个,但流行的 npm 包可能是数以百万计的其他仓库的依赖项。顶级依赖包有 Java、Python 和 JavaScript,这一点毫不奇怪。它们是目前排名前三的编程语言,我并不认为这一状况很快就会改变。


热门项目

随着开源运动风起云涌,人们对开源的贡献也越来越大。我强烈建议大家为开源项目做出贡献。这是一个进入开源社区并获得宝贵经验的绝佳机会。此外,你还可以在简历中列出你所创建和贡献的项目,这是一个很大的加分项。


你可以在表格中看到,去年贡献最多的项目也是最有用的项目之一。例如,Visual Studio Code 是最好的编程文本编辑器之一。TensorFlow、React Native 和 Kubernetes 也是如此。它们成为了无价的工具,人们喜欢它们并希望用自己的贡献来改进它们也就不足为奇了。


顶级编程语言

现在,是时候分析一下编程语言了。不难看出,作为 Web 的主要支撑语言,JavaScript 仍然排名第一,这并不令人震惊。我预计 Python 会在某个时候超越 JavaScript,但具体什么时候,我们还得拭目以待。事实上,在 GitHub 之外,Python 可能已经是第一大编程语言了。和以往一样,Java 与 PHP、C++ 一起并驾齐驱。



让我感到惊讶的是,TypeScript 的迅猛崛起。我曾预言,一旦 TypeScript 所有好的特性最终都出现在 JavaScript 本身中,它就会像 CoffeeScript 和其他许多东西一样被丢弃。相反,只有少数几个 TypeScript 特性最终出现在 JavaScript 中,包括私有字段 / 静态字段、可选链接和 null 合并。TypeScript 保留了它的独特特性,并继续在市场上大行其道。然而,我仍然认为,使用简单、现代的 JavaScript 会让 TypeScript 以简单和干净的方式脱颖而出。TypeScript 增加了大量的复杂性,包括工具和依赖项(即第三方类型定义包),我认为这并不值得。另一方面,我不是预言家,所以我们只能拭目以待,看看它是否与 CoffeeScript 有同样的命运。

数据科学与机器学习

2019 年是数据科学和机器学习的一年。我完全期望,在几乎整个十年中,它将会以同样的轨迹持续下去。分析和理解海量数据具有很大的价值。尤其是与机器学习相结合,这两者所产生的的价值可能会超过计算机科学的其他所有分支。我想说的是,唯一能让数据科学和机器学习退居幕后的是量子计算的突破。否则的话,在计算机科学这个最热门的分支领域投入一些时间是个好主意。就像我常说的那样,如果你投资一项正在发展的技术,你就能随之成长。



机器学习在生活的方方面面都有应用。利用机器学习预测购物行为并提供定制的推荐就是一个很好的例子。像 Siri 和 Alexa 这样的虚拟个人助理,像 Google 和 Microsoft Teanslate 这样的自动化翻译服务,垃圾邮件过滤器、自动化客户支持等等,都越来越多的以机器学习为基础。


云计算、DevOps 与安全软件

系统的复杂性和规模越来越大。此外,像机器学习这样的特定任务需要非常规的服务器硬件,如 TPU,即张量处理单元(Tensor processing units),这是一种定制设计的硬件,用于加速机器学习任务。这就导致了企业内部需要进行大量的工作来容纳服务器并手动维护它们。解决这个问题的最明智的做法是使用 DevOps 工具实现服务器部署和维护的自动化。将这些服务器迁移至云计算供应商那里也是合理的,这样你就不必再看别的裸机服务器了。


随着对云托管和 DevOps 需求的增加,这些技能在市场上越来越受到青睐。如果你有从事硬件和网络工作的愿望,那么尝试一下云服务提供商和 DevOps 工具,是一项不错的投资。大多数云服务提供商都提供了慷慨的免费套餐,因此,你可以在 Google Cloud、Amazon Web Services、Azure 或其他任何较小的云服务供应商创建一个免费的账户,并立即开始试验和学习。



显然,将你所有数据都搬到云端上,会带来重大的安全隐患。这增加了任何从事 DevOps 或云的人对安全意识的需求。此外,这也增加了对专用软件和网络安全工程师的需求。投入时间去了解云计算和 DevOps 决策的安全影响至关重要。如果你打算面试 DevOps 或任何基础设施的职位,你应该会非常强调安全性。


总结

软件的发展如盛壮之时的骐骥,一日而驰千里。它正在融合到其他所有的行业领域。既然软件是一个不断发展的领域,那么学习编程并提高自己的软件工程技能,在未来会有巨大的回报。此外,找出软件发展最快的领域,并将时间投入其中,可以让你获得更好的发展。不断学习,努力寻找一切可以利用的机会,或者是可以在不断发展的软件领域中,找到可以为小众服务的产品,当这个小众成为主流时,你最终可以将一个成功的产品掌握在你的手中,这可能成为你未来的成功。如果失败了,那将是成为产品专家之路的一次巨大的经历。


本文引用的资源:


GitHub Octoverse


Wikipedia:最大的信息技术公司列表


Stack Overflow 年度开发人员调查


Hired:软件工程师状况


本文提到的文章:


《如何正确使用 GitHub 进行软件开发:我的完整开发工作流程》


(How to Correctly Use GitHub for Software Development - My Full Dev Workflow)


原文链接:


https://quanticdev.com/articles/software-engineering-in-2020/


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-04-08 17:122862

评论

发布
暂无评论
发现更多内容

2022年个人云盘行业发展分析和厂商实力洞察

易观分析

用户 私有云盘

4种LED显示屏箱体连接方式

Dylan

LED LED显示屏 户外LED显示屏

房价危机:疫情后时代席卷全球的新变局|数据报告

前嗅大数据

数据分析 数据采集 爬虫案例 爬虫工具 房价

I see you!「2022 龙蜥社区优秀贡献者」正式启动

OpenAnolis小助手

开源 龙蜥社区 2022 奖项 优秀贡献者

数据可视化图表系列解析——漏斗图

Data 探险实验室

数据分析 可视化 数据可视化 图表 可视化数据

Github 标星 41.6K!Alibaba内网Java性能调优实战(全彩小册开源)

架构师之道

Java 程序员 架构 面试

pip安装'torch'出现PackageNotFoundError报错解决办法

代码的路

Python

新一代云原生日志架构 - Loggie的设计与实践

网易数帆

开源 云原生 日志 Loggie 企业号 1 月 PK 榜

平安健康 Dubbo 3 升级、迁移和验证之路

阿里巴巴中间件

阿里云 云原生 dubbo

TiDB 底层存储结构 LSM 树原理介绍

C++后台开发

数据结构 后端开发 LSM树 TiDB

数据的不确定性及可视化方法

搞大屏的小北

云堡垒机优点简单说明-行云管家

行云管家

网络安全 堡垒机 云堡垒机

关于局域网中的攻击溯源问题

郑州埃文科技

IP溯源 局域网

Redux与前端表格施展“组合拳”,实现大屏展示应用的交互增强

葡萄城技术团队

如何通过Java应用程序添加或删除 PDF 中的附件

在下毛毛雨

PDF Java’ 添加注释

南京市等级测评机构有哪些?哪里可以查到?

行云管家

南京 等级测评机构

工业5.0:为何是下一个10年的制造业关键性变革方向?

PreMaint

工业4.0 智能制造

Python对txt进行读写操作

代码的路

Python

这可能是Feign调用可重试的最佳方案了

JAVA旭阳

Java spring

NFTScan 与 Afflux 孵化器达成战略合作伙伴,共同促进 Web3 生态发展!

NFT Research

NFT

啥玩意儿?一个计时模块要做2天?

为自己带盐

dotnetcore

为什么 APISIX Ingress 是比 Ingress NGINX 更好的选择?

API7.ai 技术团队

APISIX Ingress Controller Kubernetes Serverless NGINX Ingress Controller

Sentinel Go-毫秒级统计数据结构揭秘

阿里巴巴中间件

Go 阿里云 云原生 Sentienl

AirServer正式版Mac7.2.7屏幕软件下载

茶色酒

AirServer AirServer2023

基于 APISIX 的服务网格方案 Amesh 积极开发中!

API7.ai 技术团队

Service Mesh Service Mesh 服务网格 服务网格 APISIX

Python将二维数组输出为图片

代码的路

Python

pip安装更换镜像

代码的路

Python.

未来软件开发主流模式——低代码开发

力软低代码开发平台

秒云荣获四川省创新型中小企业认定

MIAOYUN

创新型中小企业 2022创新型中小企业 四川省创新型中小企业 科技型中小企业

软件测试/测试开发 | 一文搞定 Appium 环境配置

测试人

软件测试 自动化测试 测试开发 appium app自动化测试

软件测试/测试开发丨如何从 0 开始学 Python 自动化测试开发(一)

测试人

Python 软件测试 自动化测试 测试开发

2020年软件工程现状:Python或将成为第一大编程语言,中国开源涨势最猛_AI&大模型_QuanticDev_InfoQ精选文章