最让程序员感到崩溃的10种编程语言
jopen 10年前
[导读] 很显然,软件开发领域中的程序员对编程语言最有发言权。一种语言可能是一些程序员的最爱,但它同时也是另一些程序员的噩梦。如果你在编程领域呆了一段时间,你就迟早会发现有些语言由于古怪的语法、灵活性不够(或过于灵活)、差劲的调试功能或其它原因让你抓狂,甚至崩溃。
很显然,软件开发领域中的程序员对编程语言最有发言权。一种语言可能是一些程序员的最爱,但它同时也是另一些程序员的噩梦。如果你在编程领域呆了一段时 间,你就迟早会发现有些语言由于古怪的语法、灵活性不够(或过于灵活)、差劲的调试功能或其它原因让你抓狂,甚至崩溃。根据程序员在 Quora,Stack Overflow和Hacker News这三大国外论坛上的讨论,我们挑选了其中10大最让程序员不爽的编程语言,并解释了原 因。下面PHP100就带你具体看一看这个有趣的清单。
1. Visual Basic
语言介绍:这种语言和相应的开发环境通常是用来开发Windows应用程序(图形界面),它是由微软公司发明,对于初学者比较简单,可以将写代码与使用图形化和拖拽技术相结合。
程序员的吐槽:它的语法过于啰嗦和冗长,而且有些地方有些奇怪,它需要动态链接库执行,而且基本上不支持面向对象开发。自从1998年它就不再受到微软的官方支持了。
2. Perl
语言介绍:Perl是一种高级的,用途广泛的解释型语言,它被形容为互联网的管道胶带。Perl被应用在各个方面,从CGI脚本到系统和网络的管理。
程序员的吐槽:对Perl最大争议就在与它极大的灵活性和过度冗余的语法,它有着“只能写”的称号(write-only language),代码很难被其他人阅读和维护。
3. Java
语言介绍:Java起初是一种被用在交互电视上的语言,逐渐成为最受欢迎的面向对象编程语言之一。Java代码被编译为字节码,然后由Java虚拟机解释,所以它可以运行在任意的平台上(Write Once,Run Anywhere)。
程序员的吐槽:Java的语法有些冗长,运行较慢,API有些被过度设计。很多其他语言实现相同的功能可以更高效。
4. PHP
语言介绍:PHP是在服务器端非常流行的一种解释型脚本语言,可以动态生成HTML页面。它也可以单独作为一种脚本语言应用在多种操作系统上。
程序员的吐槽:它在很多功能上有不一致的命名规则,有一些安全漏洞,不天然支持Unicode,还有它经常会和前端的HTML/CSS代码混在一起。
5. C++
语言介绍:C++作为一种中级别的语言,被人们当做是C的扩展,支持面向对象编程。如今它依然是非常流行的,并被各领域广泛应用。
程序员的吐槽:具有过大的特征集、需要手工管理内存、编译速度慢、在同一程序中有时需要在面向过程和面向对象间相互转换。
6. COBOL
语言介绍:1959年,COBOL被指定设计为支持商业和政府管理的一门编程语言,它的全称是Common Business-Oriented Language。
程序员的吐槽:超级冗长的语法规则、版本间不相互兼容,而且在COBOL 2002版本以前不支持面向对象、函数和指针。
7. TCL
语言介绍:TCL(Tool Control Language)最早被称为工具控制语言,逐渐发展成为一种多用途的脚本语言,被应用到Web开发、网络管理和自动测试上。
程序员的吐槽:TCL的规则过于简单了,没有指针,所以它不支持参数传递。另外它的数组被存储为字符串格式,在语义和变量作用域上都做的较差。
8. JavaScript
语言介绍:它是一种直译式脚本语言,主要作为应用在Web页面上的客户端脚本语言。它同时也可以执行在服务端,作为一种内嵌式脚本语言。
程序员的吐槽:JavaScript对大小写敏感,依赖于不同的浏览器,欠缺较强的调试能力,而且有着奇怪的继承规则。
9. LabVIEW
语言介绍:它的全称是Laboratory Virtual Instrument Engineering Workbench,使用的是图形化编辑语言G编写程序,产生的程序是框图的形式,被用于测量和控制系统。
程序员的吐槽:GUI编程会把那些非常简单的任务变得很复杂。
10. Python
语言介绍:一种语法简洁而清晰的高级语言,它通常被当做脚本语言,但其实它是可以被编译的。
程序员的吐槽:它是用缩进来区分语句间的关系,而不是用通常的括号。程序中通常会有很多的冒号和下划线。
原文:http://www.itworld.com/article/2823526/enterprise-software/120222-10-programming-languages-to-make-a-developer-pull-his-or-her-hair-out.html
译文:http://www.php100.com/html/it/focus/2014/1215/8060.html
(翻译:PHP100_Zeroing)