Python在较大团队中有效吗?
我昨晚看了这篇文章,让我开始思考一些问题。我喜欢Python和它的“电池”,还有pypi之类的东西。但我只是在自己一个人写Python,从来没有在团队里用过。
Ted提到的那些观点是否有道理?如果有,团队是怎么应对这些问题的?Python适合团队合作吗,尤其是大团队?还是说它会降低工作效率?
我个人在回顾自己以前写的代码时,确实能看到他提到的问题。即使是在使用其他模块时,有时候我也需要看看里面的内容。我想听听有经验的人对此的看法。
4 个回答
我之前在用Java的团队工作过,现在在用Python的团队里。综合来看,我觉得Python的代码比我之前团队写的Java代码要清晰得多,也更容易理解。那句“应该有一种——最好只有一种——明显的方法来做这件事”的理念真的很有帮助。
我同意作者对PyDev的看法……我的团队这几个月一直在用PyCharm,效果真是太棒了!!!
至于作者提到的Python的异常处理,我觉得这个观点不是很好。在Java中,大多数检查异常(在方法定义后面用'throws'关键字列出的异常)通常也只是被捕获后重新抛出为运行时异常。很多人认为Java根本不应该有检查异常,而是应该使用更接近Python的异常处理系统。想了解更多关于Java检查异常的内容,可以看看这篇文章。
总的来说,我觉得在团队中用Python比用Java要好。我在用Java的团队工作了6年,而在用Python的团队工作了6个月,发现Python的语法简洁易读,带来了巨大的工作效率提升。
我现在在一个大型的Django应用上工作,而在之前的工作中,我参与了一个大型的Java项目(是桌面应用,不是网页,但这和讨论还是有关系的)。所以我对作者的观点有点纠结,既想赞同又想反对。
虽然我更喜欢Python而不是Java,而且我也有很多使用其他动态类型语言(比如Ruby和Objective-C)的经验,但我还是不太确定哪种语言更好(静态类型和动态类型)。有时候在使用Python的时候,我确实觉得如果有静态类型和编译器来防止一些错误会更好;我不喜欢Java的类型模型,但Scala的类型系统还不错,它不会妨碍你,但能防止很多错误。
不过,我觉得使用Python或Java的成功与失败更多是和团队的经验和背景有关。我觉得这篇文章更适合叫“远离Java让我感到紧张”,因为作者似乎主要在说:“我有Java的经验。我不理解或没有Python的经验。所以,我更习惯写Java代码。”我认为有经验的Python开发者会学会处理他所认为的“大多数问题”;Python和Java不一样,需要不同的编程方式。
我还忍不住对这句话笑了:
Java有一个经过深思熟虑的检查异常和运行时异常的层次结构。
我想大多数人会同意,Java的异常层次结构充其量是让人困惑的,而检查异常是一个值得尝试但失败的实验,实际上并没有让代码更健壮(我想如果用得当确实可以,但有多少Java程序员能“正确”使用异常呢?)。
Python在团队中使用得很好。一个编程语言是否适合大团队,主要取决于团队成员之间的合作情况,而和语言本身关系不大。