令人讨厌的编程语言排行榜
英文原文:The most WTF-y programming languages
为了避免引起语言之争,先声明一下,这个榜单统计的是跨语言开发者最讨厌的编程语言,比如你最喜欢使用A语言来编程,那么可能会对其他语言的某些特性看不惯。
这是一种很主观的看法,上榜的语言不代表这个语言不好,只是说明某些开发者不太喜欢这个语言中的某些特性而已。欢迎在评论中说出你对某些语言的看法。
下面这个排名是根据 Quora、Stack Overflow 和 Hacker News 上相关帖子统计出来的。
10. Python
上榜理由:代码缩进是用来指定块的结构,为什么不用括号或大括号呢?此外,大量使用冒号和下划线,模块、变量名冲突等。
如何避免:不要去 Google、Yahoo 或 NASA 工作
9. LabVIEW
LabVIEW 是一种由美国国家仪器(NI)公司研制开发的、类似于C和 BASIC 开发环境,使用图形化编辑语言G编写程序,产生的程序是框图的形式。
上榜理由:LabVIEW 相当抽象,以致于将简单的问题变得极其复杂。这完全违背了其最初的目的。
如何避免:远离仪器控制类或工业自动化类的编程工作。
8. JavaScript
上榜理由:区分大小写,跨浏览器需要不同的实现,缺乏调试功能(尽管可以使用 Firebug)和奇怪的继承规则。
如何避免:不要成为一个 Web 开发人员。
7. Tcl
Tcl 是一种脚本语言,最早称为工具命令语言(Tool Command Language),但是目前已经不是这个含义。由 John Ousterhout 创建,经常被用于快速原型开发 RAD、脚本编程、GUI 和测试等方面。
上榜理由:语法太简单了,缺乏指针,无法通过引用来传递;将数组存储为字符串;可怜的 list 语义和混乱的变量范围。
如何避免:不要去 Cisco、AOL 或 CNET 公司或任何 AOLserver 或 OpenACS 平台的公司工作。
6. COBOL
COBOL(Common Business Oriented Langauge,面向商业的通用语言),又称为企业管理语言、数据处理语言等,这是一种面向数据处理的、面向文件的、面向过程(POL)的高级编程语言,是一种功能很强而又极为冗长的语言。
上榜理由:极其繁琐的语法(目的是对非程序员可读);版本之间不兼容;缺乏面向对象编程、函数和指针等特性。
如何避免:不要去 政府、金融领域或军用企业工作。
5. C++
上榜理由:庞大的函数集;手动内存管理;编译速度慢;事实上,它允许程序员在同一程序中同时使用面向对象和面向过程的编程模式。
如何避免:一般情况下,不要去 Adobe、Google 或游戏领域工作。
4. PHP
上榜理由:大量函数存在不一致的命名约定;安全漏洞;无法原生支持 Unicode;经常被混和在一些演示代码(如 HTML、CSS)中。
如何避免:如果你从事 Web 方面的工作,这是很难避免的。但是,对于初学者来说,可以不去 非死book 工作,远离 Wikimedia、Wordpress、Joomla 和 Drupal 即可。
3. Java
上榜理由:语法冗长;慢;不容易传递函数;API 过度设计;它能做的,其他语言也都能做,并且更加高效。
如何避免:不要使用 Android SDK 来开发任何应用程序。
2. Perl
上榜理由:Perl 中完成一件事有太多种方法,使得你很难去理解其他人编写的代码;太简洁,即使一段代码实现的是最简单的事情,看起来也难以去阅读、维护。
如何避免:不要成为一个程序员。
1. Visual Basic
上榜理由:它的语法被认为过于冗长和陌生,需要动态链接库才能去运行它的代码;对于面向对象编程的支持很有限;事实上,自从 1998 年以来,微软已经不再提供正式支持了。
如何避免:避免为开发老旧的 Windows 应用程序的公司工作。
另外一种统计方法
下面这种方法是根据 Github 上托管的代码库统计出来的,开发者使用 GitHub API 来统计 Github 项目代码中出现“WTF(What the f**k)”字符串的数量,来确定项目开发者对于某种语言的某些特性的讨厌程度,可见 C++ 比较令人讨厌。(这种方法有些开玩笑的意味)
你是否讨厌某些语言中的某些特性呢?欢迎在评论中说出你的看法。