去年年初学习徐碼时看到槽点满满的官网,忍不住留下这些吐槽,借如何制作一款字形输入法完稿之际放出。
首先,本文虽是对徐国银先生(下称徐老师或老徐)所著徐码文档的吐槽,不代表徐码一无是处,更不代表徐老师本人一无是处。
由于徐老师已停止维护,我目前不推荐任何人学习徐码。如果您对简繁通打和大字集有迫切的需求,可以考虑下徐码老用户、同時也是我领路人的朱宇浩推出的宇浩输入法。
以下引用为徐老师原文,非引用为吐嘈。
GB2312里,重码是160多对(其实到2023年初已经优化了,已不到160对),而五笔是250对,在其他字集(GBK GB18030 超大字集)等等,重码都是最低的。经过统计,徐码在unicode全集,八万多汉字范围内,重码超过10个的,极少。这意味着,即使在超大字集范围内打字,你几乎不可能打字时,不定去翻页找你想要的汉字。
此处数据为真,86 五笔、98 五笔、新世纪五笔的重码总数都在 500 个(即 250 对)以上,徐码的重码总数是 318 个。
目前 Unicode 全集已扩充到十万以上,我们仍取徐码官方码表的 CJK-G 区字集,其重码超过十个的有 31 组,是不是极少就见仁见智了。
另可见关于重码,这是官网唯一值得看的页面。
徐码拆分规则明确,编码规则简单。没有无理编,简全编码一致,字词编码一致。
由于徐老师在新徐(2020以后的徐码)中引入的变形字根规则,有些字的拆分仍有疑问,如「昜」不拆「日丆刀丿」拆「日一勹𰀪」。
编码规则因为取倒二根的存在,实际难度在众形码(仓颉除外)里仅次于五笔结构码,朱宇浩甚至认为其难度还在结构码之上。
一简字26个,一简词26个;二简字26✕26=676,二简词 26✕26=676;几乎没有其他输入法做到简码空间100%
其实只要你不限制出简的字频,现在的大字集输入法一般都能出满,一二简字词的表格在官网可查,我就说几个槽点:一简里「以」「发」「同」「国」的字频并不是同首码的字里最高, 一简词里「在下」「和尚」也不是同首码的词里最高的,二简字词就更别提了。
徐码在设计之初,是有对明体字形编码的,目前没有专门推出明体字形编码的版本。主要原因在于:
a. 没有精力维护两个版本
b. 明体版,需求不大,港台用户也太少
搞不懂徐老师,既然现在不支持港台字形,删去这个优点不就好了,非要保留再加个注释。
- 取少优先 取少的内隐含基本 要求是:
a. 能不变形最好,除非能减少字根(变形,以字根表里给的变形为准)
b. 能不断字根最好,除非能减少字根
c. 能按笔顺来的最好,除非能减少字根(如果减少了字根,但是不能按笔顺来,则不行!如:敝=水冂攵 X)- 如果有重,那就能散不连,能连不交,如果有重,有合笔顺的,那就是合笔顺的
- 还是有重,那就前面的字根取大,如果有重,有合笔顺的,那就是合笔顺的
这些话我懁疑是徐老师直接把拆分程序的 if 语句直接搬过来改了改,不然很难想象他是怎么写出这段话的。尤其是 1.c 本身就是自相矛盾的一句话,想搞明白请看朱宇浩的解释。
这张图本身没什么槽点,但其所在的页面标題是《拆分练习》。
根据网上的查找的相关信息,似乎“五笔输入法”发明人,是跟郑码发明人请教过一段时间后,五笔发明人在郑老的指点或指导下,推出了五笔输入法,而郑老认为五笔有不少不足,后来自己又推出了郑码输入法。
输入法圈坊间传闻,史料不可考。
目前来说,徐码的改进,只是让拆分更容易和编码统一,字根表的布局变化非常小,对于用户来说,变化小,没有类似86五笔与98五笔那么样的区别。
如果真的小,就不会分成新徐和旧徐两个群了。
徐码制作的基本过程是:
- 编写汉字自动拆分程序
- 编写字根组合后,重码统计程序
- 编写自动编码程序
- 根据了解的其他形码输入法的经验,提取有价值的灵感,使用 1-3 里的程序,去验证,以期在复杂度与重码率上达到可接受水平
- 规划字根表(目的是让字根表更容易记忆),然后不停去尝试去移动字根,或增加或删除字根,反复经过1-3的程序来处理,最后选择一个满意的方案
非吐槽,感叹下非乱序的最后荣光,现在规划字根表这件事已经都交给退火算法了。
徐码输入法完全免费,码表完全公开,
但徐码的拆分表不公开,对用户来说,没有官方拆分的麻烦还是挺大的。
父亲最后的关怀,最后还是可以做到的,不过,最想的要的可能还是你想的其他方案吧?
徐老师身为徐码之父最后的关怀。这句话是对朱宇浩说的,22 年朱宇浩提了很多改手感的建议都没有被釆纳。
拆分规则上有一个“直观原则”,导致什么是直观很难量化,拆分心累。
我想多说两句,形码输入法的用户,真的没有必要搞得那么仔细,你只要知道个大概,然后跟着自己的感觉去拆分,就可以了。拆不出时,可以反查,可再看看拆分规则。大字集里的汉字,正常情况下,你试几下,就打想打的字打出来了。(这一点,远比五笔强得多,五笔打大字集汉字时,你总是拆分不出来。这也是我设计徐码的原因。)
前者为徐老师官网文档對五笔缺点的批评,后者为徐码更新日志里徐老师对新徐规则大改的解释。
只能说徐老师让用户「跟着感觉拆分」,何尝不是一种「直观」的说辞。为什么直观原则让人讨厌?因为那是王老先生的直观,不是所有用户的直观;正如徐老师的感觉,不是所有用户的感觉。 不知道徐老师是在写这段更新日志的時候,有没有想起 10 年前在网吧上网的自己——对镜观秋容,已是镜中人。
拆分规则万万不可沾上作者的主观感受,若有立志开发新形码的人能读到此处,也不枉我写这一篇吐槽。