请问一个新设计的程序语言,是选择 camelCase 好,还是先择 snake_case 好?

293 天前
 xieyuheng
大家可能要笑了,这也算问题?

但是其实我是很严肃地在考虑这个问题的。
因为尽管在写代码的时候,用户可以做出选择,
但在语言的文档和标准库中,还是要选择一种命名规范的。
而做这种选择对我来说是很艰难的。

我说的 “新设计的程序语言” 具体是这个: https://github.com/cicada-lang/inet

我刚刚用一个 commit 把 snake_case 改成了 camelCase:

https://github.com/cicada-lang/inet/commit/7625a8ad5f87da1ab9c4fd231fc8142ca8900d79

但是我不确定这样做是 “正确的”。

我能想到的,选择 camelCase 的理由:

( 1 )语言已经选择使用 BigCamelCase 作为类型的命名规则了,比如 `DiffList`,
此时如何想要一个变量,直接在这个类型名字前面加上变量的前缀就好了,比如 `emptyDiffList`,
如果用 snake_case ,就需要编辑类型名,而写成 `empty_diff_list`。

( 2 )这个语言目前是用 JavaScript/TypeScript 实现的,而 JavaScript 用的是 camelCase 。
并且未来想要用 Zig 再实现一遍,而 Zig 用的也是 camelCase 。

我能想到的,选择 snake_case 的理由:

( 1 ) snake_case 我个人认为,确实好读一些。

希望大家能给出一些建议。
4762 次点击
所在节点    程序员
94 条回复
xieyuheng
293 天前
@hsfzxjy 可惜就是没有主流程序语言是这样用的。

比如 python 是:

变量 snake_case
类型 BigCamelCase
madku
293 天前
camelCase+1
hsfzxjy
293 天前
@xieyuheng 你可以做开创者( doge ),BigCamelCase 区分度还是不够
hsfzxjy
293 天前
原来 inet 是楼主做的,之前就 star 了
purensong
293 天前
我想法是都支持,不要让用户做选择了,成年人全都要
cy18
293 天前
变量、函数、类,使用不同的方式吧?
loading
293 天前
建议你参考一下 go fmt
chaleaochexist
293 天前
camelCase
这样的有点是能稍微短一些.
yolee599
293 天前
C# 那种比较好
otakustay
293 天前
不是工作必须的话,我一般是不碰 snake_case 的语言的
z1645444
293 天前
以前很喜欢 camelCase ,最近开始比较倾向 snake_case ,所以 snake_case 投一票
xieren58
293 天前
建议参考 rust...
Jwyt
293 天前
个人喜欢 snake_case
runze
293 天前
@xieyuheng #21
zig 就是:camelCaseFunctionName, TitleCaseTypeName, snake_case_variable_name 。

你想要未来换成 zig 实现,为什么不像 zig 一样“我全都要”呢?
Aloento
293 天前
pascal 路过
hcr707305003
293 天前
这种应该是看场景使用,你这种使用 snake_case 会比较好点
flyqie
293 天前
个人喜欢 snake_case 。
Daniel17
293 天前
我觉得 snake_case 更清晰一点
ychost
293 天前
c/c++ 喜欢用 snake_case ,其余的 Java/Js/C# 喜欢用 camelCase
ipcjs
293 天前
类型用 PascalCase
变量用 camelCase

你看新出的语言,有几个还在主用 snake_case 的?

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

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

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

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

© 2021 V2EX