【offtopic】各编程语言对 Apple Silicon 以及 ARM64 的支持度

从《【讨论】各编程语言对 Apple Silicon 以及 ARM64 的支持度》继续讨论,原因:原话题已经不符合话题标题内容,创建新话题继续原话题原本设计的讨论内容。

原话题内容指路:

知乎也关注大佬了,但是为什么大佬你研究的语言都这么复古或者偏门呀?做什么研究内容会用到这么多种类的语言呢?

我从 Emacs 和 Lisp 衍生的对 80 年代往前的编程语言和计算机的兴趣。现在用 J 当做 Matlab/Numpy 的替用品,用 XSLT CSS 或 Plain TeX 或 Troff 做排版,画图用 Metapost 或 Troff Pic,用 m4 和 ML/1 当宏,Plan 9 Mk 编译项目,用 Common Lisp 填充剩下需求,偶尔用 C 当下胶水。我周边的人基本只会 Python,LaTeX,Matlab,一点点 C/C++(哪怕我从没认真学过 C++ 相比之下会的也算多了) 和 CMake。技能点多了至少不会像个半吊子,不管做什么都能用最合适的方法。

往后的新编程语言设计多少我都觉得有问题,而且缺少想象力。就算从实用角度甚至很多也不见得比 APL 有用,我总结为,「类型比程序本身还长的话根本不实用」和「用解释器就能跑的足够快就不需要编译器」。

6 个赞

给大佬跪了 zsbd

APL 我看了知乎的文章去了解了一下,实在是太抽象了,各种特殊符号。m4 宏处理器也是。大部分这些开发时间很早的工具虽然想象力很高,但是发展的过程没有理论支持,加了很多比较突然或者难懂的特性。比如前面这几个,键盘上各种符号都差不多用上了。而且很多工具现在开发不活跃或者说和现在流行工具的兼容性不高。

另一个比较苦恼和难以使用的问题是缺少资料,难以搭建环境,我尝试过大佬介绍的 SBCL 还有 SWI Prolog,SBCL 能使用但是没有找到的 Common Lisp 教程都太老了,没有 2010 年之后的。SWI Prolog 开发还算活跃,使用体验也还行,教程也不错,但是在 GitHub 没有找到合适的大规模程程序用来学习,只能用来做小推理工具。

大佬介绍的工具里我真正用上的有 OCaml,elisp,LaTeX。

我做过的最多的事就是拿已经 bitrot 的软件改到能用的程度,所以从来不在意活不活越,相反文档越旧说明不需要重新学习无聊的不兼容 API 改动,能做更多有实质性的功能改进。流行的就是高尚的吗?用的人多不代表优越性,相反如果能和杰出的开发者,尤其不只是编程能力上优秀的特殊领域专家有接触,哪怕只是看人家写的代码和文档,或者是交流见解,受益才会多。太流行的工具反而缺少这种机会,入门固然是方便了,用久了也只是和普罗大众一个层次。

因为是自由软件,作者没有保证功能正常运行的义务。只会提要求伸手,不能保证要求得到实现,也难免会让人厌烦,如果能给一个冷门项目修改代码,哪怕技术上做的可以有不成熟,或者干脆只是准确定位到问题所在,也非常容易让作者高看一眼,帮忙完善,才更容易得到想要的功能,以后谈新功能也会容易

1 个赞

这句话成立的前提是“用的人多 = 大佬不会用”,但问题是:大佬不一定不用流行的工具。

这句话成立的前提是 “用的人少 = 大佬愿意和新手交流”,不然你去和 Linus 友好交流一下,哪怕本身是比较热情的人,面对的 noob 多了,耐心也会被消磨掉。

舉个反面例子,xz 就是因为开发者少,哪怕主要开发者是个社恐到时常 social media detoxes 的人,都给了有惡意的人乘虛而入的机会

1 个赞

然而 Linux 社区大佬并不只有 Linus 一个人。这种想法属于在用小众工具的思路去思考流行的工具。

根据“知识的诅咒”,大佬在面对新人的时候会觉得新人学习能力差甚至感到厌烦,这一点是与项目冷门与热门无关的

另外,Linux 的各个子项目都是分到不同的小组手里的,你需要做的是先找到这个小组然后再交流;直接找 Linus 人家当然烦了。


小众工具开发者只会更少。

没看懂这句话的逻辑,为什么要用“哪怕…都…”?

难道不是因为 xz 项目领导者社恐,导致项目招不来人手,最后还被别有用心的人爆破了么?

1 个赞

好的,请你举例 Linux 社区一名可以认为是大佬的人,并且留下你有过 issue/邮件交流的记录

这是你想当然的,根据我的经验,越是冷门社区,大佬对解答显而易见的简单问题容忍度越高,多少还愿意愿意亲自一场回答,在热门社区,放到比如 TeX stack exchange,问题问的过于真实 noob 直接给 down vote

那么,你有和其中任何重要贡献者有过交流吗?

你又想当然了,项目找不到人,原因是哪怕用户到处都是,也缺少有压缩算法的专业知识的开发者,也就是大佬

Sorry,还真不是想当然,是基于“知识的诅咒”推导出来的结论;除非证明只有同一个人在冷门社区是大佬在热门社区不算,或者证明“知识的诅咒”是错误的。 :thinking:

很多都不是直接用户,恐怕没有这次的事情,都不知道连 systemd 这样的基础组件都在使用 xz。开源社区打压缩包还是 .tar.gz、.zip 用得更多。

缺少人才的情况对于任何项目都是平等的,不会因为你是热门项目所以你会缺人才、而你是冷门项目就不缺。

被使用的多的热门开源项目都尚且面临缺人手的境地,冷门项目情况只会更差。除非所有的大佬都愿意为情怀不顾一切,而且他们的情怀都是对冷门项目的,但这显然不可能。

这个人就是我

如果有人问我 APL 或者 J 的哪怕是基础问题,我会很高兴回答。如果问我 Emacs 问题,除非觉得有趣,我是懒得回答的。问我 LaTeX 问题?一律用 plainTeX 回答。

所以流行的工具,用户多没有用,在用户社区里呆着能对自己提升的有限,要看的是核心开发者多不多,但是越是流行的社区,越难进核心圈子

人才是培育出来的,而不是从地里自己长出来的。如果我的目的是自己变成人才,而不是享用别人的努力,热门项目培养接班人怎么会轮得到我,冷门项目才有可能有愿意培养一个几乎是不认识但是能显示出潜力的人

确实,因为不培养后继者的冷门项目都死了。

但问题是:拿什么培养?


你这话很矛盾啊,一方面暗示热门项目的用户以菜鸟偏多核心开发者很少,一方面又说接班人很难轮到自己(暗示竞争激烈)。


看来我们对于冷门技术/热门技术的界定是不一样的。不过你说得对,相较于 APL/J,Emacs、LaTeX 之流确实属于“热门”了。(笑)

对于开源软件,只要代码保留下来,沉寂很久之后通过后来有兴趣有能力的用户成为维护者打赢复活赛是很正常的,最著名的例子就是 Maxima。而 Emacs 也曾有几次活跃开发者变得非常少,担子回到 RMS 一人的时期。

我一开始凭兴趣做的最多就是修复没有维护的开源软件,对我来说很多时候并不难。

你又在想当然了,不是核心开发者少,而是圈子难进。以 Emacs devel 邮件列表举例,一天就有 200 多封邮件,怎么才能让人记住你的名字,并且不是因为水贴被踢出去的那种?哪怕是用户为主的 emacs IRC,用户名单也太长,不是天天高强度在线根本不会给人留下印象。

而去 Common Lisp IRC 水群,总共在线都没有50人,连续上个5天就眼熟了,真实经历,哪怕只在线上有交流,都有大佬考虑把库交给你维护

APL chat,如果有 QQ 称号系统,那我就是龙王