世界上最好的编程语言(没有绝对)

标签: Java 经验 编程 编程语言 工作
1216人阅读 评论(0) 收藏 举报
分类:

转载地址:http://blog.csdn.net/i10630226/article/details/41460383

谈到这个话题,一定会有两种人跳出来。 
一种人说,PHP 是世界上最好的编程语言;另一种人说,编程语言都大同小异,掌握了思想,什么都简单了。

首先我认为所有切实存在,功能重叠的事物,都是可以比较优劣的,有时不说出真相,只是真相太残酷。『优秀』并非是主观的,而是客观存在的,世界上存在着被广泛认同的『优秀』。否则,作家,设计师,设计编程语言的科学家,应该以什么为目标来工作呢?

那么什么又是编程的思想呢?是循环,回调,面向对象这些么?但似乎并非每个编程语言都有这些元素。我在知乎『优秀的程序员应该掌握多少门编程语言』中列举了几种我了解的,各自具有代表性的编程语言:

    • C, 使用原始的内存管理的系统编程
    • Java, 工业级的面向对象的,静态类型的虚拟机语言
    • Python, 脚本语言,动态类型的虚拟机语言
    • Javascript, 基于事件回调的函数式编程
    • HTML/CSS, 声明式的语言
    • Golang, 并发编程

可以看到,它们风格迥异,使用的领域似乎完全没有重叠。

非要找共性的话,大概是它们都具有『抽象』的能力,描述『算法』的能力,这也是有些人口中的『思想』,但我不认同。 
抽象是为了找到解决问题的方法,而编程语言是为了将解决问题的过程(算法)表达出来。 
知道如何解决问题,不代表就能够用编程语言表达出来;掌握编程语言,也不代表知道如何解决问题。

我们学习一门编程语言本身的时间并不多,更多的时间在学习它的函数库,以及特定编程环境下的限制。 
例如学习 C 语言,我们需要知道计算机如何管理内存,如何实现函数调用,还要学习如何通过标准库进行输入输出,而 C 语言本身的语法,完全可以用一个小时描述清楚。

所以,我们抛开这一切,去寻找世界上最好的编程语言呢。但结果是不存在,因为现在流行的编程语言设计者目光都太短浅。 
没错,优秀的不一定是用的人最多的,不一定应用得最广泛,所以编程语言的设计者需要折中,拿出不那么优秀的设计作为最终方案。

比如 php 之所以流行,是因为支持 PHP 的虚拟主机最便宜。 
比如 C 之所以流行,只是因为有太多项目一开始是用 C 写的。 
比如 Python 之所以流行,只是因为库足够多。 
比如 JavaScript 之所以流行,因为在浏览器里这是唯一选择。

他们都不是因为语言本身被设计得有多么优秀而流行的。

我认为世界上最好的编程语言需要有这样的特征:

    • 核心足够小
    • 可以扩展语法
    • 围绕一种数据结构展开
    • 优秀的抽象能力
    • 可以被编译成本地代码

世界上最好的编程语言应当是全能的,否则如何和其他编程语言做比较呢?要做到这一点,就要保证这个语言的核心部分是最小的,不偏向于任何一个领域,也减少学习成本。

这方面的正面例子有 Lisp, Lisp 中的一切都是列表,核心部分仅包括不到十个基本运算符。从这个角度来看,你根本不知道 Lisp 是被设计用于什么领域的——这是世界上最好的编程语言所必须的要素。

但是 Lisp 没有火起来,因为有个笑话说的是一个 Lisp 程序末尾要有整整一页的括号。

所以世界上最好的编程语言需要能够灵活地扩展语法,这个概念通常被称为元编程,例如 Ruby 就号称支持元编程,虽然我没有体验过。 
除了扩展语法之外,最好还要能够改变程序在编译时的行为,这会加强元编程的能力,也会对提升性能有一定帮助。 
比如 PHP 和 python 都支持用 C 编写扩展,如果这种语言支持用自己本身来写扩展,并且能够干预编译器的行为,那么这种改造会让它适合几乎所有领域的编程。虽然干预编译器的行为是很危险的行为,只有少数人会编写这种扩展,但是这总要比设计一门新的领域特定的语言要容易。

可以扩展语法,这是保证世界上最好的编程语言能够快速适应各种特定领域编程的重要条件。

世界上最好的编程语言应该内置一种数据结构,能够方便地在程序内,甚至包括程序外进行数据交换,让整个语言围绕着这种核心的数据结构展开,具有一种『一致性』的美感。 
这方面正面的例子是 Lisp 和 javascript, 但 Javascript 做得还不够好,类型系统中有很多陷阱。

