我应该学习Perl作为Web开发人员吗?

时间:2009-12-01 11:05:54

标签: perl

  

可能重复:
  Should I learn Perl, and why?
  When should I use Perl CGI instead of PHP (or vice versa)?

背景

我目前是一名网络开发人员,熟悉HTML,CSS,PHP,MySQL,JavaScript(主要通过jQuery)和Ajax

我最近进入了Flash和ActionScript的世界,并遇到了一些Perl,它通过编辑文本文件来控制记分板系统。

我的同事也使用Perl编写脚本来每天备份我们的MySQL数据库并在线存储它们。他继续前进,我的任务是维护脚本。因此,我需要学习Perl。

问题

作为一名网络开发人员,使用上述语言和技术,Perl是我的谚语工具箱的有用补充,还是有更合适的语言可以学习更有益?

如果Perl适合我,你会建议什么是好资源,我通常会使用在线资源来学习,但是有没有特别有益的书?

14 个答案:

答案 0 :(得分:18)

Perl值得学习。它跟上了最新的流行语,除了它们在Perl社区之外没有得到太多的宣传。例如,Catalyst Web Framework正在与其他可用的Web框架保持同步。它具有额外的优势,可以使用来自CPAN的Perl模块。就个人而言,我已经使用Catalyst一段时间了,我非常喜欢它。

为了学习Perl,有很多在线资源。以下是一些:

Learning Perl是一本很好的书。

答案 1 :(得分:17)

我试过学习一次日语。我一直对这种文化着迷,我觉得说这种语言真是太酷了。在我大学的初学者课程六周后,我突然意识到,如果没有实际的日常语言需求,我永远不会记得我曾经教过的东西,或者用它来培养任何真正的技能。为学习而学习很少是有用的努力。我们通过做最好的学习。我们做事是因为有必要这样做。

听起来你有一些实际需要“一些”Perl来改进这个数据库备份脚本。我打赌,凭借你现有的背景,O'Reilly Perl in a Nutshell的副本,以及几个免费的下午,你可以弄清楚它正在做什么,以及如何改进它。如果您喜欢Perl之后的感受,请使用Perl开始解决您的其他一些问题。每天使用它是学习它的最可靠方法。这需要时间 - 如果你几年后仍然发现“新的”做事方式,不要感到惊讶。

关于“Perl有用吗?”的问题。很多人都在使用它 - 我是从生物信息学实验室写的,其中Perl是通过大量基因数据进行处理以及构建基于Web的结果可视化的首选语言。

你的问题让我想起了Joel关于学习新技能的一篇文章,如果你以前没见过,那么值得一读:http://www.joelonsoftware.com/articles/LordPalmerston.html

答案 2 :(得分:15)

MooseCatalystDBIx::Class的崛起现在是进入Perl的好时机。

答案 3 :(得分:14)

是的,每个人都应该学习Perl。

Perl会直接影响您作为Web开发人员的工作吗?可能不是。 Perl是Web应用程序的理想语言吗?可能不是。我说这是一个专业的Perl开发人员。

了解Perl就像了解西班牙语或boyscout结。没有人可以肯定地说你会/不会使用它,但是在你的武器库中总是很好。这么多脚本都是用Perl编写的。也许你会转换工作并去一个框架用Perl编写的商店。也许您需要自动化或脚本化的东西。如果您了解Perl,所有这些情况都很容易解决,但如果您不了解Perl,则可能不知道。

Perl是一种粘性物质,可以平滑于计算机系统之间粗糙的中间位置,尤其是互联网。了解Perl绝对会让您成为更好的开发者,因为它具有强大的表现力和便利性。谁知道,你最终可能会喜欢它。

Perl远非无用。即使将脚浸入其中也会产生很多好处,因为Perl就是这样(方便,功能强大等)。

答案 4 :(得分:7)

如果您认为它可以帮助您完成项目或工作,您应该学习任何新东西。即使你只触及Perl的一小部分,它也可能会帮助你变得更好。我不是说你应该学习那里的一切,但学习是好的。它比看电视更有价值:)

答案 5 :(得分:3)

在维护脚本方面,你无法击败perl,并且与Php共享的小熟悉程度(Php在其初期受到perl的启发)应该不会让人感到尴尬。

如果你对网络开发很认真,我的意见(如果仅用于维护部分),这是一个明智的选择。

答案 6 :(得分:3)

Perl只是另一种工作的工具。如果你需要了解某人的perl脚本,你显然需要学习它。

除此之外,很难说您是否需要它作为Web开发人员,因为Web开发有很多工具选择。 Perl有很多用途,Web开发只是其中之一。如果没有实际需要,使用它的决定是主观的。

就个人而言,我不会试图学习所有可能的Web开发工具,但是对Perl脚本的粗略了解尤其适用于unix,因为你会在普通Web开发之外遇到它们。

答案 7 :(得分:3)

没有

开玩笑 - 确实你应该 - 但恕我直言,你不应该给它任何优先权。答案很简单:由于动机,Perl现在的Web使用率很低:它(非常)丰富的语法和许多表达方式使Perl应用程序真的难以维护。这意味着,一段时间后甚至很难阅读自己的代码。

