当前位置:  开发笔记 > 编程语言 > 正文

PHP之后的下一步:Perl还是Python?

如何解决《PHP之后的下一步:Perl还是Python?》经验,为你挑选了7个好方法。

它似乎已被多次询问,但实际上它没有.我做了我的研究,现在我渴望听到别人的意见.

我有PHP 5的经验,包括功能和面向对象的编程方法.我创建了一些功能简约的网站.

专业人士可能会同意PHP不是一种鼓励良好开发习惯的编程语言.(我认为这不是该工具的任务,但这并不重要.)此外,它的表现也存在争议,并且与竞争对手相比通常被认为是差的.

在Stack Overflow博客的第42期播客中,来自波兰的开发人员询问他应该学习哪种语言以提高他的技能.Jeff和Joel建议他们每个人都会有所帮助,尽管有些特定的东西在某些方面更好.尽管他们提出了一些很好的观点,但对我来说并没有那么大的帮助.

从初学者的角度来看,没有人可能看不到(由S. Lott建议的更正)Perl和Python之间的许多差异.我希望你强调他们的优点和缺点,并列举一些独特的服务.

当然,这不公平,因为我也可以检查它们.所以这是我的愿望清单和要求,以帮助你帮助我.

首先,我想遵循OOP结构并从根本上使用它.我部分地计划使用MySQL和XML 的多用户CMS,因此实现越多越好.由于其预见的性质,将强烈使用字符串操作.

如果没有很大的差异,比较应该首先提到语法和其他无关紧要的细节.

所以,这是我的问题:我应该尝试哪一个- Perl || 蟒蛇?


结论

Perl和Python都有自己的粉丝,这很棒.我想说我很感激所有参与 - 没有任何火焰战争的痕迹.

我接受了最有价值的答案,尽管下面有许多很棒的迷你文章.正如我经常提到的那样,我将首先使用Python.然后我会稍后再尝试Perl.让我看看哪一个更符合我的想法.

在我的特殊CMS的开发过程中,我将要求更多关于编程疑惑的问题 - 因为开发人员现在可以相互依赖!谢谢.

编辑:有些人建议选择Ruby或Java.Java实际上让我很失望.也许它有很棒的功能,也许它没有.我不喜欢使用它.

另外,我被告知要使用Ruby.到目前为止,我与之沟通的大多数开发人员对Ruby都有不好的看法.我会亲自看到,但那是我优先考虑的最后一个元素.



1> nxadm..:

Perl是一种非常好的语言,CPAN拥有大量成熟的模块,可以为您节省大量时间.此外,Perl现在正在向前推进很多有趣的项目(不像那些不知情的粉丝喜欢传播).即使是Perl 6实现,现在也可以发布Perl 6.

我想做OO,我会推荐Moose.


看到Perl在这里爱,这让我感到温暖.我一看到'Python或Perl?' 我确信有一千人会发布有关Perl如何死亡的帖子.随着Moose和Perl 6等框架的发展非常迅速,它已经远未消亡(加上我的公司在整个地方使用它)

2> Paolo Bergan..:

老实说,我的编程的"大部分"都是在Perl和PHP中,我最近决定用Python做我最新的项目,我必须承认编程非常好.我对整个没有花括号的东西犹豫不决,因为那是我一直以来所做的,但它真的非常干净.但是,在一天结束时,您可以使用所有3个来创建良好的Web应用程序,但是如果您在放弃PHP以尝试新的东西时已经死定,我会推荐Python和Django框架.


@pestaa:好通常会导致流行.很少有东西可以流行和坏.除非有某种贸易垄断(如Windows).

3> Alex Fort..:

我会选择Perl.不是每个人都会在这里同意我,但它是一种非常适合系统管理工作的优秀语言,它会让你接触到更多功能性的编程结构.它是学习如何为给定任务使用最少量代码的好语言.

对于你提到的使用场景,我认为PHP仍然是你最好的选择.但是Python确实有一些很棒的Web框架,所以如果你只是想尝试一种新的语言来开发Web应用程序,那么Python可能就是你的选择.


+1我很高兴终于看到了一些Perlites.传教士似乎在SO上是巨大的,即使将来使用Perl 6,有些人*哼*声称"珍珠"正在死亡......

