php多平台商城网站系统建设,企业查询系统官网天眼查网页版,闲鱼搭建网站,网站数据库开发你要求链接或其他来源#xff0c;但实际上没有。这些信息散布在许多不同的地方。什么才是真正构成设计错误的因素#xff1f;您是只考虑语言定义中的语法和语义问题#xff0c;还是包括诸如平台和标准库问题以及特定实现问题等实用问题#xff1f;您可以说#xff0c;从性…你要求链接或其他来源但实际上没有。这些信息散布在许多不同的地方。什么才是真正构成设计错误的因素您是只考虑语言定义中的语法和语义问题还是包括诸如平台和标准库问题以及特定实现问题等实用问题您可以说从性能的角度来看Python的动态性是一个设计错误因为它很难实现一个简单高效的实现而且很难(我没有说完全不可能)生成一个包含代码完成、重构和其他好东西的IDE。同时你也可以为动态语言的优点辩护。也许开始考虑这个问题的一种方法是看the language changes from Python 2.x to 3.x。当然有些人会争辩说print作为一个函数是不方便的而另一些人则认为这是一个改进。总的来说并没有那么多的变化而且大多数变化都是非常小和微妙的。例如map()和filter()返回迭代器而不是列表range()的行为类似于xrange()过去而dict方法类似于dict.keys()返回视图而不是列表。还有一些与整数相关的变化其中一个大的变化是二进制/字符串数据处理。现在是文本和数据文本总是Unicode。有几个语法变化但它们更多的是关于一致性而不是修改整个语言。从这个角度来看至少从2.x开始Python就在语言(语法和语义)级别上设计得非常好。你可以一直争论基于缩进的块语法但我们都知道这不会导致任何结果。。。-)另一种方法是查看其他Python实现试图解决的问题。它们中的大多数以某种方式解决性能问题一些解决平台问题还有一些添加或更改语言本身以更有效地解决某些类型的任务。Unladen swallow希望通过优化运行时字节编译和执行阶段显著提高Python的速度。Stackless通过添加诸如微线程和微线程的结构、允许双向微线程通信的通道、协作或抢先运行微线程的调度以及暂停和恢复微线程执行的串行化为高效、重线程应用程序添加功能。Jython允许在Java平台上使用Python在.Net平台上使用IronPython。Cython是一种Python方言它允许调用C函数和声明C类型允许编译器从Cython代码生成有效的C代码。{a7}将隐式静态类型引入到Python中并为独立程序或扩展模块生成C。PyPy在Python的一个子集中实现Python并更改一些实现细节例如添加垃圾收集而不是引用计数。其目的是让Python语言和实现开发由于使用了更高级的语言而变得更加高效。Py V8通过V8 JavaScript引擎连接Python和JavaScript——可以说它解决了一个平台问题。Psyco是一种特殊的JIT它动态地为当前正在处理的数据生成运行代码的特殊版本这可以提高Python代码的速度而无需编写优化的C模块。其中可以通过查看PEP-3146来说明Python的当前状态它概述了Unladen Swallow如何合并到CPython中。这个PEP被接受了因此Python开发人员可以判断目前最可行的方向是什么。注意它关注的是性能而不是语言本身。所以我真的想说Python的主要设计问题是性能领域的问题但这些基本上都是任何动态语言都必须面对的挑战Python语言家族和实现正在尝试o解决问题。至于像Javascript: the good parts中所列的那种彻底的设计错误我认为需要更明确地定义“错误”的含义但您可能需要查看以下的想法和意见