世界上最好的编程语言还应该有优秀的抽象能力,比如 C 的抽象能力就不够,组织大型项目会非常麻烦。Lisp 的抽象手段又太单一,Java 和 C++ 的特征又过于复杂。

『可以被编译成本地代码』这才是最具有挑战性的一个特征,前面我提了很多变态的需求,它们都需要在可以被编译成本地代码的条件下实现。可以被编译成本地代码,表示这种语言不需要虚拟机,可以自行提供各种功能,性能上也有更多的优化空间。

在发表这篇日志之前,又看了一遍王垠写的『如何掌握程序语言』,顿时觉得自己的日志似乎没必要发了,但是既然写了,还是发出来好了。

如何掌握程序语言:https://news.cnblogs.com/n/573342/

优秀的程序员应该掌握几种语言?https://www.zhihu.com/question/22339358#answer-6300033

好的程序员应该掌握几门语言?http://blog.csdn.net/candy1232009/article/details/8049611

查看评论

2016 年最受欢迎的编程语言是什么?

这两天 GitHub 对其官网进行了改版,紧接着又发布了一年一度的开源报告,我们程序员比较关心之后的趋势是什么,而 GitHub 毫无疑问代表了全世界编程领域的趋势,我们不妨先来解读下这份报告,然后再...
  • googdev
  • googdev
  • 2016-09-18 15:45:53
  • 92761

世界上最好的编程语言

原文  http://blog.segmentfault.com/jysperm/1190000000400854
  • i10630226
  • i10630226
  • 2014-11-25 00:09:31
  • 1066

TIOBE:全球编程语言最新排名(Kotlin排名进入前50名

作为coder,大家当然关心自己所使用语言的应用趋势。要是几年后所用语言变得默默无闻,那岂不是之前的知识储备与经验积累都会大打折扣。 TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数...
  • lemonbit
  • lemonbit
  • 2017-06-25 22:19:46
  • 3500

10门最佳编程语言各自的优势

如果你是一名具有前瞻性的开发者或者想成为一名具有前瞻能力的开发者,那么,是时候开始学习编程了,至少在最好的编程语言中选择一个,类似 Python, Swift, JavaScript, C#, C, ...
  • cocacola456
  • cocacola456
  • 2016-12-07 13:29:09
  • 1496

九种编程语言大对比

图解九种主流编程语言,从Python、Java到Objective-C。码农世界,哪种才是最好的编程语言? 这9张信息图囊括了九种主流编程语言:Python、Java、C、C++、JavaScr...
  • wuyusheng314
  • wuyusheng314
  • 2017-03-20 16:21:59
  • 41731

用于Web开发的最佳编程语言

互联网的世界充满了在不同编程语言的帮助下开发的杂乱的网站,提供不同的好处和缺点。由于有大量的编程语言用于开发网站,您必须选择最适合您的网站需求的编程语言。在选择最佳语言之前,您需要对用于开发网络上可用...
  • sergeycao
  • sergeycao
  • 2017-01-15 16:39:45
  • 5242

世界上最好的编程语言(没有绝对)

转载地址:http://blog.csdn.net/i10630226/article/details/41460383 谈到这个话题,一定会有两种人跳出来。  一种人说,PHP 是世界上最好...
  • chengp919
  • chengp919
  • 2017-08-15 15:39:49
  • 1216

2016 年最受欢迎的编程语言是什么?

这两天 GitHub 对其官网进行了改版,紧接着又发布了一年一度的开源报告,我们程序员比较关心之后的趋势是什么,而 GitHub 毫无疑问代表了全世界编程领域的趋势,我们不妨先来解读下这份报告,然后再...
  • u010672381
  • u010672381
  • 2016-10-24 15:12:43
  • 1245

PHP是世界上最好的编程语言,有例子说明!

在民政局婚姻登记大厅里,一对中年男女准备办理离婚手续。男人填好表格签下自己的名字后,默地把这张纸递给女人。女人默不作声接过纸,狠狠剜了男人一眼,然后出人意料地把登记表狠狠撕成碎片。 男人大惊...
  • haoyunyun888
  • haoyunyun888
  • 2016-05-30 18:22:41
  • 3223

PHP是最好的语言吗?

我们推崇“敢于质疑且独立思考的自由精神“,所以对“PHP 是最好的语言么?“这一问题,也是从疑问开始的.........
  • wireless_com
  • wireless_com
  • 2017-01-07 21:31:04
  • 4654
    个人资料
    持之以恒
    等级:
    访问量: 3万+
    积分: 1611
    排名: 3万+
    最新评论