Mic*_*uez 5 perl performance search cgi
我计划在我的网站上添加一个更好的搜索功能,所以我认为我会用C语言编写它并使用CGI作为访问它的方法.但就基于CGI的东西而言,Perl似乎是最受欢迎的语言.这是为什么?用C或机器代码编程是不是更快?
如果有的话,用脚本语言编写它有什么好处?
谢谢.
bri*_*foy 18
在CGI变得流行的那一天,Perl是最容易使用的语言.人们可以很快拿起"宝贝Perl",由于该程序是一个文本文件,他们可以轻松上传并传递它.由于Perl起初是一种系统管理语言,许多服务器已经安装了它.当在某些托管服务上制作CGI脚本时,Perl很可能已经存在.不仅如此,Perl脚本在任何平台上几乎都是相同的,因此您在本地编写的内容很可能在不同的计算机上完全相同.
在大型计划中为"偶然程序员"编程更快,因为他们在制作有用的程序之前学习的东西较少; 他们可以从零开始,并在一小时内运行一个Perl程序,即使它们只是货物结果.他们不必担心编写和编译C程序所带来的所有事情,然后将其转移到另一个主机(可能是一个不同的平台).
Perl有一个快速的立足点,你仍然可以看到今天的影响.如果Perl今天必须从头开始,我认为它不一定能胜过其他任何东西.PHP肯定已经接管了低端,快速启动的人群(对于大多数人来说,它可能是最初的正确工具).
Perl也有很多文本处理功能,这并没有受到伤害.有些人谈论CPAN,但当Perl开始受到CGI编程的关注时,这几乎不存在.
但是,Perl并不像过去那样特别适合CGI编程.它仍然可以完成它始终拥有的所有优秀功能,但现在各种其他语言都在兼顾功能,可用性和社区意识.
我在1994年开始编写CGI的东西,我仍然看到大多数框架都是如此令人难以置信和难以置信.我真的希望我们之前有Seaside,因为你甚至都不知道其他框架让你做的所有愚蠢的事情.如果我们都学会了Smalltalk,世界会变得多好多少.:)
安全,一方面.如果你用C语言编写,你必须非常小心,以确保所有字符串处理都是正确的,这样你就不会引入缓冲区溢出等.在任何体面的脚本语言中,其他人已经为你做过.您可能有其他安全漏洞,但除非运行时或扩展模块中存在错误,否则您将不会有缓冲区溢出.这种好处不仅限于脚本语言; Java和C#等编译语言也提供了它,并且它可以在C++中获得(尽管经常更难),std::string而C和一个良好的字符串库.
在Securitywise中,Perl还有另一个在许多其他系统中看不到的有用功能:"污点"模式.这使您不会盲目地将用户输入作为数据库查询,命令行等的一部分传递给其他系统.这在编写CGI脚本时是一个很好的好处,因为在将未经检查的用户输入传递给shell之前,脚本会干净地死掉.执行.污点模式并不完美,因为无污染的过程取决于程序员正确地执行操作,但它至少有助于捕获您错过的代码路径.
此外,在这一点上,Perl已经被用于CGI脚本很长一段时间了,因此已经存在大量的库,框架等,以使编写新脚本更容易.加上CPAN可以执行任何操作.