随笔分类 - 中文编程
摘自: https://zhuanlan.zhihu.com/p/30882225
经过三个多月的集体探讨, 初步将中文编程的几个方面罗列如下. 各个方面相辅相成, 没有高低之分. 如有遗漏还请多多指正.
1. 以中文命名. 即在代码中将业务相关的部分用中文命名. 包括类/接口名, 变/常量, 方法名, 数据库中的表/列名等等. 它的意义在于, 提升代码可读性, 降低维护成本. 风险是, 代码风格需要总结, 第三方库对Unicode支持不佳, 系统编码不一致等等. 优势是, 不需依赖任何外部工具, 在支持中文命名的语言中可以立刻实施.
2. 汉化现有库/框架的接口(API), 翻译其相关文档. 上一项虽然已经包括了使用中文命名接口, 但现有的大量库和框架仍有视情况汉化的价值. 意义在于, 接口更易于学习和使用, 同样增加业务代码可读性. 风险是, 需要谨慎选择库, 确保汉化和维护的工作量可控; 另外, 统一术语用词也是挑战. 优势是, 技术门槛较低, 易于团队分工.
3. 将现有编程语言的语法进行汉化. 包括汉化关键词, 內建函数甚至核心库等. 意义在于, 汉化后的语言对新手更友好; 反思关键词意义; 对设计新语言提供借鉴; 积累编译器实现经验等. 风险是, 维护的工作量; 关键词推敲等. 优势是, 有不少已有的尝试可以借鉴.
4. 改进现有的, 以及创立新的中文编程语言及对应的开发集成环境(这里包括改进现有的IDE对英文编程语言中使用中文代码的支持). 意义不言自明. 风险是, 需要和所有主流编程语言竞争. 优势是, 中文是我们的母语.
摘要:参考 "编写你的第一个 Django 应用,第 2 部分" 创建项目后,首先用中文命名应用: 之后在 建立模型,其他各种相关配置略去,详细请见末尾源码库: 交互环境测试API通过: 完整源码在: "program in chinese/Django_tutorial_zh" 测试环境:Python
阅读全文
摘要:前不久听说 "立创EDA" ,对比之前的讨论: "适合中文用户的编程语言和IDE, 侧重于现有语言/IDE不具备的特性 · Issue 11 · program in chinese/overview" ,觉得颇有共鸣。 库管理和共享 虽然EDA开发和传统软件开发看起来相去甚远,但一个很大的共通点是
阅读全文
摘要:前文 "中文编程:中文命名之Hibernate 4+MySQL演示" 最后留下了个Hibernate 5之后出现的问题, 于是在Hibernate社区提交了报告: "Seemingly regression since Hibernate 5: unicode support for class n
阅读全文
摘要:最近有个契机, 需要在一个给定开发环境中验证中文命名的可行性. 达成的例子源码在: "HibernateExampleZh" 当前用的是Hibernate 3.3.2.GA. 之后测试了更多版本, 彩蛋见最后一部分. 测试环境: Windows 7 Pro 64bit, JDK 1.7.0_80,
阅读全文
摘要:动态演示如下: [上传失败, 请自行搜索原文] 源码库: "program in chinese/team_website" 找到此JS工具: "christian fei/Simple Jekyll Search" , 按安装说明先完成了对题目/类别/日期的搜索, 本地运行不错. 再接再厉添加了对
阅读全文
摘要:续前文 "Java实现"命令式"简易文本编辑器原型" . 效果如下: 所在源码库同上文, 尚未和上文的编辑器右侧的命令区集成. 代码由 "How to show autocomplete as I type in JTextArea?" 修改得来. 基本功能 英文输入至少一个匹配词典的字母后, 显示
阅读全文
摘要:源自 "早先" 想法, 打算从界面方向做些尝试. 找到个简单文本编辑器的实现: "Simple Text Editor Java Tutorials" . 原本的菜单/按钮界面如下. 包括基本功能: 新建/打开/保存文件, 文本编辑与剪切/复制/粘贴. 把所有菜单/按钮替换为命令输入后效果如下, 源
阅读全文
摘要:续上文 "重拾《 两周自制脚本语言 》 Eclipse插件实现语法高亮" , 但仅达到了演示Eclipse本身功能的程度, 与石头语言并无直接联系. 源码库相同, 仍在同一插件. 演示效果如下: 悬浮窗显示的是当前所在行内容. 而键入"新"字会弹出自动补全, 选项仅有"新建"一项. 再进一步的话,
阅读全文
摘要:续前文 "重拾《 两周自制脚本语言 》 支持中文标识符" , 将当前的关键字改为中文. 基本是将语法分析器中的原本英文关键字改为中文. 如 "改while 每当 · program in chinese/stone@32c79b4" : 下面是关键字对应表: 原生函数就是Java本身核心库函数. 比
阅读全文
摘要:前文 "将《 两周自制脚本语言 》测试中使用的接口中文化" . 在将此脚本语言改为中文关键字之前, 需要先让它支持中文标识符. 首先添加一个词法分析器测试: 预期的应该不能通过测试, 结果的确不成功, 但是"卡"住了而非报错. 调试后看到问题出在这段: java int lineNo = reade
阅读全文
摘要:续前文 "为《 两周自制脚本语言 》添加中文测试代码" . 之前在 "手工翻译Vue.js源码:尝试重命名标识符与文本" 时, 采用的顺序是从主程序入口开始. 这次从自己编写的测试代码开始, 一是较为熟悉代码, 二是测试驱动开发的思路. 在过程中, 基本依托Eclipse的"重命名"功能, 尚未发现
阅读全文
摘要:续前文 "转载: 中文輸進去,程式出得來,開發者發大財 LingaScript:中文化TypeScript" , 虽然其中例程使用了繁体中文语法, 但它同时也支持简体中文语法. 注: 此文中VS Code的TypeScript环境设置为了中文, 因此错误信息也是中文. 方法见 "VS Code 有哪
阅读全文
摘要:源自 "自制编译器+自制脚本语言+自制编程语言 三书比较?" 两年多前只看了一本的前六章: "实践"两周自制脚本语言"一书【java吧】_百度贴吧" 当时是希望一路添加测试用例, 并且最终把语言改为中文语法. 但看到Gluonj之后,似乎必须要Loader.run来执行解释器, 得不到返回值, 只能
阅读全文
摘要:"中文编程"知乎专栏 "原文地址" 续前文 "扩展Python控制台实现中文反馈信息" , 实现了如下效果: 源码在: "program in chinese/study" 现在支持的报错信息列表见测试用例: "test翻译.py" 参考 "re Regular expression operati
阅读全文
摘要:"中文编程"知乎专栏 "原文地址" 参考了周蟒的实现, 运行效果如下: 完整源码在: "解释器.py" 相关源码如下, 即改写 方法. 仅为演示之用, 直接用了字符串替换.: 定制 貌似更为合适, 还需研究如何实现. 参考资料 "周蟒 zhpy"
阅读全文
摘要:这是发现的最早一篇: "CiNii 論文 母国語プログラミングへの方式,実践とその効果" pdf不能导出文本, 不会日语输入法, 因此论文其他部分意义仅靠猜. 请会日语的指正. 主要看如下几个图, 大概推测是使用了A, B两份同样语义的代码, 每份都有英日两个版本(不确定如何保证英日版本的可读性同
阅读全文
摘要:参考 "Packaging Python Projects" , 源码在 "nobodxbodon/test package for pypi" : setup.py中 与编写Visual Studio Code插件初尝试类似, name只能用英文. 生成发布包 上传到测试pypi平台 测试安装包.
阅读全文
摘要:时不时就看到"要是我面试时看到中文命名的话就xxx"的说法. 此文从不同角度简述在白板写代码这关用中文命名的好处. 欢迎补充. 大前提是, 大家母语都是中文, 而且面试过程主要用中文交流. 这该是大多数国内面试的状态. 从公司角度 了解面试者语文水平, 尤其是表达水平. 从中文命名中可以看出遣词造句
阅读全文
摘要:续前文 "\[日常\]Beyond的歌里最多是"唏嘘"吗? Python分词+词频" 最后的想法, 发现VS Code支持用户自定义代码片段: "Creating your own snippets in Visual Studio Code" 尝试如下, 片段使用中文命名, 但前缀好像不能用中文(
阅读全文
摘要:看了一个Beyond的纪录片, 提到这个. 觉得心有不甘, 于是搜集了24首歌词, 用Python做了简单分词和词频统计. 源码(包括歌词)在: "program in chinese/study" 统计了总出现次数( )和词出现在歌曲的数目( ). 前者算进了所有重复歌词, 后者是算某个词出现在了
阅读全文


浙公网安备 33010602011771号