C / C++ 常被用来开发底层程序, 程序员要自己做内存管理,就算是非常有经验的 C 程序员也难免犯 overflow 的问题. 但这并不代表 C 设计的不好, 不安全. 因为正是 C 的这些特性才让我们写出高效的程序, 内核,驱动等. 作为程序员你就需要了解 C 的这些特性,尽量避免犯这些错误. Java 和其他 strongly typed 语言, 在程序设计上就把程序员禁锢在一个保险箱里,使他们避免犯错误. 在开发大型工程时,Java 程序员写出的程序就容易一致化, 由此降低工程开发的成本. 这大概解释了市场上对 Java 程序员的需求. 而 Perl 是 loosly typed, 语法和参数多种多样, 变量定义灵活. 由此给了程序员很大的自由,大大缩短了程序开发时间. 但如何让十几个 Perl 程序员写出一致,易维护的程序就困难多了. 使用任何语言都可以写出糟糕的程序, 只是 Perl 让程序员更容易的写出糟糕的程序罢了. 但很多时候只要能够 *解决* 问题, 没人在乎你用的什么语言. 对一门电脑语言爱好但不盲目. 选择 C 而不是 Java 去写底层系统. 选择 Perl 而不是 Java 来分析 log.
我可以用 Perl 来做【某种差事】吗?
Perl 有足够的弹性和扩充性,从只需要写短短一行的档案处理工作到复杂的系统,几乎没有什麽做不到的。对有些人来说,Perl 被用来做 shell 程式的理想替代品。其他人则用高阶的 Perl 替代许多原先需要用 C 或 C++ 一类的低阶语言来达到的程式。哪些差事决定要用 Perl 来处理,这一切都得看你(或许还有你的经理...)。如果您有一个提供 API 的程式库的话,您可用 C 或 C++ 来写一个 Perl 延伸,然后便可透过它将程式库中的任何一部分动态载入您的 Perl 主程式中。您也可以反过来,用 C 或 C++ 来写主程式,然后以即时动态载入的方式插入一些 Perl 程式码,产生一个威力强大的应用程式。话虽如此,对解决某些特定的问题,使用小型、专精,专为特殊用途设计的语言总是比较方便的。 Perl 的设计是尽力地满足各种不同人的需要,因而不特别偏颇任何人。至於特殊功能语言的例子,随便举两个,譬如 prolog 和 matlab 便是。