最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

当编程语言掌握在企业手中,是生机还是危机?

  • 2019-04-02
  • 本文字数:2172 字

    阅读完需:约 7 分钟

当编程语言掌握在企业手中,是生机还是危机?

2019 年 4 月,Java 的收费时代来临了!


Java 是由 Sun 微系统公司在 1995 年推出的编程语言,2010 年 Oracle 收购了 Sun 之后,Java 的所有者也就自然变成了 Oracle。2019 年,Oracle 宣布将停止 Java 8 更新的免费支持,未来 Java 的更新只适用于已付费的许可证持有者。


Java 收费的消息让人不得不联想到这些问题,其它语言是否会和 Java 一样也加入到“收费大军”呢?当编程语言掌握在企业手中时,是生机还是危机?


近日,RedMonk 发布了 2019 年第一季度编程语言排行榜,排在前十位的分别是 JavaScript、Java、Python、PHP、C#、C++、CSS、Ruby、C 和 Objective-C。RedMonk 编程语言排行榜一年发布两次,其主要的排行依据是编程语言在 GitHub 和 Stack Overflow 上的代码使用情况与讨论数量,经过统计分析后排序得出编程语言在未来的采用趋势。



上图是 RedMonk 统计的从 2012 年到 2019 年,各个编程语言的排名变化情况。如果仔细观察分析这张图片中我们可以发现两个很有趣的现象。


第一是编程语言的头部竞争一直都比较平稳,RedMonk 的 Top 5 玩家 JavaScript、Java、PHP、Python 和 C#,自 2014 年开始就没有变过,就连排位顺序也只是出现过几次很小的变动。


第二是 RedMonk 榜单排在第 10 位到第 20 位的编程语言中,很多上升速度比较快的编程语言背后都有公司支持。


  • 排在第 10 位的 Objecr-C:Object-C 最初是由 Brad Cox 和 Tom Love 开发的,但是后来被 Apple“收编”了。

  • 排在第 11 位的 Swift:Swift 是 Apple 2014 年发布的新开发语言,易学易用。

  • 排在第 12 位的 TypeScript:TypeScript 最初是微软的一个内部项目,2014 年微软正式发布该语言。

  • 排在第 15 位的 Go:Go 是由 Google 员工 Robert Griesemer、Rob Pike 和 Ken Thompson 于 2007 年开发的,2009 年开源,并快速成为了构建云应用程序的核心语言。

  • 排在第 20 位的 Kotlin:Kotlin 最初是由 JetBrains 开发的,2017 年被 Google“收编”用于 Android 开发。


其实,早前的 Web 语言基本是由黑客个人编写的,例如 PHP 是 Rasmus Lerdorf 编写的, Python 是 Guido Van Rossum 编写的。20 世纪 90 年代末是互联网发展的黄金时代,当时涌现出的大量草根项目和小型项目都在后来发展称了大型项目。以编程语言为例,当时人们不再使用 C 语言来构建 CGI Web 应用,而是在积极采用 PHP、JavaScript 等其它语言。


“C++之父” Bjarne Stroustrup 在攻读博士学位时就开始研究 C++,然而直到 1983 年,他才在 AT&T 使用了 C++,他在回忆这段经历时表示:


我在开发 C++时,AT&T 其实正面临着困境,AT&T 构建的系统比大多数组织要更复杂,可靠性要求更高,所以我们必须自己来影响市场,制定满足我们自己需求的标准,否则的话,我们将没有工具来构建系统。

在我开发 C++之前,Ken Thompson 和 Dennis Ritchie 已经开发了 Unix 和 C。AT&T 可能是世界上最大的软件工具的“民用用户”,我们使用了更为广泛的系统:从最小的嵌入式处理器到最大的超级计算机和数据处理系统。所以,我们当时的想法就是这个语言要尽可能多的适用于这些技术文化和平台。

通用性至关重要,专有特性会被视为限制平台和供应商的选择。因此,AT&T 无论是过去,还是现在,一直都是是正式标准的主要支持者(例如,ISO C、ISO C++)。

换句话说,AT&T 通过推动 C++ 来成为行业标准,而 C++也通过 AT&T 从一个博士生心血来潮的作品成为了一个行业规范。


但是当时间行进至 21 世纪,这种情况就发生了变化。如果说“互联网+”初期是惠及了民众,那么当下一波浪潮移动应用到来时,主导者就变成了企业。语言规则主要由 Google、Apple 和 Microsoft 主导。


很多新出现的语言一开始就是由企业赞助的,例如 Microsoft 的 CNo,这些新的编程语言汲取了过去的经验教训,在默认情况下,每种新语言都是开源的,也不会再有一家企业试图用专有语言来构建专有程序的情况了。当然,也有一些最初由黑客开发的语言被企业“收编”,例如 Object-C。


在这一时期,网络和应用程序的未来大部分是建立在企业的现金上,而不是基于社区动力。那么,这种情况是好是坏呢?


从上文中不难看出,当下流行的编程语言中有很大一部分背后是有企业投资的。企业投资的好处是资金充裕,编程语言能够持续稳定的发展,不会突然夭折。但是也有弊端,就是企业可能会从中获取利润,例如 Swift,每有一个使用 Swift 构建的应用程序,Apple 就会从中 30%的费用。


更为恐怖的是,企业主导编程语言有可能会导致生态系统锁定,而开源编程语言则是形成这种锁定的重要环节。一旦企业的生态系统和应用程序重度依赖于某种编程语言,且无法轻易被替换时,那么就很可能会被该编程语言背后的公司牵着鼻子走,就像之前 Oracle 在数据库领域的“厂商锁定”和 IBM 在大机领域的“厂商锁定”。


编程语言的“厂商锁定”并不是远在天边,就在不久之后,Java 8 更新就要开始收费了!2019 年 1 月份,Oracle 宣布将停止 Java 8 更新的免费支持,未来 Java 的更新只适用于已付费的许可证持有者,无有效许可证的用户不能将 Java 8 的安全更新应用于商业用途。



(图源网络,Oracle 发给用户的关于 Java 8 收费的提醒邮件)


从 2019 年 4 月起,Oracle 会每季度发布一次 Java 8 的重大修补更新,非公开的首次重大修补更新将于 4 月 16 日发布。在很多企业应用中,Java 8 仍是主力,相信 Oracle 这次的收费举动,会对众多企业产生影响。


2019-04-02 16:4210659
用户头像

发布了 526 篇内容, 共 240.9 次阅读, 收获喜欢 1543 次。

关注

评论 2 条评论

发布
用户头像
可以使用openjdk,oracle收购java后java的发展感觉还是有加快的,后续很难说,但对一门有二十年历史的编程语言来说,oracle到现在为止做的还算ok
2019-04-25 10:29
回复
用户头像
收费的oracoljdk不是java语言,你这样说容易误导人。
2019-04-09 07:46
回复
没有更多了
发现更多内容

面试必问:JVM 如何确定死亡对象?

做梦都在改BUG

Java 面试 JVM

mac电脑能恢复安卓手机丢失的数据吗?

Rose

mac电脑 安卓数据恢复

连接 AI,NebulaGraph Python ORM 项目 Carina 简化 Web 开发

NebulaGraph

Python ORM 图数据库

Nautilus Chain 首个生态基础设施 Poseiswap,公布空投规则

威廉META

互联网工程师1480道Java面试题及答案整理( 2023年 整理版)

Java你猿哥

Java 面试 面经 春招 Java八股文

最全金融数据安全政策汇编,你应该需要它!( 附下载 )

极盾科技

数据安全

MobTech 秒验|防控羊毛党

MobTech袤博科技

开源即巅峰!《Java程序性能优化实战》GitHub三小时标星已超34k

做梦都在改BUG

Java 性能优化 性能调优

Nautilus Chain 首个生态基础设施 Poseiswap,公布空投规则

鳄鱼视界

在GitHub首页3分钟被下架!爱奇艺《高并发网关设计》笔记被盗?

做梦都在改BUG

Java 负载均衡 高并发 网关设计

DaVinci Resolve Studio 18(达芬奇调色剪辑)中文版

Rose

达芬奇18破解版

解密COUNT(*)与COUNT(1):SQL查询你选哪个更高效?

Java你猿哥

Java sql 后端 ssm Java工程师

一文告诉你如何一键复现“TSBS 时序数据库性能基准测试报告”测试结果

TDengine

tdengine 性能测试 时序数据库

MobTech MobLink|场景分享的原理

MobTech袤博科技

夜莺n9e监控配置支持电话短信报警

外滩运维专家

夜莺监控 电话报警 短信报警 夜莺监控电话

龙蜥白皮书精选:面向异构计算的加速器 SDK

OpenAnolis小助手

开源 sdk 异构计算 加速器 龙蜥白皮书

GitHub上架即巅峰!《Spring Cloud微服务架构实战》标星已超30k

做梦都在改BUG

Java 架构 微服务 Spring Cloud

扫盲篇:Java中为啥一个 main 方法就能启动项目?

Java你猿哥

Java JVM ssm Java工程师

云原生容器高可用运维能力应用

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

Github上获赞59.8K的面试神技—1658页《Java面试突击核心讲》

Java你猿哥

Java 架构 面试 面经 春招

IM跨平台技术学习(七):得物基于Electron开发客服IM桌面端的技术实践

JackJiang

即时通讯 即时通讯IM

基础篇丨链路追踪(Tracing)其实很简单

阿里巴巴云原生

阿里云 云原生 Tracing

Alibaba官方上线!Java并发编程全彩图册(终极版)GitHub已置顶

做梦都在改BUG

Java 并发编程 多线程 高并发

官方文档 | 【JVM调优体系】「GC底层调优实战」XPocket为终结性能问题而生—开发指南

洛神灬殇

Java JVM 3月日更 XPocket 技术 优化体系

一看就懂,一学就会的Raft解析

爱德华

raft PAXOS 共识算法 深入理解分布式共识算法

专业的RAW图片处理:DxO PhotoLab 6 中文直装版

真大的脸盆

Mac Mac 软件 raw raw图片处理软件 Raw图像处理软件

阿里P7架构师的独家分享——SpringCloud 微服务实战笔记

Java你猿哥

Java 架构 微服务 Spring Boot 面经

警惕看不见的重试机制:为什么使用RPC必须考虑幂等性

做梦都在改BUG

灵魂拷问:你写的SQL一般有几个JOIN ?​

Java你猿哥

Java sql 后端 ssm join

如何使用责任链默认优雅地进行参数校验?

做梦都在改BUG

Linux 的 TCP 连接数量最大不能超过 65535?

Java你猿哥

Java Linux 后端 ssm

当编程语言掌握在企业手中,是生机还是危机?_编程语言_Sambodhi_InfoQ精选文章