Python 的一些限制:
- Python 很慢。它可以通过多种方式进行改进(请参阅其他答案),但基本的 cPython 比 C/C++ 慢 100 倍。
这个问题越来越得到缓解。对于 Numpy、Pypy 和 asyncio,大多数性能问题都没有得到解决,只有非常特定的用例才成为 Python 的瓶颈。
- Python 对任何事物都是开放的。保护/混淆/限制Python代码确实很难。
- Python 不是炒作。与 Ruby 不同,Python 周围没有“酷潮”,而且找到经验丰富的 Python 编码员比 Java 或 PHP 专业人士要难得多。
- 使用Python后,很多语言似乎用起来很痛苦。你可能会认为这很好,但相信我,并非总是如此。当你在完成一个 Python 项目之后必须转向 Javascript 时,你的眼睛至少会流泪 3 天。真的很难开始。
- 寻找网络托管比流行的解决方案更难,例如PHP。
- 作为一种动态语言,你没有非常方便的重构工具您可以使用 Java 和 Eclipse 或 C# 和 VS。
- 出于同样的原因,您不能依赖类型检查作为安全网。这就是为什么 pythonista 倾向于遵循最佳实践并比其他人更频繁地编写单元测试。
- 看来我只是找不到一个具有像样的代码完成功能的 IDE。 PyDev、Gedit、Komodo、SPE 等只是没有做得尽可能好。
有了 Python 3 类型提示和 PyCharm 或 Sublime Text+Anaconda 等工具,情况发生了很大变化。
- 最好的文档仍然只有英文版本。有些人处理不好。
- 你必须习惯语法。您不仅可以得到空格和换行符而不是大括号,而且您可以忘记长 lambda、--i 和三元运算。
现在,对我来说,这些都不是不学习一种能让你在获得更多乐趣的同时产出更多成果的工具的理由。但也许只是我:-)
老实说,鉴于:
- C++ 更难学;
- 使用 Python,你几乎可以做任何你想做的事情;
- 在项目中使用 Python,您将获得更快的结果。
除非你有涉及C++的专业问题,否则你最好先学Python,这样更有动力。你以后仍然可以学习C++,它是一种对于系统编程、嵌入式设备等有用的语言。
不要试图同时学习两者,同时处理多项任务很少有好的结果。