因此,对于长期可维护应用程序的制作,您应该专注于同样的语言:期待可维护的应用程序。我个人的偏好是Python,它明确地说明了其“可读性计数”的原则。它确实具有丰富的库环境,如Perl,并且具有足够的表现力,允许您在2或3个非常易读的代码行中以神秘的Perl表达式执行任何文本转换或技巧。

我不想在这里使用flamebait,随意更改上面的“Python”,以便在保持可读性的同时优先考虑简洁。

那就是说,现在 for Perl的动机:有很多遗留代码可以让你能够阅读和重用。破解内联文本转换技巧很有趣,因此您的代码看起来很神奇。而Perl中的思维方式可以增加您的代码技能和想法,甚至可以用其他语言进行制作。

所以,学习HTML,CSS,JavaScript,然后学习应用程序的生产语言:Python,PHP,Ruby,Java等......然后作为第二(第三,第四)语言学习Perl以便能够开发一些技巧和“与过去学习”

答案 8 :(得分:2)

我要学习Python或Perl;至少其中一个会在你的职业生涯中派上用场。如果您需要Perl,那么它是一个非常快速的选择。

如果我选择没有任何基于项目的偏见,我个人的选择就是Python;对我来说这更容易。

Perl将为您提供良好的服务。学习。 : - )

答案 9 :(得分:1)

是的,你应该学习Perl,原因之一是:mod_perlmod_perl将整个apache API暴露给perl,让你在任何级别的apache内部都做疯狂的事情。如果您真的想要控制Web服务器上发生的事情,那么您的选项是mod_perl,或直接在C中编码。没有其他网络技术真正比较。

如果你真的不想那么接近网络服务器,那么答案仍然是肯定的,但是更加保留是的;您应该学习尽可能多的语言,以便在任何环境中工作。 Web开发的关键是理解基本Web技术:HTTP,HTML,CSS和Javascript。您生成输出的语言几乎毫无意义。所以学习Perl;还学习Python,Ruby,Visual Basic.Net,C#,Classic ASP,Java ...

答案 10 :(得分:0)

我非常尊重Perl,并认为它是一个有用的工具,也是一门学习的好语言。不过,我想补充一下我的观点:我已经做了七年的网络开发人员,还有真正的服务器管理任务(尽管远不是自称是Linux专家或管理员)我不会说Perl而我从来没有< em>需要它。我的意思是,我从来没有完成任务 - 无论是开发还是维护 - 因为我缺乏对Perl的了解。

因此,如果您感到有压力学习一种您并不真正想要的新语言,但为了在您的工作领域中完成,我会说:不,它不是必要的

它是否通常是每个Web开发人员工具箱的有用补充?为什么,绝对。我希望有一天能够掌握它。

答案 11 :(得分:0)

为什么不呢?

我对这个问题的唯一答案是:我没有时间。如果你正在寻找一种新的语言来学习,为了拓宽你的知识,我有三个建议,两者都更适合我的观点:

  1. Ruby - 我对Perl只有肤浅的知识,但基于我可以做的比较,我会说Ruby是一种更加激进,灵活和神奇的语言。它促进面向对象不同于我曾经真正使用的任何其他语言(也就是说,你可能想学习smalltalk。至少那是我对可预见的未来的计划)。语言>here<有一个非常酷的介绍(你真的可能想读前言)。除了时髦的语法,Perl几乎没有提供,Ruby没有,但Ruby on Rails可能是最高效的服务器框架之一。
  2. Haxe - 看看你到目前为止所做的事情,这应该是你选择的武器。我可以详细解释,但我真的建议你,只是试一试。如果你真的想有一些理由使用它,你应该看看>here<。我能给你的唯一原因是,Haxe被设计成一种富有表现力和高效的语言,它的创造者和维护者都是人,他们经常使用它并以惊人的速度推动它前进。所有给出的理由,为什么Haxe如此伟大,可能看起来无关紧要,但如果你学习这门语言,你会真的感谢你自己。我花了2-3个月的时间来熟悉它(我来自动作背景),但现在我甚至不换钱。
  3. go - 可能是主要原因:它是由巨人支持的。如果谷歌这样的公司创建了一种语言,我会相信它非常适合于服务器开发。这个肯定在我的名单上。

答案 12 :(得分:-1)

当我在2007年开始目前的工​​作时,我不得不涉足Perl,以维持统计系统。这是一种见解,但不是我会优先考虑的语言。如果你必须在日常工作中进行维护 - 你没有什么可失去的。你得到了报酬。

我在其他语言中没有看到Perl的细微差别(列表上下文)。内联正则表达式(类似于Actionscript / JS)的一些功能比PHP的方法更令人愉快(简洁)。另一方面,有些东西感觉像是一个cludge,例如passing array arguments by reference所以它可以在你的子程序中修改。

我不得不同意jsbueno,但对我来说,Perl有太多方法可以完成相同的任务。重新审视自己的代码,更不用说继承另一个开发人员可以让你在适应他们的风格时稍微摸不着头脑。由于jsbueno引用的原因,Python更具吸引力。

答案 13 :(得分:-2)

我会考虑使用Python。它易于学习,并拥有一个巨大的标准库。它也支持Google App Engine。 Python也是一种很好的“学习”语言,因为它的代码简洁易读。