中文编程
首发于中文编程

中文编程兴起的可能途径

前文中文编程兴起的必然性虽然阐述了长远的必然性, 但很自然地会有以下疑问:

  1. 为何至今没有看到国内大公司的任何从事中文编程的实践?
  2. 如何以较小代价实践中文编程以及创造推广中文编程语言/工具?

此文从个人视野尝试解读和设想.

刚刚意识到问题1的主观原因(客观原因请见中文命名实践的阻力和应对, 创建新中文编程语言也有类似问题, 而且成本和风险更大).

一言蔽之, 他们最有能力实践, 但恐怕也最没有动力. 其实这和熟悉英文编程语言的程序员不少缺乏动力参与中文编程是一个道理, 只是一个是宏观, 一个是微观.

国内大公司往往通过市场地位进一步占据了人力优势, 可以招纳到足够英文编程水平的开发者. 而这也是进一步巩固技术优势和领先地位的一个方面. 中文编程对他们带来的对项目本身的益处相对较小(因为人力财力足够). 而相应的另一个极端--初创公司(大多是单人或双人项目)其实是最能从代码可读性获益的(运维成本的升降往往意味着企业成败的区别), 从而也会是从中文编程获益最大的.

因此, 从保证短期商业利益的角度看, 大公司创造中文编程语言/工具/框架的可能性非常小. 当然也不排除某家大公司敢于通过在中文编程上领头创新的方式获取社会效益的可能性. 即便如此, 终究是求人不如求己.

下面一部分来源于讨论组话题: 如何面向中文编程(潜在)用户进行推广? · Issue #41 · program-in-chinese/overview). 无论语言/工具是开源还是闭源(免费/商业), 在推广和实践上应该有类似之处. 欢迎指正补充.

潜在首批用户

  • 编程初学者
  • 乐于尝试的编程爱好者
  • 想用中文编程工具开发业余/初创项目, 并且首先关注国内市场的

开发方式

  • 在开发中文编程语言/框架/API时, 尽量在技术允许的情况下(需要分享和积累, 详见中文命名实践的阻力和应对)在代码中使用中文命名. 这样对项目本身可以降低成本(详见对在代码中使用中文命名的质疑与回应 "没有好处"一节), 同时也进一步增加中文命名的技术积累
  • 基于英文编程语言的发展史, 个人认为开源方式能够最大程度促进技术分享和进步, 中文编程方面暂时以商业软件为主, 但开源项目应该能够更加活跃, 反过来也可以促进商业软件的进步.

推广

  • 对初学者来说, 中文代码的入门教程(以英文编程语言中使用中文命名为例, 比如中文代码示例教程之Java编程一天入门), 以及对应的很容易安装使用甚至免安装的编程环境.
  • 对于爱好者, 也许是更加贴近实际问题的一些教程和相关工具, 比如如何用汉化版TypeScript(program-in-chinese/CTS)和相关库创建一个简单的网络服务和前端.
  • 对于目标是团队开发商用软件的用户, 则需要成熟的工具/文档, 以及及时的社区技术支持.
  • 在社区成熟和有足够的共同开发者之前可能主要靠核心开发者. 首先单个项目建立社区, 类似于TypeScript.org, JUnit.org等等. 项目积累之后, 建立一个更广泛的中文编程相关生态圈, 类似Apache

商业化

  • 现在看到的一些开源项目的商业化方式, 以提供免费的社区版和收费的商用版进行. 社区版搜集反馈和bug, 商用版以稳定或功能或技术支持为卖点. 比如Odoo等等.

正如汉化了十数个编译器的前辈的心得体会的最后所言, 任重而道远. 个人相信前途光明.

文章被以下专栏收录

    在所有编程语言和领域中尝试编写中文代码,开发相关工具,总结经验,一致代码风格。包括中文命名,汉化现有语言,创造中文语法的编程语言等等。作为最熟悉的母语,用来编写代码会让代码更容易被自己和母语相同的其他开发者理解。基于英文的编程语言和框架中,使用中文命名有时有技术问题。希望这里为后人趟雷,填坑。多数现有API是英文的,这里也会对其中一些常用的进行汉化。当然,这里也会对基于中文的编程语言进行探讨。包括汉化基于英文的编程语言,以及创造新的编程语言。