抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

关于 IronPython、Unicode 及分裂的讨论

2007 年 6 月 19 日

和规范的实现有所不同,IronPython 使用 Unicode 而不是 ASCII 字节流来实现 str 类。而有些人说这是一个严重的分裂问题,其他人说这也没有什么大不了的。

这个问题的根源是 str 类是否必须使用 ASCII 来实现。虽然 ASCII 在支持非英语语言时存在严重的局限性,但可以通过使用代码页(Code Page)来解决。ASCII 字符串也能被用于表示二进制数据从而当作字节流。

在非规范实现中,如 IronPython 和 JPython,str 类使用平台特定的 String 类来实现。在这样的情况下,就意味着使用 Unicode 字符串。虽然这不会影响大部分应用程序,但还是有一些在使用 str 处理非英语代码页或作为字节数组的情况下不能正常工作。

Calvin Spealman 提出这是一个严重的问题

IronPython 以这样的语法削短了这个语言本身的功能。问题是,一个对于 Python 和 IronPython 都是爱好者的人,就会遇到这样的情况。在 Python 的地盘上,我们将看到大量从 IronPython(也即通过 Silverlight)世界涌进来的对此感兴趣的人,但是所有这些新的开发人员都在创建不兼容的代码。在另一方面,IronPython 的拥护者还傻想着提升 Python 语言,但却完全忘记了大量现存的伟大函数库、多年建设起来的社区、和不仅仅只是一个流行词汇的协作等。

来自社区的回应并非全是否定的。Michael Foord 答复道:

为了说清楚这个问题,我来举个例子,在 Resolver(我们的一个很大的 IronPython 应用程序)中,用到了大量的 Python 标准函数库以及第三方的一些 Python 函数库——它工作的很好啊。

Manuel 也为这样的讨论辩护道:

首先,Python、CPython、IronPython、Jython、PyPy 都是在改变的个体。作为改变的个体,我们只能合理地对他们的发展轨迹提出意见。我没有看到任何迹象说 IronPython 会和 Python 社区产生分歧。已经有很多工作在致力于让 Python 函数库运行于 IronPython,如 FePy 社区和微软认可的社区都在做这样的事情。

Even Guido van Rossum,Python 的创造者,也加入到讨论中:

你应该认识到 Jython 已经很明确地存在 str==unicode 的问题,对吧?我从一开始就赞成对于两个版本的这种处理方式。所以我不知道你一心想扭曲的是什么?

暂时来看,Python 社区似乎愿意接受一些不兼容来换取多个平台的支持。

查看英文原文: The IronPython, Unicode, and Fragmentation Debate

2007 年 6 月 19 日 03:52532
用户头像

发布了 254 篇内容, 共 40.8 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

几百行代码写个Mybatis,原理搞的透透的!

小傅哥

Java spring 源码 mybatis 代理

Java开发究竟该如何学习,一文轻松搞定

Geek_f90455

Java 程序员 后端

Java开发者必须收藏的8个开源库,吊打面试官系列!

Geek_f90455

Java 程序员 后端

Java多线程从基础到并发模型统统帮你搞定!面试总结

Geek_f90455

Java 程序员 后端

MySQL触发器介绍

Simon

MySQL

硬核万字长文,深入理解 Java 字节码指令(建议收藏)

沉默王二

Java 8

【Vue2.x 源码学习】第二十三篇 - 依赖收集 - 视图更新部分

Brave

源码 vue2 8 月日更

FastApi-01-初识

Python测试和开发

FastApi 8月日更

十大排序算法--选择排序

阿粤Ayue

排序算法 8 月日更

Java开发者值得深入思考的几个问题,建议收藏

Geek_f90455

Java 程序员 后端

MediaMuxer实用封装

Changing Lin

8月日更

Java开发热门前沿知识,架构师必备技能

Geek_f90455

Java 程序员 后端

【Jackson技术专题】全方位系统化学习和使用指南

李浩宇/Alex

Jackson JSON库 JSON序列化 8月日更 8 月日更

中高级Java大厂高频面试题,已开源下载

JVM调优资料

Java 程序员 后端

波宝TronLink钱包APP系统开发介绍

橙子区块链l53o56oloo3

钱包系统开发 DAPP智能合约交易系统开发 波宝钱包

Java工程师跳槽经验分享,看完跪了

Geek_f90455

Java 程序员 后端

FILECOIN矿池挖矿APP系统开发案例

获客I3O6O643Z97

挖矿矿池系统开发案例 fil挖矿

如何使用 DDD 指导微服务拆分?

架构精进之路

微服务 DDD 8月日更

用5W1H告诉你如何规划合理的测试策略

华为云开发者社区

敏捷 敏捷开发 测试 测试策略 缺陷

Java大厂74道高级面试合集,附面试题

Geek_f90455

Java 程序员 后端

Java开发岗还不会这些问题,一文轻松搞定

Geek_f90455

Java 程序员 后端

Hudi自带工具DeltaStreamer的实时入湖最佳实践

华为云开发者社区

大数据 Hudi

手撸二叉树之最小高度树

HelloWorld杰少

数据结构与算法 8 月日更

synchronized 加锁 this 和 class 的区别!

王磊

Java 并发 8 月日更

Ubuntu 与 Mac 共享文件

TroyLiu

ubuntu 效率 Mac 文件传输 共享文件

是谁,在暗中观察

skow

Java 后端 Java设计模式 JAVA;、 8月日更

三面拼多多,一篇文章帮你解答

JVM调优资料

Java 程序员 后端

☕️【系统设计】如何设计出优雅且实用的API接口

码农架构

架构设计 架构设计实战 JAVA;、

Java多线程实现方式及并发与同步,写的太详细了

Geek_f90455

Java 程序员 后端

极光开发者周刊【No.0730】

极光开发者

Redis挂了,流量把数据库也打挂了,怎么办?

why技术

Java 面试

Study Go: From Zero to Hero

Study Go: From Zero to Hero

关于IronPython、Unicode及分裂的讨论-InfoQ