云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

现在,是时候谈一谈 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 或任何基础设施的职位,你应该会非常强调安全性。

总 结

软件的发展如盛壮之时的骐骥,一日而驰千里。它正在融合到其他所有的行业领域。既然软件是一个不断发展的领域,那么学习编程并提高自己的软件工程技能,在未来会有巨大的回报。此外,找出软件发展最快的领域,并将时间投入其中,可以让你获得更好的发展。

不断学习,努力寻找一切可以利用的机会,或者是可以在不断发展的软件领域中,找到可以为小众服务的产品,当这个小众成为主流时,你最终可以将一个成功的产品掌握在你的手中,这可能成为你未来的成功。如果失败了,那将是成为产品专家之路的一次巨大的经历。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-04-08
本文作者:QuanticDev
本文来自:“AI前线公众号”,了解相关信息可以关注“AI前线”

如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

    现在,是时候谈一谈 2020 年及以后的软件工程状况了. 本文以 GitHub Octoverse 数据为基础,加上我作为一个拥有十年经验的软件工程师的经验和观察.软件工程在过去 20 年来实现了爆炸 ...

  2. 网络同传软件有哪些_2020年软件工程现状:Python或将成为第一大编程语言,中国开源涨势最猛...

    作者 | QuanticDev 译者 | Sambodhi 编辑 | 钰莹 现在,是时候谈一谈 2020 年及以后的软件工程状况了.本文以 GitHub Octoverse 数据为基础,加上我作为一个 ...

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

    现在,是时候谈一谈 2021年及以后的软件工程状况了. 本文以 GitHub Octoverse 数据为基础,加上我作为一个拥有十年经验的软件工程师的经验和观察.软件工程在过去 20 年来实现了爆炸式 ...

  4. python真的超过java了吗-JAVA会被Python超越成为世界上第一大编程语言吗?

    关键时刻,第一时间送达! 这个路还还长,暂时不会,未来5年不会,10年有可能,就看现在小学生.初中生学习的怎么样.最近,也在观注这方面的,偶尔看到新闻说python纳入到高考中,想想如果真纳入了,过4 ...

  5. 2020 OpenInfra Days China 圆满落幕,100+ 全球大咖共话开源基础设施智未来

    8 月 16-17 日,2020 OpenInfra Days China 在线上隆重召开.本次大会以"智能开源基础设施"为主题,秉持"无边界协作(Collaborati ...

  6. 软件测试行业未来发展趋势 2020软件测试行业现状及市场前景规模分析

    2020软件测试行业发展现状及市场前景规模分析 软件测试(英语:SoftwareTesting),描述一种用来促进鉴定软件的正确性.完整性.安全性和质量的过程.换句话说,软件测试是一种实际输出与预期输 ...

  7. 2020 年最佳流行 Python 库 Top 10

    点击上方蓝色小字,关注"涛哥聊Python" 重磅干货,第一时间送达 来源:Python中文社区 2020年最热门的Python库有哪些?规则很简单.我们正在寻找的库满足以下条件: ...

  8. 谁是 2020 年最强 Python 库?年度 Top10 出炉

    蕾师师 发自 凹非寺  量子位 报道 | 公众号 QbitAI 2020年已经过去了,国外的一家专门提供Python服务的网站Troy Labs,盘点出了2020年发布的Python库Top10. 上 ...

  9. 谁是2020年最强Python库?年度Top10出炉

    蕾师师 发自 凹非寺  量子位 报道 | 公众号 QbitAI 2020年已经过去了,国外的一家专门提供Python服务的网站Troy Labs,盘点出了2020年发布的Python库Top10. 上 ...

最新文章

  1. 收藏 | 2018年AI三大顶会中国学术成果全链接(附视频、PPT、论文)
  2. 年轻人裸辞,需不需要“冷静期”?
  3. 谷歌浏览器flash_谷歌浏览器不支持Flash Player的问题
  4. [react] React根据不同的环境打包不同的域名?
  5. linux服务器情况
  6. C#面向对象系列(2):构造函数的用法
  7. 前端为什么要工程化?
  8. 计算某一天是这一年的第几天
  9. 【学习】js学习笔记---数组对象
  10. php bing翻译的api,使用PHP和SOAP访问Bing翻译服务
  11. iphone 扩容测试软件,拯救iPhone 12 64G!闪迪打造的扩容神器上手:轻松省钱
  12. Ceres Solver介绍
  13. 你觉得自己牛逼在哪儿?
  14. java中把gui插入图片_在java中使用图片实现gui的美化.pdf
  15. Centos 8.0 安装图形化界面(超详细)
  16. android 4.4 电池电量管理底层分析(C\C++层)
  17. 搭建FTP报错:Job for vsftpd.service failed because the control process exited with error code. See
  18. oracle+ebs+om+流程,Oracle EBS OM Order is not eligible for booking
  19. ”操作必须使用一个可更新的查询“的解决
  20. Android中四大组件

热门文章

  1. storyboard搭建项目_swift项目第五天:swift中storyBoard Reference搭建主界面
  2. Java后端开发需要具备哪些知识结构
  3. 如何提高Java代码的可重用性?
  4. 商城html源码_Java开源商城源码推荐,从菜鸡到大神,永远绕不开的商城系统
  5. centos 8 kubernetes安装详解_8方面图文详解,电气安装工程施工工艺!
  6. mysql安装被打断_Mysql的安装/性能优化/安全加固
  7. c语言优化冒泡法,C语言:冒泡法排序一组数,如何优化?
  8. java在W n8安装_在windows中安装JDK8并配置环境变量-java环境变量设置
  9. 启动失败代码2_菲斯曼燃气壁挂炉故障代码大全及解决方法
  10. Linux里面lvs的基础命令,Linux中使用ipvsadm配置LVS集群的基本方法