使用不同字体区分变量名和表达式

2020-05-28 07:30:02 +08:00
 megakusa

听了内核恐慌和字谈字畅合作的最新一期节目:《字谈字串(九)名名之中》,谈到为了防止变量名和表达式相混淆,操作系统在用户为文件名命名时要制定限制,比如不能用斜杠、反斜杠等字符做文件名。

而用户在制定函数名时也需要使用诸如驼峰命名或下划线等方式来避免出现空格。那么我在思考能否发明一种编程语言,其表达式与变量名采用不同的字体。使用一个快捷键来切换两种输入模式,比如当需要打变量名的时候,切换为斜体字体,其余则为普通字体。

如此一来我们就可以使用自然语言来命名函数名,用户在重命名文件名的时候也不再需要有那些符号限制。对于代码可读性和操作系统的人性化很有帮助。

P.S. 我不是学技术的,只是提出一个不成熟的脑洞,别喷我……

2903 次点击
所在节点    奇思妙想
15 条回复
jugelizi
2020-05-28 07:40:47 +08:00
不是程序员你瞎操心
cissoid
2020-05-28 07:44:28 +08:00
字符编码和字体样式是两码事
megakusa
2020-05-28 07:46:26 +08:00
@cissoid Unicode 里有现成可用的数学斜体字符
yidinghe
2020-05-28 07:54:05 +08:00
语言本身只能包含语法,不能包含字体。在语法足够清晰的前提下,IDE 可以为不同的语法元素配置不同的字体。几乎所有的 IDE 都已经支持这么做了。
yidinghe
2020-05-28 07:57:11 +08:00
https://gitee.com/yidinghe/codes/7jgxdcr8v4smew2b1ft6i92/raw?blob_name=%E6%97%A0%E6%A0%87%E9%A2%98.png

以这张图为例,类型、方法和变量用三种不同的颜色区分开,可以很大的提升阅读效率。
XanderChen
2020-05-28 07:59:01 +08:00
你说的那叫富文本,已经出现很久了。

而且常规字体和斜体字混排对代码可读性一丁点的帮助都没有。

至于操作系统对文件名仅有的几个符号的限制…我觉得不值一提…

驼峰命名或者是连字符分割恰恰是为了提高代码可读性,而不是避免代码中出现空格,因为不是避免出现空格,而是编译器规定了不能出现空格。

你要是想在代码里加空格,不如想想怎么写个编译器,但是我觉得…这么麻烦的事…没人会做…
megakusa
2020-05-28 08:01:37 +08:00
@yidinghe 我知道语法高亮,那是 IDE 的事情。但是代码本身还是相同的英文字母,所以空格 /特殊符号不能有,否则会和表达式相混淆。但既然 Swift 都支持用 Emoji 命名了,能不能直接在底层就弄两种字体来解决我上面描述的问题?
churchmice
2020-05-28 08:05:54 +08:00
这个想法妙啊

不同字体底层对应的是同一个 unicode,只是渲染上面不同
megakusa
2020-05-28 08:09:51 +08:00
@XanderChen ok,我了解... 其实就是觉得既然 Apple 一直在追求那种人性化的改进,也把不允许出现在文件名中的限制努力减少,但还是不允许出现某些特定字符。感觉我这个似乎能彻底解决这问题
leoleoasd
2020-05-28 08:10:03 +08:00
@megakusa #7 支持 emoji 命名的语言本身就支持用 unicode 数学符号命名, 缺点是可能 ide 不能正确渲染.
megakusa
2020-05-28 08:14:52 +08:00
@churchmice 感觉这想法得专门往 unicode 里加一块专门显示代码的字符
vk42
2020-05-28 08:27:14 +08:00
这明显是伪痛点。你是想要搞一套单独的字符编码把英文字母重新定义一遍然后靠字体不同来区分?来你给我说说“0O1Il”这些字符分别是啥?嫌不够乱么还?
yidinghe
2020-05-28 08:33:05 +08:00
我就不该回这个贴🙈
daniaoren
2020-05-28 09:52:07 +08:00
@yidinghe 心疼一波,回复得太认真了
DoodleSit
2020-06-05 14:17:11 +08:00
字体不就是图片咯

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/676173

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX