关于从Perl切换到Python的演示文稿

时间:2008-09-25 11:31:53

标签: python perl programming-languages

短篇小说:

我正在寻找关于从Perl切换到Python的演示文稿/好文章。

更长的故事:

我是硬件设计小组的程序员/嵌入式硬件工程师。几年前,我已经说服我的同事使用Perl编写脚本(而不是批处理文件,Excel,Matlab和TCL的奇怪混合)。从那时起,我自己已经从Perl切换到Python,并对这一变化感到非常高兴。我想以某种方式说服我的同事跟随我的道路,但我需要好点来说服他们。这些不能像程序员巫毒一样喜欢更好的反思设施(不像我自己,这里的大多数人都是EE毕业生,而不是程序员)。

有什么想法吗?关于这个主题的好文章/演讲?也许某人已经做过并且可以分享提示。

注意:

This thread在某个主题上有所不同,但不太符合我的要求。

9 个答案:

答案 0 :(得分:14)

当两种语言具有相似的功能时,将大量代码从一种类似的语言重写为另一种语言没有任何好处。也许你应该专注于编写更好的perl代码。也许学会使用perltidy,或者购买Perl Best Practices和Perl Medic的副本,并将它们交给你的同事。如果你担心Perl不像Python那样完全是OO,那就使用Moose(我反驳说,与Perl相比,功能编程部门缺乏Python。)

在回应下面的评论时,我还会说,强迫你的同事学习和掌握与你已经使用的语言具有相似能力的语言并没有任何意义。

现在,如果你的公司需要一些可用(或远远优于)在Python中可用(或质量远远低于Perl)的库,那么继续切换或添加另一种语言到混合

答案 1 :(得分:11)

我认为你需要的第一个答案是“我为什么要让他们切换到Python?”的答案,这是你唯一可以提供的答案。

从你帖子的一般基调来看,我倾向于怀疑它可能主要是“噢!我找到了这种很酷的新语言,并希望与大家分享它的冷静!”或者,“最后我可以用来逃避Perl的魔掌......”如果是这样,那你为什么要关心其他人的个人偏好是否和你的一样?如果只是“我们都触摸彼此的代码”的问题,那么为什么你的个人偏好会超过其他人的呢?

如果,OTOH,您认为通过切换可以获得实际的技术原因和显着的好处,那么您需要用具体的术语来识别这些好处(实际的Python代码来演示它们是实现此目的的一种方法,但不是只有这样)并将它们呈现给你的同事,看看你是否能说服他们这是一个很好的转变。

请注意,不要最终将“批处理文件,Excel,Matlab和TCL的奇怪混合”转移到Perl,Python以及其他任何其他语言的奇怪混合物中。

答案 2 :(得分:7)

你喜欢Python而不是Perl的原因是什么?是什么让你如此开心?你的同事对Perl不满意吗?如果是这样,那么Perl会给他们带来什么困难并且可能在Python中工作得更好?

说服他们的唯一方法是向他们展示可能的好处。那些往往是非常主观和个人的,恕我直言。

答案 3 :(得分:6)

alt text

答案 4 :(得分:5)

如果你无法改变非技术经理关于如何从一种语言转换到另一种语言的想法,那么你就没有资格建议改变或领导改变。

你必须有正当理由为什么它比已经存在的更好 - 并且“我更喜欢语法”或“谷歌使用它”在经济上甚至是技术上都是无效的理由。

这是一个如此庞大的开关,您需要在自己的脑海中知道为什么这样做是有意义的。

答案 5 :(得分:5)

对不起。我很生气你认为Perl就像基本一样。和Python一样,是进化的下一步。现在我已经把它从胸前拿走了。

评估两者的特征(和限制)差异。 Perl有常量,多行匿名函数和autovivification,但是python有更好的默认面向对象。

评估团队/朋友转换的成本/收益。您的团队可能有不同语言的专业化,或者可能浪费资源。

消除PerlPython背后的神话。

当然,享受你正在使用的任何语言。

答案 6 :(得分:3)

如何说服人们Python比Perl更好?

在Python中比在Perl中更成功。

当他们问你为什么如此成功时,警告他们他们必须在盒子外思考。在揭示你成功的秘诀之前,确保他们真的想要改进。 [有些人不想改进,他们想发牢骚;尽量不启用它们。]

在你取得更大成功之前,你没有任何表现。 “说服他们的好处”是你个人的成功故事。

启动“ Python to the Rescue ”时刻的私人列表。每一个拯救的Python都是您实际组织的真正胜利,这是无可争辩的。

每天,您都希望寻找一个整洁,可博客的成功故事。

答案 7 :(得分:2)

Eric S. Raymond写了an interesting article/essay on his experience with Python,这非常有利。

编写工作代码:

  

当你编写工作代码时   几乎和你打字一样快   你的失误率接近零,它   一般意味着你已经实现了   掌握语言。但那   没有意义,因为它是   还是第一天,我经常   暂停查找新语言和   图书馆功能!

     

这是我的第一个线索   Python,我实际上正在处理一个   非常好的设计。最   语言有很多摩擦力   尴尬融入他们的设计中   你了解他们的大部分功能   在你的失误率之前设定很久   几乎落在零附近。 Python是   我是第一个通用语言   曾经用过这个改变了这个过程。

关于元类黑客攻击:

  

说我很惊讶会有   一直积极地沉溺于   轻描淡写。这非常了不起   当实现简单   技术完全按预期工作   第一次;但我的第一个元类   六天后用一种新语言破解   冷静的开始?即使我们   规定我是一个相当有才华的人   黑客,这是一个惊人的遗嘱   Python的清晰度和优雅   设计。

     

根本没有办法   在Perl中发起这样的政变,   即使我拥有丰富的经验   那种语言的水平。就在这   我意识到自己很可能   让Perl落后。

对于任何听说过Raymond的人以及任何编写过Python的人来说,绝对值得一读。他有很多perl经验(以及一般的编码经验),因此他对Python的热烈回顾也带来了一定的影响力。

答案 8 :(得分:0)

询问您的同事是否仍然可以阅读几个月前写的Perl脚本,或者他们是否可以阅读和理解彼此的脚本。 Python的一个关键是它非常易读。同时向他们展示如何在Python中用Perl完成所有好东西。向他们展示Python文档。向他们展示如何将Python OO与Perl相比更好地集成到语言中。

如果您向经理建议,请提及有关如何更容易维护的部分。他可能会要求所有人立即转换。