-1

短篇故事:

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

更长的故事:

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

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

笔记:

这个线程有点在同一主题上,但不太符合我的要求。

4

9 回答 9

16

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

针对下面的评论,我还要说,没有必要强迫您的同事学习并快速掌握一种与您已经在使用的语言具有相似功能的语言。

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

于 2008-09-25T15:30:03.337 回答
12

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

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

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

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

于 2008-09-25T16:49:47.670 回答
7

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

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

于 2008-09-25T11:38:54.420 回答
6

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

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

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

消除PerlPython背后的神话。

当然,享受您使用的任何语言。

于 2008-09-25T18:50:34.773 回答
6

替代文字

于 2008-09-25T11:51:49.647 回答
5

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

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

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

于 2008-09-25T11:52:05.403 回答
3

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

在 Python 中比在 Perl 中更成功。

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

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

启动“拯救 Python ”时刻的私人列表。在您的实际组织中实际获胜的每个 Python 救援都是无可争辩的。

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

于 2008-09-25T13:15:54.267 回答
2

Eric S. Raymond 写了一篇有趣的文章/文章,讲述了他使用 Python 的经历,非常受欢迎。

在编写工作代码时:

当您编写工作代码的速度几乎与您可以键入的速度一样快并且您的失误率接近于零时,这通常意味着您已经掌握了该语言。但这没有任何意义,因为它仍然是第一天,我经常停下来查找新的语言和库功能!

这是我的第一个线索,在 Python 中,我实际上正在处理一个非常好的设计。大多数语言在其设计中都内置了如此多的摩擦和笨拙,以至于您在失误率下降到接近零之前很久就了解了它们的大部分功能集。Python 是我用过的第一个逆转这一过程的通用语言。

关于元类黑客:

如果说我很惊讶,那肯定是轻描淡写。当简单技术的实现第一次完全按照预期工作时,这已经足够了不起了。但是我的第一个元类 hack 是从一个冷门开始的六天后的一门新语言?即使我们规定我是一个相当有才华的黑客,这也是对 Python 设计的清晰和优雅的惊人证明。

我根本不可能在 Perl 中发动这样的政变,即使我在该语言方面的经验水平要高得多。正是在这一点上,我意识到我可能将 Perl 抛在了后面。

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

于 2008-09-25T18:35:23.000 回答
0

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

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

于 2008-09-25T13:50:12.997 回答