文档章节

XXX 语言是世界上最好语言

netkiller-
 netkiller-
发布于 2016/09/29 21:05
字数 1236
阅读 238
收藏 1

XXX 语言是世界上最好语言

 

一个好的编译器/解释器决定一个语言的命运。

我们常常看到网上有人谈论语言的好坏,引起社区口水战,在这些话题中性能站了很大比例,很少人会去辩论语言的语法合理性,语言的设计缺陷。

语言的性能主要取决于一个好的编译器/解释器和一个开发包。

编辑器/解释器

好的编译器或解释器取决于社区的规模,基金会影响力与企业资金投入。

例如 C/C++ 有组织制定标准,各种企业参与其中。

Java 语言的资金投入是空前的,从SUN时代到Oracle时代,几乎所有大型企业都参与其中。

MS C++ / C# 仅凭微软一家之力也占据一席。

没有实力的Boland Delpha,C++ ... 只能退出市场。

像 D 语言这种优秀的语言,一直没有大企业支持,也很无奈。

2010年之后我们看到几乎大型项目都出自基金会,最有名的当属 Apache 基金会,民间社区项目时代终结。

松散的社区想设计开发性能优异编译器与解释器门槛太高。

Python 基金会每次要募集资金到位才能启动项目,pypy解释器开发了多年无法 release.

Perl 语言能挺到今天实则不易 Perl6 解释器的设计非常坎坷。

动态语言只有 PHP 发展的比较好,原因是他背后至少有一个公司,有全职员工。另外雅虎/Facebook等企业的贡献也是巨大。

node.js 只能依赖谷歌的V8引擎。

你要搞明白虚拟机是什么

虚拟机出现降低了语言的开发难度。如果你留意一下会发现最近五年诞生很多新语言。

80%的Java开发者搞不清什么虚拟机。这是因为JVM这个名字(Java 虚拟机),JVM 的设计之初是没有考虑过让VM运行其他语言的,有建议Oracle将“J”去掉变成“VM” 这样更好理解。

VM就是虚拟机,VM通常设计与平台无关,与语言无关,除了JVM还有很多虚拟机例如LLVM, Parrot等等。

运行在JVM虚拟机上的语言有 Scala, Groovy, Python, PHP, Perl ...;Apple 公司主要使用 LLVM 有 clang, swift ;Parrot 的 Perl6 。

有了虚拟机技术,就很容易开发一个全新的语言,首先你要设计好语法,关键字,然后定制VM模板,将你的语法翻译成VM的字节码,你的程序就可以运行。

这项工作至少需要用三年吧,你就能开发出一个新语言。不要高兴太早这时你的语言啥也干不了,因为只有 if,else,print,class,while ... 写个helloworld 是没有问题的。

一个好的语言还有一个好的开发包/库,没有开发包支持,语言啥也干不了,想访问mysql对不起不行,你还需要做很多工作例如Socket, 多线程,文件系统......。

开发库/包

如上面所说,你开发了一门全新的语言,但是没有一个好的开发包,那么这个语言十分尴尬。

D语言就是这样一个语言,他的设计是为了替代C++。但是没有十分完善的开发包,只能靠社区提供。

我曾经迷恋过一段D语言,想用它做点东西,MySQL 访问不了,社区的库太旧并且没有sable版本。

不是每个社区都有实力开发核心库/包的,开发核心库需要成百上千的人参与,至少短期开发不出来,所以很多语言都要以来其他库。 例如 Scala 依赖 JDK. PHP 依赖glibc以及很多第三方C语言*-devel.rpm包。

GLIBC 是个奇迹

JDK 是拿钱砸出来的还有微软的 MFC

 

看到这里,谈谈你对开发做过哪些贡献? 请在微信中回复。

 

 

延伸阅读

数据库安全·保护表

数据库安全·保护表字段

数据库安全·时间一致性

 

数据库安全·为数据安全而分库

 

数据库安全·内容版本控制,撰改留痕

数据库安全·用户/角色认证

数据库安全·Token 认证

数据库安全·数据加密

数据库安全·开发加密插件

数据与应用程序间通信·UDP Socket

 

 

关注作者公众号,每日推送原创文章。如果已有什么建议,请给我留言。

 

© 著作权归作者所有

netkiller-

netkiller-

粉丝 706
博文 274
码字总数 383156
作品 10
深圳
部门经理
私信 提问
PHP是世界上最好的语言吗?

2016.05.14-15, 在国家会议中心由DevLink举办了第二届PHP全球开发者大会上,在主办方的微信群中发的一些文章中,经常提到"PHP是世界上最好的语言", 并在旁边标注这个是鸟哥所言。然后,群里...

一配
2016/05/16
373
7
各大语言程序员需要点亮的技能树,你知道吗?

有PHP程序员在高呼,“php是世界上最好的语言”,看我大PHP技能树!其他语言的程序猿说,你在挑起战争...大家纷纷分享了自己语言的技能树,看看下面这些图,有童鞋说,这就是一片森林! 各位...

阿里云云栖社区
2017/12/13
0
0
关于语言的一点点看法 -- 两个凡是

世界上最好的语言是PHP 比PHP更好的语言是撸啊 比撸啊更好的语言是两个凡是

宏哥
2017/09/13
393
3
Java学习笔记(一)什么是Java,如何准备Java开发环境

什么是Java 如果世界上有一门最好的编程语言,那么这门语言肯定就是PHP了(又玩语言梗)。实际上这个世界上不存在所谓的最好的编程语言,仅存在响应时代背景,满足程序员迫切需求的编程语言,...

hoptop
2017/12/13
0
0
国内程序员那么多,为什么不开发一个属于自己的编程语言?

熟悉编译原理的工程师,很容易开发出一门属于自己的编程语言。但是实用性强不强这个就得待市场验证了。 其实发明一门语言并不难,毕竟已经有那么多的参考案例,现在都有用了十几年的易语言,...

IT智云编程
2018/09/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
46分钟前
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部