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

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

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

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

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

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

目前大概想到的是这么多吧。
5258 次点击
所在节点    程序员
71 条回复
avocador
1 天前
有个叫 brainfucker 的语言我记得,看懂一段用它编写的代码需要一定的大脑算力
ho121
1 天前
您要找的是不是: 汇编
XCFOX
1 天前
不用设计,已经有现成的 GO 语言了
songray
1 天前
所有的对象都可以 call ,函数也可以 new
混淆 true/false 、0 、非 0
用同一个东西和语法表达列表、字典等多种数据结构,并且不关心顺序
每个函数都有个 this 指针

我怀疑你在内涵 JS 。
66450146
1 天前
"2006-01-02 15:04:05"
mekingname
1 天前
无论你的项目有多少行代码,你的项目文件夹里面,必须嵌套 10 倍的空文件夹,项目才能正常运行。

例如:

com/xxx/yyy/zzz/ppp/ttt/mmm/qqq/service/head/break/main.java
auh
1 天前
人才,希望设计出来,提供更多程序员职位的语言
koykoi
1 天前
parody 的话,可以考虑
https://github.com/TodePond/DreamBerd
SchwarzeR
1 天前
你说得对,但是《 Golang 》是一门由 Google 自主研发的全新编程语言,语言发生在一个被称作「 goroutine 」的幻想世界,在这里,被 func 选中的人将被授予「 pointer 」,导引 GO111MODULE 之力,你将扮演一位名为「 20060102150405 」的神秘角色,在自由的 interface 中邂逅性格各异、能力独特的 struct 们,和他们一起击败 err ,找回失散的泛型——同时,逐步发掘「 panic 」的真相。
woctordho
1 天前
esolangs.org
去集齐这些语言的缺点吧
FalconD
1 天前
回答 esolangs 多少有点算跑题了
核心还是让各种语言特性相互冲突和耦合
建议直接干掉过程的形参列表,类型系统随便乱来
nyxsonsleep
1 天前
@songray 确实
kneo
1 天前
每个变量和函数参数/返回值都必须声明类型
声明了类型但是不强制编译器检查类型
即使编译器检查了类型也不保证运行时没有类型错误

必须支持泛型
泛型必须很详细,什么也不能省
泛型不保证你没有运行时错误
泛型不能带来性能提升

代码必须要先编译才能运行
编译必须很仔细,没一个小时不能完成
编译应该是单线程的
编译也可以选择多线程
多线程编译不保证正确性
多线程编译不能带来性能提升

程序员必须手动管理内存
虽然需要手动管理内存并且要编译,但是运行时还有虚拟机
虚拟机的指令必须要是解释执行的
虽然程序员必须手动管理内存但是虚拟机实现了 GC
GC 是用引用计数
引用计数可能会有内存泄漏

程序编译之后,如果想在其他机器上运行,必须要在目标机器安装编译开发环境
动态链接库必须要完全一致
如果机器上有旧版本的链接库请先卸载
如果有新版本的也请一并卸载
如果运行不了建议在虚拟机或者 docker 中运行
环境变量不正确可能运行不了
以防外一,编译出来的程序最好是从 IDE 中启动

本语言没有规范,以实现为准
如果有新版本请以新版本为准
如果版本过新,请卸载新版本,重新安装大家都在用的版本!
DOLLOR
1 天前
代码不用英文字母,只用阿拉伯、希伯来字母这些 RTL 文字🐶
lujiaxing
1 天前
@SchwarzeR 卧槽原神
lysShub
1 天前
@66450146 这玩意不比哪种 yymm 好?
lysShub
1 天前
那种
billccn
1 天前
数组从 0.5 开始,但可变长度列表无法用下标直接访问,需要遍历,遍历过的内容即销毁。

变量必须有一个大写一个小写一个数字一个特殊符号和一个不打印字符,总共不得高于 5 字符。

检查 HashMap 是否含某个 key 则会自动创建含该 key 的 entry,数值是 undefined behaviour.
FYFX
1 天前
动态作用域
felixcode
1 天前
写代码需要在多种不同的键盘布局间切换

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

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

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

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

© 2021 V2EX