2019 年 4 月,Java 8 收费时代到来了!2019 年 1 月份,Oracle 宣布将停止 Java 8 更新的免费支持,未来 Java 的更新只适用于已付费的许可证持有者。近日,Oracle 发送邮件通知用户 Java 8 第一次、收费的季度重大修补更新将在 4 月 16 号发布。
行业分析公司 Redmonk 于近日发布了 2019 年第一季度编程语言排行榜,排在前十位的分别是 JavaScript、Java、Python、PHP、C#、C++、CSS、Ruby、C 和 Objective-C。RedMonk 编程语言排行榜一年发布两次,其主要依据编程语言在 GitHub 和 Stack Overflow 上的代码使用情况与讨论数量,经过统计分析后排序得出编程语言在未来的采用趋势。
相信很多人在看到 RedMonk 的排行榜时都会有小小的疑惑,这和之前 TIOBE 发布的编程语言排行榜有点不同。TIOBE 发布的 3 月编程语言 Top 10 分别为:Java、C、Python、Visual Basic .NET、C#、JavaScript、PHP、SQL 和 Objective-C。
当编程语言掌握在企业手中,是生机还是危机?
但是,如果仔细对比这两份编程语言排行榜就会发现它们的 Top10 中有 7 个编程语言是相同,只是排名略有不同。事实上,编程语言的头部竞争一直都比较平稳,RedMonk 的 Top 5 玩家 JavaScript、Java、PHP、Python 和 C#,自 2014 年开始就没有变过,就连排位顺序也只是出现过几次很小的变动。
除去头部玩家,把观察范围扩大到编程语言 Top 20 中,大家还会发现一个更有趣的现象,那就是上升速度很快的编程语言背后都有公司支持。以 RedMonk 榜单为例,我们来看看这些“有背景”的编程语言:
• 排在第 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와 같이 처음부터 회사의 후원을 받습니다. 이러한 새로운 프로그래밍 언어는 기본적으로 각각의 새로운 언어는 오픈 소스이며 이를 수행합니다. 더 이상 회사가 독점 언어로 독점 프로그램을 구축하려는 상황은 없을 것입니다. 물론 Objective-C처럼 원래 해커가 개발한 언어를 기업에서 '채택'한 언어도 있습니다.
이 기간 동안 웹과 앱의 미래는 대부분 커뮤니티 추진력보다는 기업 자금을 기반으로 구축되었습니다. 그렇다면 이 상황은 좋은 것인가, 나쁜 것인가?
위에서 보면 인기 있는 프로그래밍 언어의 상당 부분이 기업 투자에 의해 뒷받침된다는 것을 쉽게 알 수 있습니다. 기업 투자의 장점은 자금이 충분하고, 프로그래밍 언어가 급사 없이 지속적이고 꾸준하게 발전할 수 있다는 점이다. 그러나 단점도 있습니다. 즉, 기업이 이를 통해 이익을 얻을 수 있다는 것입니다. 예를 들어 Swift는 Swift를 사용하여 구축된 모든 애플리케이션에 대해 수수료의 30%를 가져갑니다.
더 무서운 것은 기업이 주도하는 프로그래밍 언어가 생태계 종속으로 이어질 수 있으며, 오픈 소스 프로그래밍 언어는 이러한 종속을 형성하는 중요한 부분이라는 것입니다. . 기업의 생태계와 애플리케이션이 특정 프로그래밍 언어에 크게 의존하고 쉽게 교체할 수 없으면 데이터베이스 분야의 Oracle의 이전 "공급업체"와 마찬가지로 프로그래밍 언어 뒤에 있는 회사가 이를 주도할 가능성이 높습니다. 메인프레임 분야에서 IBM의 "공급업체 종속".
프로그래밍 언어의 "벤더 잠금"이 멀지 않은 미래에 Java 8 업데이트가 시작됩니다! 2019년 1월 Oracle은 Java 8 업데이트에 대한 무료 지원을 중단하겠다고 발표했습니다. 향후 Java 업데이트는 유료 라이센스 보유자에게만 제공됩니다. 유효한 라이센스가 없는 사용자는 Java 8 보안 업데이트를 상업적 목적으로 사용할 수 없습니다.
프로그래밍 언어가 기업의 손에 들어가면 생존의 기회일까 위기일까?
(사진 소스 네트워크, Java 8 요금에 대해 Oracle이 사용자에게 보낸 알림 이메일)
오라클은 2019년 4월부터 매 분기마다 Java 8에 대한 주요 패치 업데이트를 출시할 예정이며, 최초의 비공개 주요 패치 업데이트는 4월 16일에 출시될 예정입니다. 많은 엔터프라이즈 애플리케이션에서 Java 8은 여전히 주요 세력입니다. 저는 Oracle의 과금 움직임이 많은 기업에 영향을 미칠 것이라고 믿습니다.