python源码里,C的代码已经完全对象化了,封装、多态等特性已经用C实现,那为什么不直接上C++?这也能使代码可读性更强
回复内容:
参见:
Why is Python written in C and not in C++?
http://programmers.stackexchange.com/questions/20988/why-is-python-written-in-c-and-not-in-c1. CPython 1.0发布于1989年,那时候C刚刚标准化,C++还不为人知
2. C比C++有更好的移植性
3. 重写代码是一件大工程
CPython为啥用C而不是C++实现, @用心阁的回答已经很明确。
至于时至今日为啥不用C++实现Python,题主是想要Dropbox的Pyston
呗,C++实现的Python
封装、多态这两个特性根本用不到 OOP 语言。必须非用 OOP 语言不可才能比较容易实现的特性是实现继承 (implementation inheritance) 。所以我说喜爱 OO 的人先看看你的系统里实现继承多不多。实际情况是除了 UI framework 没有什么地方非要用到实现继承。
从Python的源码实现上可以认为,Python和C++是分别对C语言做了面向对象的“扩展”,而它们的“扩展”思想是不一样的,C++是极尽可能地减少性能上的损耗,而Python一切都是为了简化对象的高层视图,所以Python用C开发则不需要先经过C++对面向对象的理解,直接用更底层的材料按自己的想法构建出另外一座高楼大厦
在很多大型的C工程中,都采用或部分采用了面向对象的思想,使用C语言写一些封装和对象类似的封装,这样只是为了以面向对象的思想更好的组织整个工程.并不是说写一个面向对象的语言就要另一个面向对象的语言来实现.
还有很多语言底层是用C写的,很多网络库,网络工具等. 个人认为:
1. c语言更接近底层的操作系统,能更耦合于操作系统(你想想为什么LINUX不用C++去写)
2. C语言写使跨平台更好,同样还是观点1中的,操作系统是C写的
因为CPython太老了,而在CPython基础上使用新架构的Pyston是用C++11实现的。
python在windows下的实现都是调用API,这个用C足够。MFC的话只能用C++。
用面向对象的语言开发面向对象的语言经常迷失
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn