我应该首先学习用于开源Web开发的Perl或PHP吗?

Lim*_*oda -2 php perl lamp

我一直在使用Microsoft堆栈,并希望在业余时间获得一些像LAMP这样的替代堆栈的经验.

LAMP中的P通常是"PHP",但可以是Perl(或Python,但我正在考虑Perl或Python上面的PHP.).我倾向于Perl,因为它看起来在其他应用程序中很有用,并且因为Perl似乎比PHP更"聪明"和"更好".

Perl的优点:

  • 更好的声誉.PHP因糟糕的设计决策和编写的大量不良程序而声名狼借.
  • 可用于非Web程序.
  • 更多人似乎喜欢Perl,但即便是PHP社区对PHP也不热衷.

PHP的优点:

  • 已经安装了更多的Web服务器,而不是Perl.
  • 因为解决了与Web有关的一些架构问题,所以更容易上手.
  • PHP是一种流行的语言,用于当前互联网上的大多数网站.
  • 知道PHP似乎更有可能在我的工作中使用.

由于这个社区似乎更专注于微软和Java,而这正是我开始的地方.我对你的意见感兴趣.

小智 13

Perl有一堆库来处理Web堆栈(包括ORM).CPAN是你的朋友.使用Perl的最大驱动因素之一是CPAN.

一旦你学习了语言的基础知识,我建议将Perltidy,Mason,Catalyst,Template-Toolkit2,Moose,DBIPOE作为相关的关键词开始搜索.

PHP更加"新手"友好,同样意义上说VB6是新手友好的.你可以编写代码,甚至可以编写好代码,但编写好的PHP代码要困难得多.

Asa Ayers:perldoc perlvar是你的朋友(另见perldoc perl).

  • 安德鲁,我不同意所有观点.Perl有更多的库,并且有更好的语言支持,包括词汇环境,闭包,MOP等.Matt Wright确实编写了错误的代码,但那是近十年前的事了.从那以后很多事情改变了. (3认同)

And*_*yes 10

PHP是一种非常受欢迎的语言,其声誉很高,因为许多设计决策都扼杀了在代码中制造计算机科学错误.PHP允许用户轻松混合HTML和域逻辑,这显然是计算机科学中的一个禁忌.这既是PHP易于使用的原因,也是导致它被认为如此糟糕的原因.如果您是一名优秀的,有纪律的程序员,您可以使用PHP进行良好,干净的编程实践.

Perl很快就会消失,在现代Web应用程序中并没有太多用处.有很多Perl纯粹主义者,但我知道太多人嘲笑Perl的语法和PHP一样多.

PHP是一种特定于doman的语言,而Perl则不是.PHP包含许多您将习惯使用.NET环境的好功能,例如验证和清理输入以及通过ORM轻松使用数据库.Perl本身并没有太多做这样的事情,因此使用Perl的框架或Web编程库几乎总是更容易,与其他常见的CGI语言(如Python和Python)一样.红宝石.出于这个原因,如果你想进入网络编程,如果你选择不用PHP开始,我可能会完全放弃Perl,而不是从其他两种语言开始.

  • 如果Perl褪色,它会慢慢消失*. (4认同)
  • 这篇文章只不过是FUD.我喜欢使用"计算机科学"这个词."退后一步......我要去尝试科学!" (2认同)

Suj*_*joy 7

对于Web开发,我会说PHP很清楚,因为它更好地与数据库集成,并且有点为Web设计.不要忘记,几乎所有的webhost都支持PHP,其他语言也是如此.

但是,如果有选项,那么在给定所有现在可用的框架的情况下,Python可能是更好的选择,但从主机角度来看,PHP很容易找到,除非您从自己的服务器托管.

  • 是否提供任何证据表明它对数据库有更好的支持?PDO是DBI背后的一种方式,大多数人甚至不使用PDO,PHP开发人员对数据库特定库进行编码是相当常见的. (2认同)

n3r*_*3rd 7

你为什么不看看你感兴趣的开源项目,并根据它做出决定?我不认为反过来这样做特别聪明.


xcr*_*mps 6

@Asa Ayers

Perl不使用魔术变量,程序员也可以.Perl只提供它们.

foreach (@x) {
    print $_, "\n";
}
Run Code Online (Sandbox Code Playgroud)

要么

foreach my $x (@x) {
    print $x, "\n";
}
Run Code Online (Sandbox Code Playgroud)

并不难.$ _和@_在Perl中非常非常基本,并且是可选的.RTM或Larry Wall的书.

PHP是一个上帝可怕的混乱.Perl的设计得到了优秀人才的支持.如果你将像Perl这样经过深思熟虑的语言的开发外包给那些花费一半时间来回答AMEX常见问题解答和花费一半时间编程的人,那么PHP就是你所得到的.


Chr*_*s S 5

这可能会让 Perl 程序员不高兴,但我会学习 PHP。从经验来看,它的 API 对用户和新手更加友好,您可以更快地获得可见的结果。

一旦您使用 PHP 几个月后,您就可以尝试 Perl,除了 API 和模块之外,它的大部分语义都会很熟悉。Perl 有很多快捷方式,例如“$_”,可能需要一段时间才能弄清楚。

PHP API 使用了许多 C 程序员熟悉的函数,您可以掌握通过引用传递以及 PHP 5 中的一些核心 OO 功能(但是,您也将学习 Perl 中的 OO 编程,并且语法确实不是差别不大)。

另一个额外的:PHP 纪录片非常好。它有几乎所有功能的注释和注释,并在 .NET 扩散之前让 MSDN 蒙羞。它仍然让 Javadoc(对于标准库)感到羞耻。

我的免责声明 - 我以相反的方式学习它 - Perl 然后是 PHP。Perl 是 5.x 版,PHP 3.x 到 4.x。虽然我已经有大约 5 年没有使用过这两种语言了,但是当我使用的时候写 很多。此外,Perl 6 当时被誉为未来的救世主(看起来它还没有发布!)。


Cym*_*men 5

我主动使用Perl和PHP.通常,我使用PHP进行Web开发,使用Perl进行重量级脚本编写任务.我还帮助维护一个使用Perl作为Web语言的遗留系统以及Mason.

在我开始使用Perl(使用5.x)之前,我至少使用了PHP几年.在使用这两种语言一段时间之后,我发现核心Perl语言的语法和可用性略微优于PHP.这通常是关于我怀疑是由于PHP实现的小问题.例如,PHP函数func_get_args要求将结果设置为变量.你必须这样做:

$args = func_get_args();
return $instance->objectMethod($args);
Run Code Online (Sandbox Code Playgroud)

这样做是不可能的:

return $instance->objectMethod(func_get_args());
Run Code Online (Sandbox Code Playgroud)

显示的例子是一个非常轻微的刺激,但它是典型的出现的事情.另一个典型的是函数参数的顺序(参见字符串函数,它改变哪个参数首先出现而不是坚持一些人认为总是将字符串作为第一个参数的逻辑思想).

另一方面,看看Perl和Mason的遗留系统,我不得不说我更喜欢阅读另一个程序员,用梅森将Perl与Perl相提并论.问题是在浏览器中加载页面与执行的代码之间的连接更快确定.这可能是由于Perl和Mason在这里使用的原因.我强烈怀疑它是.

关于Perl的另一点是,虽然CPAN是一个强大的功能,但是需要大量CPAN模块的应用程序的持续维护有时会花费比预期更多的时间.考虑到这一点,我尝试限制多余的CPAN模块使用.

我的建议是从PHP开始.虽然PHP可能会有轻微的烦恼,但如果仔细考虑正确使用它是非常强大的.