编程领域内为什么要有那么多的语言?
学编程,意味着要选择一种编程语言,那么很容易产生的疑惑就是:选哪种编程语言?为什么要有那么多的编程语言?
先来看为什么要有那么多的编程语言:
1:应用领域不同,导致需要的是不同的编译效率和代码质量以及执行速度的要求
底层是用户发出操作上层的各个软件发出所有指令的最终汇聚点,都要去控制CPU。相当告诉公里上的收费站,所有车辆都要汇聚到这里。
所以要求处理速度快,代码质量高,能用一句的绝不用两句,那么就意味着不能有很复杂的编译过程、同时代码质量要高、精简,不能笨重。显然应该直接写机器码,起码也得写汇编语言,一步到位就能得到机器码。再不济也得用C语言,但为了开发起来友好点,想方便一点,C++也霸蛮的允许,因为它里面有面向对象可以极大的方便编程。但再不能是java了或者PHP以及JS这些了。
所以比如嵌入式领域或者底层驱动领域,你就不会看到用JAVA和PHP去写驱动就是这个原因。为了任务分配合理,开发人员偷懒,选择了引入操作系统,但也通常也只能是小的被裁剪了的操作系统内核,如uclinux,也绝不能是那种直接在电脑上运行的庞大的操作系统如win7,win8,win10,redhat,centos;否则就意味着要么你的系统性能下降,要么就需要你的硬件升级。
2:使用的领域不同,导致侧重点不同。而不是编程语言本身的好坏。那么平常说的好坏只是对开发人员的友好性而言。
比如:PHP是面对应用领域的开发语言。要求的是快速看到效果,友好性好。因此就不太在乎比C语言多损耗了点编译性能和多集成一些库了。所以,它的最大特点就是:把N多常用的库都集成进来了,让你用起来简单的多,如:mysql连接库,mysqli链接库等。
但这并不能说明PHP就比C语言好,只是对用户开发起来友好而已,只是他们用的领域不同而已。如果从驱动领域来说,PHP谈不上比C语言好!如果从开发微信交互来说,C语言谈不上比PHP好。
3:开发时间决定
如:PHP重要的是应用,应该在短时间内开发出应用,那就不能从头到尾的写,否则内容太多,比如你不可能从汇编写起来,否则功能还没写出来,几个月就过去了,所以PHP领域内会出现很多很多的框架和CMS系统,这些系统虽然参差不齐,有的代码质量本身就很差劲,但是能看到效果啊,
至于晚几毫秒,用户也根本体验不到,所以开发速度就要比代码本身的质量效率和解析效率要重要的多。否则,PHP的应用定位就失去了意义,它就不能说自己是面向应用领域的上层语言了,那是什么?鬼知道!
所以要求开发速度、能马上见到效果的领域,就要开发起来变得很简单,那么就得用上层的面向对象的方式去支撑。所以,PHP的开发就是直接用面向对象来应用。
那么用汇编和C语言去写非常好看的图形化界面,它的意义只在于学习,而不在于实际应用。你写了好几天的引入各种的图形库函数库最后看到个红颜色,还不如PHP里写一条控制CSS的color:red来的省事呢,当然用CSS就更加省事了。
所以学习什么和实际怎么使用,之间还有一个赛选的味道。
4:用户体验度、友好性决定
很多人在写C语言的时候感觉很头痛,因为C语言友好性不好(虽然比汇编还是友好点),特别是它的字符串处理很是麻烦,经常容易错,又难以理解,用起来一点都不如中上层语言方便,如:C++如PHP如Java;友好程度也不如他们。
比如:C语言你编程很可能经常会被报告指针不能读和写!但PHP,不会动不动给你弹出指针错误的那种恐怖的窗口。因为它做了很多包容性好的异常处理。
但这是需要消耗编译性能和速度的。所以:C语言明明可以引入这些,但是为了让编译效率高就是不引入。这就是C语言为什么那么多年了就是停留在面向过程的级别。而PHP就会把这些东西都早已集成进来了。那么意味着每次都要加载那么多的东西,势必效率就会慢。
这样自然不能用在操作速度要求很快的比如操作系统任务分配里了,也不能用在驱动里了,因为经常要经过这些动作,你每次都笨重,自然速度就慢。
但这并不能说明PHP就比C语言好,也不能说明C语言比PHP好。如果走到他们各自擅长的领域,他们比谁都好。
各门语言因为自己定位在不同的应用领域,所以它的编译器(或者叫解释器)即使语法功能没做的那么智能和强大,也不会去升级,否则就失去了它的应用定位的意义。
这就是C语言里为什么就到面向过程就打止了的原因。不是不可以引入面向对象类的解析功能,而是引入了会导致编译器解析速度和效率的降低,C语言就会成为一个应用领域不明确的四不像的语言。就失去了本身的意义。所以不再引入。
由此可见:其实编程语言本身其实谈不上好和坏,只是应用领域的不同而已。所以选择什么编程语言,就看你要朝哪方面去走了。
其实这么多的语言,编程思想上没什么区别。只要学懂编程思想,一切语言都通。
既然没有什么好坏之分,编程思想也是相通的,那么就是看你怎么才能学懂编程和以后想做什么了。学习顺序和学习方法就很重要。
学编程思想,得先从C语言去看,学会面向过程编程思想;
然后从C++去看,学会面向对象编程思想。
然后去学一门应用范围广的语言,比如PHP,如:JAVA,如C#。
因为由于编程思想是相通的,所以PHP的面向过程和面向对象的语法可以推理出一多半,这样就可以给PHP的学习减负了许多许多…
至于你选择什么上层语言,就看你以后想工作在什么领域,这就又要和未来的发展趋势来结合一起考虑了,你想做驱动,想做嵌入式底层,那你就和苦涩无味的C语言打一辈子交道,忍受它的开发麻烦的困扰。
但是以后移动互联+的影响会越来越深入和广大,PHP的方向是一个很不错的方向…一个人不能做两个甚至多个行业的事情,否则如果你不是够聪明,很可能什么都不精通!慎选。
本文文字及图片出自 www.jianshu.com
共有 1 条讨论