这可能是一种语言巨魔或未能进行基本Google搜索的风险;请放心,这不是前者,希望不是后者。无论如何,作为一个大公司Java开发人员(SE和EE),我觉得我的技能有点陈旧,而且我知道多年来一直有一些令人兴奋的Python所以它一直在我的东西列表上看成。我已经阅读了O'Reilly的学习Python的前几章,可以将一些代码组合在一起,而且,很好,我正在学习语法。
但到目前为止我所缺少的是为什么
有许多关于Python的很酷的东西列表,以及为什么要学习它,例如
http://en.wikiversity.org/wiki/Why_learn_Python
或者在这里有一些很好的讨论,例如
https://stackoverflow.com/questions/203862/why-should-i-learn-python
和
https://stackoverflow.com/questions/371966/are-there-any-good-reasons-why-i-should-not-use-python
只挑选一对,但到目前为止我还没有找到一个非常适合它的人。我正在寻找那个灯泡“啊,我看”的时刻,在Java中有些棘手的东西可以通过几行Python来解决,但我还没有完成。例如,从那些链接
一切都不仅可以完成,而且可以快速完成。例如,一个用C ++花费数周时间的程序可能需要花一天时间在Python中。
大!但是什么?
因为它具有高度的表现力,即你将获得更高的生产力
很酷,我喜欢更高的生产力。但这究竟意味着什么?
如果你拥有的唯一工具是锤子,那么每个问题看起来都像钉子一样
听起来像我,我很清楚我用Big Java Hammer击中了所有东西。但究竟是什么类型的问题适合Python扳手而不是Java Hammer?
还有更多的免费/可移植/大量库/强大的等等理由,但所有这些都可以说适用于Java。你可能会非常合理地回应,这一切都取决于我想做什么;我真的在工具箱中寻找可能用于常规开发活动的另一个工具,从编码,测试(从单元到集成),到生产中的日志/跟踪解析和故障排除。并且,最终,如果它在那里我可能会使用它 - 而且,哎呀,那里有很多需要Python的工作。但要坚持学习曲线,我真的需要为什么。
答案 0 :(得分:7)
老实说,如果你没有看到学习新语言的理由,那就不要。如果你需要它,并且你是一个称职的程序员,你可以在几天内拿起它并且精通一个月。学习一门新语言而不打算在不久的将来使用它就像学习如何进行剑术:作为一种爱好很好,但不要假装你是为了工作而做的。
答案 1 :(得分:4)
Great! But what?
- 例如与字符串处理有关的任何内容(如网页抓取/抓取,自然语言处理)对于Python中的代码应该更快
Cool, I like higher productivity. But what does that really mean?
- 花更多时间思考你想要做什么,而不是考虑如何实现并实际做到这一点
Sounds like me, i'm well aware i'm hitting everything with my Big Java Hammer. But what exactly is the kind of problem that suits a Python wrench rather than a Java Hammer?
- 如上所述,加上快速原型,一次性脚本,数学(Python有一些很棒的数学库),网页开发(Django)
前段时间我更加个人化,我认为Java是方便/快速/清晰编码的顶峰,但直到我学习Ruby和最近的C#。