200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 各个编程语言都有哪些黑点 – PHP基础 – 前端 phpscm

各个编程语言都有哪些黑点 – PHP基础 – 前端 phpscm

时间:2021-10-04 16:06:14

相关推荐

各个编程语言都有哪些黑点 – PHP基础 – 前端 phpscm

每种编程语言都会有或多或少的黑点吧……速度快的写起来麻烦,写起来简单的速度又慢,所以大家也不要在较真了,用适合自己的语言就好~不过,要说被黑得最惨烈的语言,小慕就不得不先从PHP说起……

PHP

PHP招黑一直被业内人士所熟知,因为PHP本来就是Personal Home Page(PHP最初的全称),对于很多程序语言的高级特性并不支持。原作者拉斯姆斯当年无论如何都想不到他只是用来制作个人网页的CGI程序,经过多年的迭代会在业界得到如此广泛的应用。从那个时候开始PHP就被批评不支持面向对象、没有命名空间(namespace)、并不真正支持多线程、弱类型和性能差等,但PHP本身也在不断自偶完善和发展,从PHP4开始支持面向对象,从PHP5.3开始支持命名空间和pthreads多线程扩展,在PHP7的版本更新中大幅提升了性能。

除此之外,PHP还经常被批评函数名混乱,因为在长年累月的迭代中,为了保证程序的兼容性,很多当年的函数名不可能一言不合说改就改。比如同样是内置函数的getmypid和get_current_user采用了两种不同的命名风格,甚至还有一些形如rtrim的诡异的缩写形式。

PHP:虽然被黑的最惨的总是偶,但偶还是要说出那句“PHP是最好的语言”。

C++、Java、python、JavaScript:……C++

C++几乎是主流语言中最容易让你写出“hello world”的语言,找个ide装上,写完了只需要点一下编译并运行,不用像java还要加环境变量,不用像python还要安装。所有的理工科专业几乎都要开C或C++的课,但当你写过一些代码,并考出计算机二级,觉得自己能用C++找口饭吃的时候,C++就会残忍的告诉你,什么叫“饭里有毒”。

你会发现,自己的c++和官方的c++,就像LOL里己方的“儿童劫”和对面的“火影劫”一样,差距非常夸张。归根结底,是源于C++的复杂性。

Sort源代码片段:

Java

Java就像一个老学究,时时刻刻在警告你 “偶认为你这种写法不是很面向对象”。Java过于标准的写法导致了代码十分冗长,在新手眼里可能比较友好,但是在老手眼里却并不这样。因为Java程序员有时候为了少打点字甚至都会修改数据结构,所以即使有代码自动补全也仍会让人头大。

例如把单词的字母放进hashset里,再打印出来。用java写就要比c++冗长的多……

Java:

C++:

再说一个Java的小坑,Java 和 JavaScript 虽然是巴基斯坦和卡巴斯基的关系,但是Java的Integer 还是可以挑战一下JavaScript的九九真值表。

Python

缩进

其实游标卡尺的问题真的不能算黑点,整齐的缩进非常有利于程序的可读性。虽然绝大多数编程语言的编译器对缩进并没有什么要求,但是为了代码的可读性,程序员都会写出带有优雅层级的代码。而python干脆把大括号这种范围表示符号省略了,直接用缩进来对代码分层。其实买上一块4k带鱼屏竖起来,一个带有对齐线的开发工具,写python完全就可以为所欲为。

python 可以快速成型,可以为所欲为,但它并不是没有缺点,有时会让一个开发者脱离了计算机科学的基本理念。一个python程序员写的求一个数的阶乘末尾有多少个0的

小算法:

和正确代码比较

代码非常相似,结果完全一样。大家都喊着python慢的,真的只是怪解释型语言的原因吗?

JavaScript

同样被黑得够呛的还有JavaScript,这个传说从设计到完工只需10天的编程语言。JavaScript跟Personal Home Page一样,当初可能只是为了实现一些简单的页面交互功能,在应用越来越广泛后,各种缺陷才慢慢开始浮现。比如神奇的隐式类型转换,运算1+”2”的结果是12,JavaScript会自动将整数1转换为字符1,然后与字符2相互拼接,然而1+2+”3”的结果却是33。

除此之外,JavaScript全局变量的使用也极易在不同模块之间产生相互污染,所以很多JavaScript的教材当中都强调要慎用全局变量,或使用闭包,避免造成全局污染。

Perl

Perl语言在当年也颇受诟病,比如在一些邋遢、爱炫技的程序员写出的Perl代码,恐怕只有本人才看得明白。因为Perl实在太自由灵活了,再加上诸如@_$%&!<>等各种眼花缭乱符号,你完全可以把程序写成一串天书,跟拿着游标卡尺写出来的Python代码比起来,简直就是两个极端。

另外Ruby的性能差和python2 和python3不兼容也算是黑点,python可能是轮子多太方便了,为了让自己冷静一下,所以一个热门的语言同时流行着两个互不兼容的版本。

被黑较少的语言

相对处于所谓dominant地位的,「黑点」最少的应该只有两类。一种比如Haskell和Lisp等「学院派」编程语言,它们处于鄙视链顶端,由于难以真正掌握,一般程序员想黑但无从下手;还有一种是已经渐渐淡出历史舞台的编程语言,比如曾经热门的ASP。

那些在程序员圈子内口口相传,津津乐道的「黑点」,除了因编程语言本身设计和开发遗留的客观因素之外,其实还有一小部分主观因素。比如某编程语言得益于简单易用,很多缺乏理论基础和经验的程序员经过简单培训、短期自学,都能写出可以实现功能但质量可能经不起推敲的代码。如果出于对这部分尚待提高的程序员的排斥,而迁怒于编程语言,小慕认为有失偏颇。

总之无论基于什么理由,只要还在被黑就证明了这门语言还活着。

比如PHP今年在TIOBE排行榜上下降了一位,但依然排名第八;

JavaScript得益于风头正盛的HTML5技术,在移动互联网时代依然大放异彩,甚至凭借Node.js从前端走到了后端。

所以语言避免被黑也取决于:能否在技术上得以不断的自偶完善,商业机构或者开源社区是否提供持续的维护,在应用上能否得到业界不断的充实和创新。

其实有些时候,一种语言的缺点也会是它的优点。语言只是工具,只要你用它能达到目的就行啦~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。