Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如果能够做到以下这些,我相信中文编程语言一定能取得颠覆性成功 #31

Closed
RogeJohn91 opened this issue Sep 10, 2017 · 11 comments
Assignees
Labels
输入法 keyboard input method engine

Comments

@RogeJohn91
Copy link

1.键盘。应该设计一种全新的、适合快速输入汉字的键盘。
2.输入法。应该设计一种颠覆性的,既具备低学习成本又具备高输入效率(单字的输入效率也要高)的输入
法。我认为,输入法和键盘是很难完全独立,二者应该是相互影响的,输入法的设计应该影响到键盘的布
局,键盘的设计反过来又应该导致输入法的改进。
3.语言本身的设计。绝不能生搬硬套英语编程语言的设计,应该在词法、语法、特性等方面做一个系统性
的、全新的设计。该设计的好坏,将直接决定语言的成败,所以将来最关键的是要在语言的设计上下功
夫。只要设计能够赢得广大程序员的青睐,汉语编程语言的成功就只是个时间问题。
4.编译器。
5.开发工具。开发工具的重要性不能低估,好的开发工具能够极大的提升用户的体验,对于产品的推广有
非常巨大的推动作用。

@qwas982
Copy link

qwas982 commented Sep 10, 2017

兄弟,欢迎广发建议意见,同时注重实践
1,可以通过设计新的软键盘实现。
2,可能得求助输入法厂商。比如搜狗。
3,目前第一步还是汉化吧,模仿已有的,完全吃透了才能创造全新的。
4,编译器也推荐汉化已有的。
5,目前是需要一款能用的汉语编程语言+能编译汉语代码的中文编译器。之后才是慢慢发展新的软件产品,比如IDE。

@nobodxbodon
Copy link
Member

输入法和键盘是很难完全独立,二者应该是相互影响的,输入法的设计应该影响到键盘的布
局,键盘的设计反过来又应该导致输入法的改进。

同意. 这两项研究下去都很有深度. 有个有趣的现状是, 最优秀(输入速度最快)的键盘/输入法往往不是最普及的(比如中文的五笔比拼音快). 背后原因值得推敲, 可能对以后的推广也会有启发.

假设, 我们首先着手的是研发适合程序员编写代码使用的键盘/输入法, 在#11 有一些相关讨论, 包括和IDE的自动补全功能的集成问题.

另外还有关于自动切换的思路在#2 (comment):

