【问题标题】:Presentations on switching from Perl to Python [closed]关于从 Perl 切换到 Python 的演示 [关闭]
【发布时间】:2010-09-13 01:29:11
【问题描述】:

短篇小说:

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

更长的故事:

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

有什么想法吗?关于该主题的好文章/演示文稿?也许有人已经做过并且可以分享技巧。

注意:

This thread 有点同一个主题,但不太符合我的要求。

【问题讨论】:

    标签: python perl programming-languages


    【解决方案1】:

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

    作为对以下 cmets 的回应,我还要说,强迫你的同事学习并快速掌握一种与你已经在使用的语言具有相似功能的语言是没有意义的。

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

    【讨论】:

    • 更不用说,据我所知,Python 中存在的每一个概念,Perl 中也都存在。 Python 中的 Perl 概念就不是这样了。
    • 这个可以理解。我的目标是新代码,而不是重写现有代码。
    【解决方案2】:

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

    从您帖子的一般语气来看,我倾向于怀疑它可能只是“哦!我发现了这种很酷的新语言并想与大家分享它的酷炫!”或者,“终于我可以用它来摆脱 Perl 的魔掌了……”如果是这样,那你为什么要关心其他人的个人喜好是否与你的相同?如果只是“我们都触摸彼此的代码”的问题,那为什么你的个人偏好要超过其他人呢?

    如果 OTOH,您认为切换有实际的技术原因和显着的好处,那么您需要具体地确定这些好处(演示它们的实际 Python 代码是一种方法,但不是唯一的方法)并将它们展示给您的同事,看看您是否可以让他们相信这是一个很好的转变。

    请小心,以免最终导致从“批处理文件、Excel、Matlab 和 TCL 的奇怪组合”转变为 Perl、Python 以及接下来引起您兴趣的任何其他语言的奇怪组合。

    【讨论】:

    • 完全同意,Python 只是“在”,就像 Apple 和 Starbucks 一样,但仅此而已。 Perl 仍然是一门很棒的语言,我很惊讶听到人们整天都在“切换”到 Python,就像 Python 确实提供了远远超出 Perl 的功能,但事实并非如此。
    【解决方案3】:

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

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

    【讨论】:

    • 我知道我的原因 :-) 想听听其他人的意见。此外,我希望得到具体的指示——鉴于最近的趋势,从 Perl 到 Python 的过渡发生了很多。
    • 恕我直言,'趋势不是切换语言的理由。这样你就可以一直切换它们......
    【解决方案4】:

    【讨论】:

    • 而且我认为这真的是由于药柜的内容。
    • 如果您将每个引用从“python”更改为“perl”,并将“import antigravity”更改为“use antigravity”,它仍然有效。
    • 另外,剪掉一半的单词,把剩下的一半字母改成标点符号。
    【解决方案5】:

    对不起。我很生气你把 Perl 当作基本的。和 Python 一样是进化的下一步。现在我已经把它从我的胸口拿走了。

    评估两者的功能(和限制)差异。 Perl 有常量、多行匿名函数和autovivification,但 python 有更好的默认 Object Orientation。

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

    揭开PerlPython背后的迷思。

    当然也可以享受您使用的任何语言。

    【讨论】:

    • 如果说 Python 更像 Basic 而不是 Perl。 Python 和 Basic 试图成为易于阅读的语言。
    【解决方案6】:

    如果您无法改变非技术经理对如何从一种语言更改为另一种语言的想法,那么您就没有资格建议更改或领导更改。

    你必须有正当的理由说明它比现有的更好 - 而“我更喜欢语法”或“谷歌使用它”在财务上甚至技术上都不是正当理由。

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

    【讨论】:

      【解决方案7】:

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

      在 Python 中比在 Perl 中更成功。

      当他们问您为什么如此成功时,请警告他们必须跳出框框思考。在揭示您成功的秘诀之前,请确保他们确实想要改进。 【有些人不想进步,就想发牢骚;尽量不要启用它们。]

      在你更成功之前,你没有什么可展示的。 “说服他们的好处”是您个人的成功故事。

      创建一个“Python to the Rescue”时刻的私人列表。在您的实际组织中实际获胜的每个 Python 救援都是无可争辩的。

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

      【讨论】:

      • 无可争辩的是,Python 在那天拯救了它,至少。但是,如果您展示它的人指出 Perl(或 C 或 Ruby 或...)本可以来拯救的更简单的方法,请不要太惊讶。
      • 诀窍是不要质疑替代解决方案的优点。诀窍是成功。其他一切都只是从无可争议的领先者那里吸取的经验教训。
      • 这是 Perl 而不是 perl。您将 Python 大写,但没有习惯将 Perl 大写?
      • @Brad Gilbert:我不认为这是一个常见的体面问题。这是荒谬的。我将其称为拼写检查器,似乎并不在意。但是,您可以随意责备普通礼仪。
      • 如果您不仅无可争辩地领先于潮流,而且无可争辩地领先于其他所有人,这可能会奏效。否则,您很可能会得到“那又如何,perl 也可以做到这一点”,这是理所当然的。
      【解决方案8】:

      Eric S. Raymond 写了 an interesting article/essay on his experience with Python,非常受欢迎。

      关于编写工作代码:

      当您编写工作代码时 几乎和你打字一样快 你的失误率接近于零,它 通常意味着你已经达到 掌握语言。但是那个 没有意义,因为它是 还是第一天,我经常 停下来寻找新的语言和 库功能!

      这是我的第一个线索,在 Python,我实际上是在处理一个 非常好的设计。最多 语言有太多的摩擦和 尴尬融入他们的设计 你学习了他们的大部分功能 早于你的失误率设定 下降到接近零的任何地方。蟒蛇是 我想要的第一个通用语言 曾经使用过逆转这个过程的东西。

      关于元类黑客:

      要说我很惊讶 一直在积极地沉迷 轻描淡写。已经足够了不起 当简单的实现 技术完全按预期工作 第一次;但我的第一个元类 六天后用一种新语言破解 冷站开始?即使我们 规定我是一个相当有才华的人 黑客,这是一个了不起的证明 以 Python 的清晰和优雅 设计。

      我根本没有办法 在 Perl 中实现了这样的政变, 即使我有更丰富的经验 那个语言的水平。正是在这个 我意识到我可能是 将 Perl 抛在脑后。

      对于任何听说过 Raymond 和编写 Python 的人来说,绝对值得一读。他有很多 perl 经验(以及很多一般的编码经验),因此他对 Python 的热情洋溢的评论背后有一定的分量。

      【讨论】:

      • 我猜 Eric 永远“不可能发动政变”,甚至不可能预见到像 Class::MOP 或 Moose 这样的事情。
      • 是的,Eric Raymond 的文章很好,是我最终屈服并学习 Python 的动力之一。几乎一拿起它,我就发现我所有的 Perl 技能都翻译得很完美,而且我的 Perl 没有任何问题。 Python 很容易学习:让他们写一个脚本,他们就会上瘾。
      【解决方案9】:

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

      如果您向您的经理提出建议,请提及如何更容易维护的部分。他可能会要求每个人现在都切换。

      【讨论】:

        猜你喜欢
        • 2010-10-16
        • 1970-01-01
        • 1970-01-01
        • 2012-08-24
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-06
        • 2010-10-26
        相关资源
        最近更新 更多