BT

你的观点很重要! 快来参与InfoQ调研吧!

架构师特刊:编程语言

| 作者 InfoQ中文站 关注 15 他的粉丝 发布于 2017年8月17日 ArchSummit社交架构图谱:Facebook、Snapchat、Tumblr等背后的核心技术

目录

今日头条Go建千亿级微服务的实践

Java 老矣,尚能饭否?

Python向来以慢著称,为啥Instagram却唯独钟爱它?

我们为什么要选择小众语言Rust来实现TiKV?

Clojure太灵活,我们能如何驾驭它?

JavaScript成为了一流语言

FreeWheel基于Go的实践经验漫谈

卷首语:PHP是最好的语言吗?

作者:陈利人

大家都可能听过“PHP是最好的语言”段子。

编程语言很多,既然存在,就有每个存在的理由。其实没必要评论哪个语言好,哪个语言不好。因为每个编程语言本身都不难,只要学会了一种语言,其他的都是相通的。难的,好坏之分,是理解,记忆,熟悉,和流畅的使用那些每个语言提供的基础库和扩展库,也就是LIBs,或是APIs,或是SDK,或是Frameworks。

编程语言本身,就最简单的集合来说,就是一堆保留的关键词和一堆的语法,这个大家稍微看看就都会明白,还有其设计思想。就和学一门外语一样,一些词汇加上一些词汇能组合的语法。这些通常包括的编程语言特性有:语句组成,变量定义,算术运算,循环语句,函数定义和调用,面向对象,指针操作,垃圾回收,输入输出等等。基础的东西,大家如果学过或是使用过一种语言,其他的新的语言,花个一两个小时就能基本理解,就能写出一个 hello world 的入门程序。

那么,好坏之分,难的部分,实际上是那些基础库和各种扩展库。这些库,必须在实践中一步一步熟悉和掌握。如果不经常使用,还特别容易忘记,尽管现代的编程环境有各种智能辅助。会不会,熟不熟一门语言,很大程度上是对他们的持续使用和理解。这也是为什么,没有多个项目,或是几年的实践,很难说是一个语言的高手。

比如同样对于网络的操作,有的语言的库包装的简单高级易用全面,有的语言就基础原始。那么对于那些有高级包装库的语言,大家就会觉得好,语言好用,开发效率高,想要什么都有,socket、tcp/ip、http、async/sync、select、event,甚至是sever、client、crawler等等。而对那些比较底层的包装的语言,大家就学觉得开发效率低,难用,比如只有select和socket。是不是大概如此?

学习完了编程语言基础,大家一般要花很多的时间去了解和学习基础库和扩展库,这个才是真正的痛处和难点,学了不用还容易忘记,用到的时候还得想到有这个函数库。那么,如果有一套对各种语言都适用的API或是库函数定义,那么,大家学习和使用一门新的语言的效率会大幅度提高。这时,哪个语言最好,也就不再是什么问题了。

Protobuf、Thrift、COM、RPC等等都已经在做这方面尝试,如果有一天,大家不管用什么编程语言,只要记住一套接口函数,那就太美好了。这时,估计没有人会再争论,PHP是否是最好的语言了。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT