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++。
用面向对象的语言开发面向对象的语言经常迷失
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn