打算设计一门集所有语言的缺点短板于一体的语言,可能从哪里开始或者有哪些功能建议呢?

1 天前
 netabare
这个想法大概一开始是从某语言的变量提升开始的,刚学到那语言就觉得怎么会有这么天才的设计,真是太符合心目中的「语言的经典设计」(恶趣味角度)了。

虽然后来慢慢也理解到了这个设计的缘由,而且其实对这个语言接近 Lisp 和函数式的一些角度还是蛮喜欢的。

后来接触了一些其他的语言,例如某个 J 开头的语言,包括各种设计模式,有时候写着代码的时候,看到一些奇怪的约束和很不方便的地方,也会想,是不是可以做个集这一些短处为一体的语言呢。

现在想的话,大概想到的可能还有这些想法吧:

- for 关键字同时用于不同的循环、分支里面
- 混淆 true/false 、0 、非 0 、void 等概念
- 遍历集合的时候会改变原集合的结构
- 用 plunk 之类的字符串匹配而不是 map/forEach/filter
- 用同一个东西和语法表达列表、字典等多种数据结构,并且不关心顺序
- 每个函数都有个 this 指针
- 没有泛型,并且需要强转
- 所有的对象都可以 call ,函数也可以 new

目前大概想到的是这么多吧。
5494 次点击
所在节点    程序员
77 条回复
glcolof
1 天前
有个叫 Whitespace 还是什么的语言,只接受空格、Tab 和回车三个字符。
建议 OP 借鉴下。
xtreme1
1 天前
不太可能的, 正如不可能设计一门语言集成所有语言的优点.
clf
1 天前
建议引用第三方库只能在线引入,每次运行都得重新下依赖 x
kapaseker
1 天前
可以混用缩进,大小括号。

fun abc()

xxxxx
}

结尾既可以给分好,也可以不给
adian
1 天前
等你的大餐,金牌大厨 netabare !
soul11201
1 天前
把容易引起混乱的都设计进来

1. PHP 可以参考的地方是函数参数含义不要保持一致性
2. Java 可以参考的就是启动让他慢
3. Rust 可以参考的部分,编译让他慢
4. C++可以参考的部分是规范整得巨复杂
5. Go 可以参考的部分是别人给你提意见的时候不管对错就说这是你自己的,拒不接受。
6. Lisp 可以参考的部分是提供一个宏,让每个使用的人容易搞自己的方言,弄个巴别塔让社区容易分裂
7. C 语言可以参考的部分是 把依赖管理整得复杂点
8. Python 可以参考的部分,用每个语句用汉语逗号进行缩进
9.Ruby 可以参考的部分,约定优于配置,你就写一份文档,不要做任何实现,文档要以小学生二年级水平来写
jianchang512
1 天前
1. 变量必须用 $ 开头
2. 空格缩进对齐
3. 不支持 try catch
4. 多线程 GIL 锁定
soul11201
1 天前
提供并发的能力,但不提供并发控制的原语
提供文件操作的能力,但不保证可靠性,比如写操作都缓存在内存中,进程正常退出时刷盘
cocong
1 天前
看 黑客与画家,说是 Lisp 最好,因为它是数学不是语言,永不过时,我是欣赏不来。
spongebobsun
1 天前
还用设计啥,javascript 这不都现成儿的
jackmod
1 天前
不区分大小写
dapang1221
1 天前
笑死我了,光是看到这些点已经开始难受了
huangsijun17
1 天前
你需要通过纸袋打孔、磁环穿线来编程。
cmdOptionKana
1 天前
直接学 perl 就好了
llsquaer
1 天前
感觉你说的是 JS , 因为这几天在深入写个前端赶工,之前没真实上手 到不觉得。
上手写了才觉得一个语言分 严格模式和非严格,
this 指这里,指哪里。
函数创建格式 少说 3 种。

看别人源码更是头疼, 传参直接匿名函数一大串,多个参数情况下都不知道下一个参数在那个位置。

然后还有一个解构语句,花括号解构就解构吧, 还有简写方式,和非简写方式 ,绑定模式,还有默认值 等等。
后来觉得为啥单单一个解构语句都这么花,后来想通了,JS 就是怎么花啊
dalaoshu25
1 天前
Perl 和任何一个 RISC 机器的汇编语言都可以,不需要发明什么。暴露了 OP 对历史一无所知。
Tomatopotato
1 天前
没想到评论里获得恶意最多的竟然是 go
james122333
1 天前
不觉得 js 接近 lisp...
lisp 大家说是数学但我觉得更接近工具
就是动作+参数 这部份比较类似 shell 除了回传
falcon05
1 天前
最怪异的还是 Javascript 吧
xuld
1 天前
楼主的想法和我一模一样。
但一个语言并不是想想就能做出来的,光设计是没意义的,因为成熟的语言不止需要编译器,还需要 ide 、打包工具、系统库、三方框架等等配套,才有可能被使用,这些没几年是做不出来的,而且即使做到这个程度,程序员还不乐意学新语言。
如果你有精力可以自己研发。或者,你可以和找我,说不定我可以实现你的想法。我一直都在做语言,现在也有了一些进度,也非常乐意收集各种 idea 以提升语言的吸引力。具体可以查我之前在 v2 发的贴子。
我的联系方式:xuld#xuld.net

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

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

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

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

© 2021 V2EX