4> spoulson..:

我没有使用Python的经验.我强烈要求学习Perl,不是出于磨损,而是因为在平台上有TON需要学习.Perl的关键概念是:做我的意思(DWIM)并且有多种方法(TMTOWTDI).这意味着,假如问题得到充分解决,通常没有错误的方法来解决问题.

首先学习Perl的基本语言,然后扩展自己学习关键的Perl模块,比如IO :: File,DBI,HTML :: Template,XML :: LibXML等.search.cpan.org将是你的资源. perlmonks.org将是您的向导.几乎所有有用的东西都可能会发布一个模块.

请记住,Perl是一种动态且结构松散的语言.Perl不是强制执行严格的OOP标准的平台,但有充分的理由.你会发现这种语言非常灵活.

Perl在哪里使用?如前所述,系统管理员大量使用它.您仍然可以通过简单的CGI或MVC框架来完成优秀的Web应用程序.


我的答案是教育.提问者将自己做出决定.如果你感觉如此强烈,那么我建议你回答.
如果您没有Python经验,为什么还要选择哪两个选择?

5> Powerlord..:

我没有太多使用Python,但我可以告诉我为何在使用它时喜欢Perl.

    OO的支持感觉很强.perl中的OO与我使用的其他语言(包括PHP,Java和C#等内容)中的OO支持非常不同

    TMTOWTDI(有多种方法可以做到).理论上的好主意,实践中的糟糕想法,因为它降低了代码的可读性.

    Perl使用了很多魔术符号.

    Perl不支持命名函数参数,这意味着您需要深入了解@_数组以获取传递给函数的参数(或者更确切地说,一个sub作为perl没有函数关键字).这意味着你会看到很多东西,如下面的例子(移动'因为SO不喜欢编号列表中的代码)

说了这么多,我会看看Python.除非你想要像C++或C#/ Java那样重量级的东西.

哦,在我忘记之前:我想为上面的4做一个例子,但是不喜欢把代码放在编号列表中:

sub mySub {
    #extremely common to see in Perl, as built-ins operators operate on the $_ scalar or @_ array implicitly
    my $arg1 = shift;
    my $arg2 = shift;
}


将哈希传递给Perl子例程并使用它来提供命名参数(以任何顺序)都很容易.sub get_dimensions {my%params = @_; 我的$ area = $ params {'width'}*$ params {'length'}; }
"TMTOWTDI(有多种方法可以做到这一点).理论上的好主意"?真?即使在理论上,这听起来也不是一个好主意.歧义总是一个问题.
我相信如果语言结构妨碍你,你要么没有完全学习语言,要么误用它.大多数这些项目都是新手必须学会处理的问题.
Perl OO被加入了.它简单,灵活,如果你想要更"纯粹"的OO,可以使用Moose.面向对象并不是最终的编程范例.

6> Guðmundur H..:

经过几年Perl之后,我最近从Perl迈出了一步到Python.此后不久,我发现我已经开始阅读所有类型的Python代码,就像任何其他易于阅读的文本一样 - 这是我从未用Perl做过的事情.不得不深入研究第三方Perl代码对我来说一直是个噩梦,所以这是一个非常非常好的惊喜!

对我来说,这意味着Python代码更容易维护,从长远来看,这使得Python比Perl更具吸引力.



7> gregturn..:

Python干净而优雅,并且已经包装了许多C API,这为您提供了强大的功能.我也喜欢" 禅宗的Python ".

美丽胜过丑陋.

显式优于隐式.

简单比复杂更好.

复杂比复杂更好.

Flat优于嵌套.

稀疏优于密集.

可读性很重要.

特殊情况不足以打破规则.

虽然实用性胜过纯洁.

错误不应该默默地传递.

除非明确沉默.

面对模棱两可,拒绝猜测的诱惑.

应该有一个 - 最好只有一个 - 明显的方法来做到这一点.

虽然这种方式起初可能并不明显,除非你是荷兰人.

现在比永远好.

虽然从未往往比好正确的现在.

如果实施很难解释,这是一个坏主意.

如果实现很容易解释,那可能是个好主意.

命名空间是一个很棒的主意 - 让我们做更多的事情吧!

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有