一位Java程序员问:我为什么要学Python?

7 投票
2 回答
2093 浏览
提问于 2025-04-16 22:20

这段话的作者有点担心,可能会被认为是在故意挑衅或者没做过基本的搜索,但他保证不是这样。他是一名在大公司工作的Java开发者(包括标准版和企业版),感觉自己的技能有点生疏。他知道很多人对Python很感兴趣,所以想了解一下。他读了O'Reilly的《学习Python》的前几章,能写一些代码,语法也掌握了。

不过,他现在缺少的是对Python的为什么的理解。

网上有很多关于Python的优点和学习理由的列表,比如:

http://en.wikiversity.org/wiki/Why_learn_Python

或者在StackOverflow上也有很好的讨论,比如:

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中只需要一天。

这听起来不错!但是是什么呢?

因为Python非常简洁明了,也就是说,你的工作效率会更高。

这很好,我喜欢高效率。但这到底意味着什么呢?

如果你只有一把锤子,所有的问题看起来都像钉子。

这听起来像我,我知道自己在用“Java锤子”解决所有问题。但到底什么样的问题更适合用Python来处理,而不是用Java呢?

还有很多关于Python的优点,比如免费、可移植、库多、功能强大等等,但这些理由在Java上也能找到。你可能会合理地说,这一切都取决于我想做什么;我其实是在寻找一个可以用来进行常规开发活动的工具,比如编码、测试(从单元测试到集成测试),再到日志解析和生产环境中的故障排查。最终,如果有这个工具,我可能会用它——而且,确实有很多工作需要Python。但为了坚持学习,我真的需要那个为什么

2 个回答

7

老实说,如果你看不出学习一门新语言的理由,那就别学。如果将来真的需要用到,而且你已经是个有能力的程序员,几天就能学会,一个月就能熟练掌握。没打算在不久的将来用到的新语言,就像学剑术一样:当做爱好可以,但别假装这是为了工作。

4

太好了!但是呢? - 比如说,处理字符串的事情(像网页抓取、自然语言处理)在Python中写起来特别快。

酷,我喜欢更高的工作效率。但这到底意味着什么呢? - 你可以花更多时间思考你想做什么,而不是纠结于怎么实现和实际去做。

听起来像我,我知道我用我的大Java锤子在敲打一切。但是,什么样的问题更适合用Python这个工具,而不是Java锤子呢? - 就像之前说的,还有快速原型开发、一次性脚本、数学运算(Python有一些很棒的数学库)、网页开发(比如Django)。

从个人的角度来说,之前我一直认为Java是方便、快速、干净编码的巅峰,直到我学会了Ruby,最近又接触了C#。

撰写回答