【51CTO.com快译】 不 可否认,想要成为一名优秀的程序员确实是需要掌握多种编程语言。通过这几年的自虐式学习,我也慢慢的掌握了这些编程语言。鬼知道这过程多么痛苦,但也因为它们,我会获得比别人更多的机会。接下来要为大家,介绍七款让我又爱又恨的编程语言!
写这篇文章的原因:
1.C语言
C语言给我的感觉,就是一位神秘莫测而又高冷型的女生形象。这是因为c语言相比其他编程语言难度高一些,这也就多了一丝神秘,每当我以为我快要接近它时,它又狠心的将我推开!狠心的C!语!言!
我无法拒绝C语言的原因:UNIX由C编写而成,其运行在大部分手机与大多数云环境当中,这意味着必须有人继续使用星号与大括号进行开发,否则这一切都将无法为继。另外,还有设备驱动程序、嵌入式程序以及Linux/Unix代码库的维护工作——好了,这个忧伤的话题到此结束。
接下来轮到我最开心的环节,我!要!开!始!吐!槽!
作为拥有“便携式汇编语言”头衔的C语言,绝对充斥着各种问题!相信没有人会喜欢编写,大量独立的头文件,也更没有几个人能在使用预处理器的时候保持平和心态。
从理论上讲,我们应该能够利用指针的数学能力,完成无比睿智的壮举,但很少有人能超越已经存在的数据结构。事实上,鼓捣指针往往正是代码崩溃的起点。即使大家自身水平能够轻松搞定指针,但也需要编写冗长的注释加以记录,这相当让人抓狂。另外,我想问一下各位,有人几个人能记住编写C代码所应当遵循的全部最佳实践吗?例如避免一切潜在的安全漏洞,好吧,我个人不太行。
2.JavaScript
JavaScript给我的感觉,就是一位悲观型的女生形象。为什么这样说呢,谁叫它们总是用小括号、中括号与大括号包裹着自己呢!
我无法拒绝JavaScript的原因:互联网以及无数浏览器仍然坚持使用JavaScript,而Node.js的出现甚至迫使我们在服务器端也要使用JavaScript。至少在可预见的未来,JavaScript还将不断折磨我们。
接下来轮到我最开心的环节,我!要!开!始!吐!槽!哈哈~
JavaScript的缔造者们希望打造一款现代化语言。遗憾的是,他们的成果逼迫我们不断使用小括号、中括号与大括号来完成正确的嵌套关系。而匿名函数、闭包与JSON数据结构则让我们的小指变得越来越发达。
另外,我们还需要关注很多奇怪的细节。如果x作为字符串包含字符1,那么x+1将产生字符串11,而x-1则会产生数字0。谁还会记得false、null、NaN以及undefined之间的区别呢?它们听起来很像,但JavaScript为什么非要对此进行区分?为什么不能把它们合并起来?
3.PHP
PHP给我的感觉是一位单纯乖巧型女生,至于原因PHP相比其他语言更简单,PHP性能足够好,热部署、易修改,我们也不用那么费心啦~
PHP其实并不能算是真正的计算机语言,而更像是一款用于向静态HTML中添加智能机制的工具。大家可以将信息存储在数据库中并为其匹配静态标签。虽然还有更多功能,但总体来看PHP的基本作用就是对我们提取自数据库的字符串进行粘接。
但争议归争议,大多数Web仍然由PHP构建而成。在WordPress、Joomla以及Drupal中,大多数内容都通过PHP代码进行交付。另外,Facebook也是由PHP编写而成。幸运的是,Facebook打造的HipHop Virtual Machine启发了Zend,而PHP 7.0也是由此诞生。这些新型PHP引擎通常速度更快,但这同时意味着我们未来仍然得活在PHP的阴影当中。
4.Cobol
Cobol给我的感觉是一位很受宠的富家型女生的形象,至于原因是Cobol能得到很多有强大身份的人喜爱。
Cobol诞生于1959年,这种早应该过时的语言,存在着数以百计限制词汇。然而Cobol是数据处理领域最为广泛的程序设计语言,也是第一个广泛使用的高级编程语言。并且,支持者的Cobol的开发者们,会从其它语言中汲取灵感并充实到Cobol上,因此Cobol的版本还在不断地更新中。
在企业管理中,数值计算并不复杂,但数据处理信息量却很大,许多人会购买一台大型计算机并运行Cobol代码。截至目前,Dice.com网站上仍有543个岗位包含“Cobol”一词。从保险公司到国防承包商,众多东家仍然喜欢使用Cobol,因此想要投身其中的求职者显然别无选择。
5.XSLT
XSLT给我的感觉是一位很会伪装的腹黑型女生的形象,至于原因是不了解它们会以为它们很方便,了解后就会发现它其实就是一个大“坑”!
每个人在初上手XSLT时都喜欢它,它的函数型语言能够实现XML转换。然而一旦超出搜索与替换范畴,它的功能限制性就开始暴露出来。最令人难以忍受的是,XSLT的变量与其它语言中的变量在概念上就有所区别,这瞬间把程序员们弄成了数学家——甚至出现了与之相关的玄学理论。
XML也许将逐步被JSON等更为高效的数据格式所替代,但它目前仍然拥有相当旺盛的生命力。虽然大家可以跳过XSLT直接编写代码以进行文本解析,不过请相信我,这种作法耗费的时间比学习XSLT更长。
6.Java
Java给我的感觉是一位邋遢学霸型女生的形象。
虚拟机与库概念可以追溯至上世纪九十年代,但语法则早在上世纪七十年代即与C语言一同出现。自动内存管理看起来很美,直到恶心的垃圾回收机制毁掉这一切。
Java程序员们一直在抱怨这方面问题,而且其中一部分,也确实被甲骨文所解决。然而,解决的过程又带来了新问题。一部分新型代码及库无法在旧有虚拟机上运行。我就经历过这样的困扰,事实上Java 1.4之后的每个版本都像是一种完全不同的语言。
但这一切都不重要。Java是Web与移动手机的基石,它也是高校当中教授的第一门语言。相关代码库愈发庞大,其价值也远远超过其它语言。我们能怎么办?忍着吧。
7.Python
Java给我的感觉是一位萌萌的萝莉型女生的形象。
这是一种适合年轻人学习的现代语言。其很少用到标点符号,因此代码看起来更加简洁。问题在哪?首先,Python 2.7与3.0之间存在巨大差异。虽然发展是必要的,但步子迈得太大无疑容易扯着蛋。我们永远需要关注当前设备上使用的到底是哪个Python版本,同时认真数清一切代码缩进、大括号以及空格等等。
同样的,这些抱怨毫无意义。Python拥有大批受众,特别是“软科学家”群体。生物学家与经济学家将Python视为最强语言,有些人甚至建议在股票与债券的说明文件中添加Python代码,这样银行家们就能够通过Python看懂其中真正的含义——而不被那帮律师骗子所蒙蔽。
好消息是,阅读Python代码确实要比阅读法律文件更容易。这是种进步,而且是种我们无法抗拒的进步……
原文标题:7 programming languages we love to hate -- but can’t live without
原文作者:Peter Wayner
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】