我花了几天时间阅读有关C++和Python的内容,我发现Python更简单易学.
所以我想知道真的值得花时间学习它吗?或者我应该花时间学习C++?
C++可以做什么而Python不能做什么?
一些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可以获得的非常方便的重构工具.
- 出于同样的原因,您不能依赖类型检查作为安全网.这就是为什么pythonistas倾向于遵循最佳实践并且比其他人更频繁地编写单元测试.
- 似乎我找不到具有良好代码完成的IDE.PyDev,Gedit,Komodo,SPE等等都没有做到尽善尽美.
使用Python 3类型的提示和工具,如PyCharm或Sublime Text + Anaconda,情况发生了很大变化.
- 最好的文档仍然只有英文版.有些人处理得不好.
- 你必须习惯语法.不仅你得到空格和换行而不是支撑,但你可以忘记长lambdas, - i和三元操作.
现在,对我而言,这些并不是不学习工具的理由,这种工具可以让你在享受更多乐趣的同时生产更多产品.但也许只是我:-)
老实说,鉴于:
C++更难学;
你可以用Python做任何你想做的事情;
在项目中使用Python可以获得更快的结果.
除非你有涉及C++的专业问题,否则你最好先学习Python,它更有动力.您以后仍然可以学习C++,它是系统编程,嵌入式设备等的有用语言.
不要试图同时学习两者,多任务很少结束.
这就是为什么值得学习Python的原因:
相对较少数量的问题受到算法速度的限制.相对大量的问题受到开发者速度的限制.
你为什么不问相反的问题?与C++不同,Python可以通过命令为您提供反重力和召唤灵魂import
.另一方面,C++的'等价' #include
- 只允许你得到一些无聊的I/O和数学库.
但是说真的.C++允许你做更多低级的东西,比如内核编程,并允许你编写运行速度更快的程序(大约 20x).您可以使用它来创建可以利用多核处理器的真实线程,而Python(由于其设计)通常只能在单个核心上运行其模拟线程.
恕我直言,你应该学习两个; 用于Web开发和快速和脏脚本的Python,用于编写系统代码,桌面应用程序的C++,以及对计算机有更好的低级理解.如果你刚刚开始,那么Python; 开始时要容易得多.
可以在此处找到关于速度差的更具体的测量.
编辑:好像我的多线程信息已经过时了; 请参阅John Paulett的评论.