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

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\u0026amp;T使用了C++,他在回忆这段经历时表示:

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

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

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

换句话说,AT\u0026amp;T 通过推动 C++ 来成为行业标准,而C++也通过AT\u0026amp;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这次的收费举动,会对众多企业产生影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql如何处理null值_如何正确处理SQL中的NULL值

sql如何处理null值前言 (Preface) A friend who has recently started learning SQL asked me about NULL values and how to deal with them. If you are new to SQL, this guide should give you insights into a topic that can be confusing to beginners.最近开始学习SQL的…

名言警句分享

“当你想做一件事,却无能为力的时候,是最痛苦的。”基拉大和转载于:https://www.cnblogs.com/yuxijun/p/9986489.html

文字创作类App分享-简书

今天我用Mockplus做了一套简书App的原型,这是一款文字创作类的App,用户通过写文、点赞等互动行为,提高自己在社区的影响力,打造个人品牌。我运用了Mockplus基础组件、交互组件、移动组件等多个组件库,简单拖拽&#xf…

数据可视化 信息可视化_动机可视化

数据可视化 信息可视化John Snow’s map of Cholera cases near London’s Broad Street.约翰斯诺(John Snow)在伦敦宽街附近的霍乱病例地图。 John Snow, “the father of epidemiology,” is famous for his cholera maps. These maps represent so many of our aspirations …

android 接听和挂断实现方式

转载▼标签: android 接听 挂断 it 分类: android应用技巧 参考:android 来电接听和挂断 支持目前所有版本 注意:android2.3版本及以上不支持下面的自动接听方法。 (会抛异常:java.lang.Securi…

Eclipse External Tool Configration Notepad++

Location: C:\Program Files\Notepad\notepad.exe Arguments:  ${resource_loc} 转载于:https://www.cnblogs.com/rgqancy/p/9987610.html

利用延迟关联或者子查询优化超多分页场景

2019独角兽企业重金招聘Python工程师标准>>> MySQL并不是跳过offset行,而是取offsetN行,然后返回放弃前offset行,返回N行,那当offset 特别大的时候,效率就非常的低下,要么控制返回的总页数&…

客户流失_了解客户流失

客户流失Big Data Analytics within a real-life example of digital music service数字音乐服务真实示例中的大数据分析 Customer churn is a key predictor of the long term success or failure of a business. It is the rate at which customers are leaving your busine…

Java 动态加载class 并反射调用方法

反射方法: public static void main(String[] args) throws Exception { File filenew File("D:/classtest");//类路径(包文件上一层) URL urlfile.toURI().toURL(); ClassLoader loadernew URLClassLoader(new URL[]{url});//创…

Nginx:Nginx limit_req limit_conn限速

简介 Nginx是一个异步框架的Web服务器,也可以用作反向代理,负载均衡器和HTTP缓存,最常用的便是Web服务器。nginx对于预防一些攻击也是很有效的,例如CC攻击,爬虫,本文将介绍限制这些攻击的方法,可…

快速数据库框架_快速学习新的数据科学概念的框架

快速数据库框架重点 (Top highlight)数据科学 (Data Science) Success in data science and software engineering depends on our ability to continuously learn new models and concepts.数据科学和软件工程的成功取决于我们不断学习新模型和概念的能力。 Both domains are…

Linux实战教学笔记12:linux三剑客之sed命令精讲

第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等。…

activiti 为什么需要采用乐观锁?

乐观锁 为什么需要采用乐观锁? 由于activiti一个周期的transaction时间可能比较长,且同一流程实例中存在任务并发执行等场景。设计者将update、insert、delete事务性的操作推迟至command结束时完成,这样尽量降低锁冲突的概率,由…

Python实现三级菜单(字典和列表的使用)

menu { 北京: { 海淀: { 五道口: { soho: {}, 网易: {}, google: {} }, 中关村: { 爱奇艺: {}, 汽车之家: {}, 优酷: {} …

停止使用p = 0.05

How many of you use p0.05 as an absolute cut off? p ≥ 0.05 means not significant. No evidence. Nada. And then p < 0.05 great it’s significant. This is a crude way of using p-values, and hopefully I will convince you of this.你们中有多少人使用p 0.05作…

centos7系统根目录扩容

比如 点击了后 点击创建虚拟磁盘 选择一个 20G 然后启动虚拟机使用fdisk查看所有的磁盘 看是否新增了一个20G的硬盘 [rootlocalhost ~]# fdisk -l磁盘 /dev/sda&#xff1a;8589 MB, 8589934592 字节&#xff0c;16777216 个扇区 Units 扇区 of 1 * 512 512 bytes 扇区大小(…

instrumentation模拟很多activity的操作

android.app.Instrumentation好像原来是用来做测试的, 可以用来模拟很多activity的操作 主要代码如下 如果在文本框中输入24,或者25 点击按钮就能模拟音量加减键 键值可以查看android.view.KeyEvent [java] view plaincopy package com.qefee.testinstrumentation; import…

成像数据更好的展示_为什么更多的数据并不总是更好

成像数据更好的展示Over the past few years, there has been a growing consensus that the more data one has, the better the eventual analysis will be.在过去的几年中&#xff0c;越来越多的共识是&#xff0c;数据越多&#xff0c;最终的分析就越好。 However, just a…

支付宝架构

支付宝系统架构图如下&#xff1a; 支付宝架构文档有两个搞支付平台设计的人必须仔细揣摩的要点。 一个是账务处理。在记账方面&#xff0c;涉及到内外两个子系统&#xff0c;外部子系统是单边账&#xff0c;满足线上性能需求&#xff1b;内部子系统走复式记账&#xff0c;满足…

怎样可以跨进程测试

在Android系统下模拟鼠标键盘等输入设备&#xff0c;网络上资料非常多。但不少是人云亦云&#xff0c;甚至测试都不愿测试一下就抄上来了。这次写一点体会&#xff0c;当作抛砖引玉。0. 背景知识&#xff1a;众所周知&#xff0c;Android是将Framework架在Linux之上的系统。Lin…