能自动感知,帮你切换输入法
例如:
    function 你好( 检测到function后输入法自动切换成中文,然后在检测到全角的圆括号后自动切换成英文输入法并且把全角圆括号变为半角的。
    let 变量 在输入let之后切换输入法为中文

简单来说,就是在需要定义新名字(函数名,变量名,类名)的地方,自动切换成中文输入法,在使用现有名字的地方(调用现有方法或者函数),使用智能感知来提高效率。

应该在词法、语法、特性等方面做一个系统性的、全新的设计

欢迎在#11 一起探讨思路.

4/5 也很同意, 也是当时把语言和IDE在#11 一起讨论的原因

@FedoraLinux1
Copy link

FedoraLinux1 commented Sep 11, 2017 via email

@nobodxbodon
Copy link
Member

@qingseshaohua 多谢分享!

应该是让更多中国人,能够更加简单的学习编程,这个才是最为主要的目的,不知是不是这点?

刚才吃饭的时候也在想这个问题. 毕竟有编程需求的人比程序员多的多. 个人觉得这确实是一个最重要的目的之一. 另一方面, 在商业代码中进行中文编程实践(命名等等), 也是一个不能忽视的方面. 前者意义更长远影响更广泛, 后者更有短期效益意义更现实. 前者比后者的投入也要大一些, 但肯定值得.

这个知乎回答列出了不少其他母语编程语言, 不少也以让更多人都能够编程为目标. 你提到的易语言详尽接口文档的优点也总结在#11 了(提示/帮助文档贯穿整个开发过程), 其实那个列表很多也是参考易语言开发环境的.

顺便问个问题, 假想我们要创造,或者说重造一个中文编程语言和开发环境, 第一版必须具备哪些硬性功能呢? 欢迎在 #11 多提意见!

@RogeJohn91
Copy link
Author

我非常赞同qingseshaohua的看法!!!我一直都认为,我们做中文编程语言根本上是为了解决中国人自己的问题,很多人老是说外国人肯定不会用,我觉得这纯粹就是瞎操心,人家的问题人家自己不会解决吗?而且早就已经解决了。无论到什么时候,我们都没有必要去考虑外国人用中文编程语言的问题,他们做的编程语言什么时候迎合过我们的需求?我们强大了,他们自然会去学的,就像我们现在一样。解决自己的问题,走自己的路,树立自己的文化和信心,这才是我们最应该做的。

@nobodxbodon
Copy link
Member

@RogeJohn91 建议参考楼上, 在各个主题帖进行不同主题的讨论. 如果有些想法不属于任何主题, 建议新开帖讨论. 然后就可以把本贴Close了.

@4b5ent1
Copy link
Member

4b5ent1 commented Aug 9, 2018

这个思路跟我想的挺像的,我大概是2016年前后开始有类似的想法。

分享一下个人关于 中文编程/中文信息化 的思路 #62

@4b5ent1 4b5ent1 self-assigned this Aug 9, 2018
@4b5ent1 4b5ent1 added 思路 输入法 keyboard input method engine labels Aug 9, 2018
@ghost
Copy link

ghost commented Aug 9, 2018

咱觉得开发工具和编译器实现更重要一点,

首先 现在的输入法一般可以设置 中文时使用英文标点

然后 idea里中文也能补全 只是不能个根据拼音(五笔)补全
我觉得这个不是问题 因为打一个字也能出来补全 为什么要切到英文呢
我的变量和方法参数会加上_前缀 写_ idea也会跳出补全

而且我觉得输入法直接打个字 相对于直接拼音补全的 也不是很重要
而且现在主流输入法相比 重新做一个肯定是有很大优势的

而新输入法的优势比如要实现类名/方法名在输入法就补全
肯定要和ide交互 实现也不简单
而且 一个词多了输入法会记下来,也能相对起到全的作用

关于输入最快的的不一定是最普及的,
现在最普及的中文输入法 应该是都支持五笔打字的,只是有学习成本,用户不想用而已

@hxse
Copy link

hxse commented Dec 9, 2018

关于输入法我曾有过深入的了解
有一种既能快速输入又比五笔简单易学的方案, 叫做双拼方案, 简单说就是每个字都只打两个按键, 然后进行选重就行了
从选重来看 ,以前的时候是用形码选重 ,缺点是难学 ,后来有一种全新易学的选重方法 ,叫做顶功, 就是用笔画来选重
在这里, 我可以推荐一个输入法方案 ,叫做星空一笔 ,这个方案包含了双拼和顶功两种特性 ,实现了易学且效率高 ,而且不易忘记
而且比起五笔来, 还有一种方案叫做二笔 ,更加易学 ,星空系列输入法里有一个星空二笔方案 ,就是把二笔和顶功结合起来了
还有一个小技巧是我自创的 ,我在用输入法时觉得数字键太过难按 ,干脆把空格加asdfghjkl:变成了1234567890 ,比如 ,空格单击时输出空格 ,空格并击a 输出1 ,空格并击s输出2
想实现这个 ,用ahk几行代码就能搞定

@nobodxbodon
Copy link
Member

@hxse 好像没有看出与编程的关联(如 @MikaGuraNTK 在楼上就与IDE等相关).
中文输入法的课题本身很大.

@hxse
Copy link

hxse commented Dec 9, 2018

@nobodxbodon
有关联, 因为有人说中文打字效率低, 以及需要频繁选重浪费时间
当然如果不在乎打字效率和选重的话, 那确实没什么关联了
越是需要大量输入的职业 ,越在乎打字效率 ,比如写网络小说的
因为要经常进行命名 ,而很多命名都是自创的不常用词汇 ,如果用智能拼音的话 ,往往需要大量的翻页来选重单字 ,这是个很考验耐心的事情 ,这时候能够快速选重的方案就很有价值了

@nobodxbodon nobodxbodon mentioned this issue Jan 28, 2019
61 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
输入法 keyboard input method engine
Projects
None yet
Development

No branches or pull requests

6 participants