编程语言这么难实现吗?

编程语言的关键是生态,你看看 Lisp 里面 Clojure 对比 Common Lisp 就知道生态有多重要了。 现在语法的样子已经没有那么重要了,大家都是想搞自己的生态。

1 个赞

不敢苟同, 鄙人觉得是"逻辑", 设计/架构 > 实现
数学也可以说是一门语言, 不需要编译器
就像 “函数式” 编程语言的精髓也不是在编译器吧?

1 个赞

我尝试不从程序员纠结编程语言的角度看,个人是觉得对于互联网公司,尤其是新技术掩盖实质从商的公司来说,编程语言更多的是软件产品的属性,上游供应商能提供质量可靠的产品,那么就没有再自己生产的必要(时间人力物力)都不如直接用供应商的省钱。

那如果仰仗开源社区来做,国内早年应该也有过吧,不太清楚,也看不到足够的驱动力,纯粹为爱发电吗?很蓝的啦。

所以应该不是难不难的问题。(但让我自己搞一个还能不被大佬吐槽肯定很难 :sweat_smile:

嗯, 也不是期望或者鼓励国内应该这样做, 有点多余的好奇心在作怪吧
鄙人也偶尔问自己, 如果要自己来实现一个编程语言or操作系统(无知者无罪🥵), 我该怎么做

就像Lisp的第一个实现(Lisp发明者John McCarthy的学生Steve Russell, 也是Lisp宏的发明人), 连John自己也表示意外/惊讶(实现前说Russell把理论和现实混淆了, 结果真被实现了…)

前面 lazycat 大佬的观点还是很系统和全面的,实现编程语言或操作系统是纯技术,纯学术问题,这个真的是沉下心来一点点攻克,一点点搞出来的。但除此之外都是商业问题了 :cold_sweat:

我们可以尝试踏在巨人的肩膀上嘛😝
不带商业目的(可能是鄙人太天真了), 否则压力山大
但不带有商业目的的大项目在现代不太可能, 不大的项目也没必要新设计一门语言…

(题外话, 经常听到说咱软件工程师这一行是吃青春饭的, 所以搞了十年后再去实现/设计编程语言/操作系统, 确实是难)

国产编程语言我还真用过,易语言、mq语言。这类语言的一大特点就是中文编程,国产编程语言流行不起来我感觉可能是掉进中文编程这个巨坑里面了。

基于Lisp实现自己的一种语言,这个肯定是可以的吧,我看过一些文章都说这就是lisp的优势,lisp的元编程能力是最强的,我也觉得应该是这样,虽然我完全搞不清楚怎样才能用lisp实现一门语言

记得 Paul Graham 就说 Ruby 就是基于Lisp实现的嘛

总之我们是站在巨人的肩膀上, 取其精华去其糟粕, 这是我们近几十年科技指数级进步的前提吧

Go, Rust, Scala 3, Erlang, OCaml, Haskell, Idris, Julia,Clojure, Racket, Common Lisp……

这么多优秀的,够你学一辈子了😂

中文编程为何是巨坑呢?

机器语言——汇编语言,从机器变成了人能理解的英文,是一种进步。从电脑语言到日常语文,虽然很难,但却是一种趋势吧。

去年的文言文编程语言是一个可能路线,也许文言文的严格的语法更适合编程呢,当然如果这样,程序员应当先学好文言文,这也是一个难点。

如果能够立刻"学以致用", 有项目用到, 就会很有动力去学了(效率也挺好, 实践出真知)

因为编程语言不是自然语言,所谓的中文编程压根和中文没关系,说是“汉字字符”编程更贴切。 甚至英文编程也不存在,计算机语言就是计算机语言,用 “如果” 还是用 “if” 还是用 “:face_with_monocle:” 表示条件分支对于编程语言来说没任何区别,你可以把它换成任何你想要的 emoji 字符,难道说这就算 emoji 编程语言了么?所以选择一个好输入打字的,方便全世界程序员理解的,自然就是英文了。

极端点如 apl,干脆自己选一套非任何自然语言的符号,这套逻辑才是本质,和人类语言没啥关系。 https://tryapl.org/ image

5 个赞

是的, 就像阿拉伯的数字跟数学没有必然的关系, 只是为了"方便", "人类"更容易理解

选择英文,是建立在英文是世界通用语言的基础之上的,如果未来的世界通用语言是中文,那么中文也可以。因为英文更强势,初始的英文编程更强势,我们又是向他们学习,所以编程语言以英文为主。

现代的白话文不够严谨,用白话文不太适合,改成精炼的白话文或者文言文,更利于用中文的我们操作电脑实现所要的功能。

换个思路,现在的「小爱同学」、siri等等,如果连续输入几个命令一起执行,也是一种编程语言了。再联想起来,这个其实接近「人工智能」了,让电脑理解文字,让人更方便操作电脑。

我想建立在 lisp 之上,应该可以做一个中文编程的脚本语言了。

那你要看未来世界,至少在软件行业里面中文是不是自然语言的通用语言。很遗憾,目前看起来国内的专业软件开发者无论基数还是增长速度都不是最多的。目前人数最多的是美国,增长上来最可能超过美国的是印度,专业的软件开发人员数量全球的前 10 里面没有中国。

就算中国成了通用语言也不会用中文编程,因为代代传承的都是用英文字符的编程。好在如此,不然我们以后可能要用印度语编程。

1 个赞

有道理,就像现在用的键盘,就算不完美,但仍然是这样子,以后也很难改变。基础的程序语言应该不会变了。

但这样的场景会出现的:

「小爱同学,给超过三十五岁的程序员发辞退邮件,并且多发两个月工资。」

没有看懂有什么关系

那在另一个平行宇宙 emacs-lisp 就长这样 :scream:

(कब (सेअधिक (उम्र प्रोग्रामर) 35) (ईमेलभेजें प्रोग्रामर) (वेतन प्रोग्रामर 14) )

你可能需要的是 自然语言处理