关闭

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

标签: Java经验编程编程语言工作
555人阅读 评论(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

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

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

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

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

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

PHP是最好的语言吗?

我们推崇“敢于质疑且独立思考的自由精神“,所以对“PHP 是最好的语言么?“这一问题,也是从疑问开始的......
  • wireless_com
  • wireless_com
  • 2017-01-07 21:31
  • 2783

PHP是世界上最好的语言

1.认识PHP代码标识想在页面中编写PHP​代码非常容易,如下面代码:就像你可以编写JavaScript脚本语言需要写在标签之间一样,你可以在页面中编写PHP代码写在标签之间,但注意后面的?>是可以省...
  • jimo_lonely
  • jimo_lonely
  • 2016-04-03 16:47
  • 9021

学习编程语言最好的方法是什么

每个人都有自己独特的学习模式,我们要做的第一件事,就是发现自己的学习模式。你的方式是什么?
  • foruok
  • foruok
  • 2016-04-07 07:24
  • 15676

选择web编程语言之--最流行的就是最好的?

我想有这个疑问的人,其实最关心的问题是他们选择的语言是否关系到今后的求职和发展。在我观察,目前国内的优秀创业团队中,不少是使用php或 python的,且基本没有使用java和c#的,但是从岗位设定上...
  • wql19881207
  • wql19881207
  • 2014-04-15 11:55
  • 555

2017 年最值得学习的编程语言是什么?

英文原文:What’s the Best Programming Language to Learn in 2017? oschina 推荐于 3周前 (共 7 段, 翻...
  • h643342713
  • h643342713
  • 2017-03-09 09:51
  • 1894

是什么让C#成为最值得学习的编程语言

是什么让C#成为最值得学习的编程语言,阅读完本文,你就知道。
  • powertoolsteam
  • powertoolsteam
  • 2017-04-18 10:49
  • 6547

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

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

2016年学哪个编程语言最有前途?

说起哪个编程语言最火,这没有绝对的说法,不同的时期可能会有不同的排名,其中,新霸哥比较看好的是java,c++,php,python,node.js这几种,不知道你们怎么看这个问题。那么,到底学习哪个...
  • Aweijun360
  • Aweijun360
  • 2016-10-10 07:15
  • 2174
    个人资料
    • 访问:19589次
    • 积分:1435
    • 等级:
    • 排名:千里之外
    • 原创:122篇
    • 转载:66篇
    • 译文:0篇
    • 评论:4条
    最新评论