程序员是否应该创造面向 IDE 而非人类的编程语言?

2018-12-09 14:40:54 来源:网络整理 作者:管理员

原标题:程序员是否应该创造面向 IDE 而非人类的编程语言?

我一直在思考一个问题:为什么我们要为人类创造编程语言,而不是为IDE创造编程语言,然后用人类可读的格式来显示程序呢?

程序员是否应该创造面向 IDE 而非人类的编程语言?

用文本来表示数学表达式是非常糟糕的方式。

完全不如下述表达式清晰:

在处理编程语言中向量等非简单类型的时候情况会更糟,你只能通过引用传递结构。如果你不想耗费无谓的内存开销,那么就必须使用如下形式:

这些还只是最简单的公式。我在做图形引擎的开发时编写的着色器代码在调试时就是一个噩梦,因为它的表现形式十分晦涩难懂。

其次是变量的命名。再次举一个数学的例子:P(A | B)能够精准地表达含义且易于理解,并且简洁易于辨认。不幸的是大多数的编程语言都不允许我们以P(A | B)的形式命名变量。同样,有关camelCase和snake_case的争论也是由于不能在变量名中使用空格而造成的。

另一个问题是:我们如何在智能手机上编程?虚拟键盘不适合代码,基于图形的解决方案可能有效,但我很确定没有多少人喜欢在台式机上绘制图形。

制表符和空格的争论也是另一个由文本书写代码的假设引起的。同时,这两种方法都是严重过时的对齐工具。

对于上述每种情况,关键问题都在于格式和语义之间存在紧密耦合。只要我们以纯文本显示代码,就会产生这些问题。

连字和自定义运算符提供了一些帮助,但这些方法始终没有解决核心的问题。

那么如果我们将文件的表现从纯文本改成其他更丰富或结构化更强的形式呢?通过去除这种格式和语义之间的耦合,我们还可以在不同的系统上使用截然不同的格式(例如图形编辑器),然后修改底层相同的语义。

对此,你怎么看?

Hacker News 上开发者的观点

评论1:

你忽略了一点:文本文件是最简单的。虽然有时它们可能有点麻烦,但作为“构成表达的物质”,它们是无可比拟的。你可以使用现有最常见的人机界面设备来创建或修改文本,现在的孩子在上学之前就学会使用文本了。你可以阅读包含一百万种不同程序的文本,并对其进行样式化、过滤、格式化、剪切和粘贴以及其他无数的操作。书写方程式时的不足只是为这种灵活性付出的很小的代价。

如果按照你提议的方式“解耦”格式和语义,那么将无法避免语义与编辑器的耦合。这种情况下就只能使用一种编辑器,直到你开发出其他一些可以与语法树的结构化表示交互的东西。并不是说我们做不到或不应该这么做,APL就曾经做过,像Scratch这样的教育工具做得也很好,当然还有各种“无需编程经验”的流程图和建模语言,但是这种想法只能在一些非常具体的情况下才能与文本文件对抗。

评论2:

我觉得Smalltalk可以作为一个回答你的问题的例子。Smalltalk就像你描述的那样:一种为IDE构建的语言。你无法在该IDE外部使用这种语言,因为它没有按照纯文本的格式存储数据,而是采用了图像格式。该IDE为用户提供了各种不错的功能和分析,自从20世纪70年代创建以来,Smalltalk的创意已经影响了许多其他语言和IDE。那么为什么我们都不使用Smalltalk呢?我认为关键在于互操作性。Smalltalk是一个独立的世界。它无法与Smalltalk世界之外的工具很好地交互。例如,如果不解决如何以二进制的图像格式合并代码,那么就不能享受Git带来的便利性。当我需要完成一项特定的任务时(比如某种构建任务),我需要知道如何使用Smalltalk的工具在Smalltalk世界中完成所需的一切。Smalltalk违背了Unix哲学:它提供的不是一个功能,而是所有一切,因为它是一个微型的虚拟机。

我无权说这是我们不使用类似于Smalltalk的语言编程的所有理由,但是我觉得这是其中一部分理由。很多新的编程语言在尝试用新的方式、交互式的方式推动编程语言(例如Eve),但它们都没有解决关键的问题或赢得人们的认可。其中必然存在一些内在的原因为什么这样的语言无法取得成功。希望以上文字可以提供一些见解!

评论3:

Donald Knuth在1979年描述了Literate Programming的概念(https://en.wikipedia.org/wiki/Literate_programming)。

我之前公司的一位同事Raymond Chen在研究生期间是Donald Knuth的学生,他曾用过Donald Knuth的Literate Programming进行编程。

但他建议是不要采用这种编程方式。

原文:https://dev.to/drbearhands/should-programming-languages-be-made-for-ides-rather-than-humans-3dnf

作者:DrBearhands,软件工程师和数据科学家,他感兴趣的领域有人工智能、3D算法(图形、导航等)、逻辑、高性能计算/并行、功能编程和创新。

译者:弯月,责编:郭芮

【完】

显示全文
为您推荐
颜氏发源地
颜氏发源地

【导读】 颜氏发源地,下面是小编为你收集整理的,希望对你有帮助!颜姓源于春秋时期的小邾(读音朱)国,即今山东枣庄市山亭区境内。出自姬姓,起源于春秋时鲁国公族,是周公旦伯禽之后。据《通志氏族略》所载,周公的长子鲁侯伯禽被封于鲁。伯禽的子孙有人被封在颜邑,遂以封邑为姓......

发布时间:2023-10-04 01:01:13

舞蹈垫和瑜伽垫的区别,舞蹈垫防摔(瑜伽垫防滑)
舞蹈垫和瑜伽垫的区别,舞蹈垫防摔(瑜伽垫防滑)

对于舞蹈垫,大家应该不陌生,它就是健身垫,是健身时会用到的垫子。而看到舞蹈垫,许多人会想到瑜伽垫,并认为它们是一样的,但这是错误的,因为舞蹈垫和瑜伽垫的区别还是很大的,接下来就随小编一起去了解看看。...

发布时间:2023-10-04 01:00:10

长期喝冰水有什么危害,伤害肠胃(容易肚子疼、拉肚子)
长期喝冰水有什么危害,伤害肠胃(容易肚子疼、拉肚子)

炎炎夏日,一杯冰水可解渴,还能使人精神百倍。不过冰水虽好,夏季大家也不能常喝,否则也会伤害身体,至于长期喝冰水有什么危害?接下来就随小编一起去了解看看。...

发布时间:2023-10-04 00:00:28

烧小鸡怎么烧好吃
烧小鸡怎么烧好吃

【导读】 烧小鸡怎么烧好吃,下面是小编为你收集整理的,希望对你有帮助!1、一只整鸡,先取一半,留一半下餐吃。2、鸡肉斩小块。3、加入葱姜,盐,糖,生抽腌制。4、然后给它稍稍的按按摩,让它进进味。5、跟着准备小料(小葱与泡椒)。6、热锅热油,下鸡块煎制。7、两面都煎的金金......

发布时间:2023-10-03 23:01:18

雪花盐适合哪些人吃,肠胃不好、吸收能力差者(更好消化)
雪花盐适合哪些人吃,肠胃不好、吸收能力差者(更好消化)

在市场上,盐的种类有很多,有些盐会特别贵,比如雪花盐,它就特别贵,但人吃它的好处显然比普通食盐多。生活中,普通人时不时吃吃雪花盐还好,它更适合需要的人食用,那雪花盐适合哪些人吃呢?对此,就由小编为大家解惑。...

发布时间:2023-10-03 23:00:13

六尺巷在什么地方
六尺巷在什么地方

【导读】 六尺巷在什么地方,下面是小编为你收集整理的,希望对你有帮助!六尺巷在哪里1、六尺巷,位于安徽省桐城市的西南一隅,全长100米、宽2米,建成于清朝康熙年间(1662年~1722年),巷道两端立石牌坊,牌坊上刻着礼让二字。2、千里家书只为墙,让他三尺又何妨。长城万......

发布时间:2023-10-03 22:01:23

金纺是洗衣液吗,不是(金纺是护理衣服用的)
金纺是洗衣液吗,不是(金纺是护理衣服用的)

在洗衣服的时候,有人会用到金纺,它可以让衣服洗的更干净,人穿着会更舒服。对此,很多人认为金纺就是一种特别好用的洗衣液,那这是真的吗?金纺是洗衣液吗?接下来就随小编一起去了解看看。...

发布时间:2023-10-03 22:00:19

ipad应用商店无法连接怎么办
ipad应用商店无法连接怎么办

【导读】 ipad应用商店无法连接怎么办,下面是小编为你收集整理的,希望对你有帮助!1、首先确定网络连接是否正常,如果网络错误是无法连接应用商店的;网络正常情况下,然后在ipad中找到设置功能,选择无线网络点击无线网络后面的图标,然后进行配置DNS,将原来的DNS删除掉并输入8.8.......

发布时间:2023-10-03 21:01:31

首乌和何首乌的区别,首乌是何首乌的简称(同一种药材)
首乌和何首乌的区别,首乌是何首乌的简称(同一种药材)

对于何首乌,大家肯定知道,它是一种名贵的中药材;而在药材中,也有叫首乌的存在,这不得不让人好奇:首乌和何首乌是什么关系?首乌和何首乌的区别是什么?对此,就由小编为大家解惑。...

发布时间:2023-10-03 21:00:26

怎么炒洋葱好吃
怎么炒洋葱好吃

【导读】 怎么炒洋葱好吃,下面是小编为你收集整理的,希望对你有帮助!用料:洋葱1个、葱蒜、油盐酱油酌情、胡椒粉一小把。1、准备好食材。油锅加热,先放葱蒜,然后放洋葱。2、然后放酱油,适当加一点水,防止糊锅。3、当洋葱炒到颜色透明时,撒盐,即可出锅。肉片炒洋葱:用料:洋......

发布时间:2023-10-03 20:14:32

渝是哪个省的简称1
渝是哪个省的简称1

【导读】 渝是哪个省的简称1,下面是小编为你收集整理的,希望对你有帮助!渝是直辖市重庆的简称。重庆,别称山城,是中华人民共和国省级行政区、中西部唯一直辖市、国家中心城市、超大城市,国务院批复确定的中国重要的中心城市之一。重庆总面积8.24万平方千米,辖26个区、8个县、4......

发布时间:2023-10-03 20:01:16

有氧运动和无氧运动哪个减肥,有氧更减肥(消耗更大)
有氧运动和无氧运动哪个减肥,有氧更减肥(消耗更大)

生活中,减肥的方法有很多,饮食减肥、药物减肥、运动减肥等,但最健康的还属运动减肥。而运动分有氧和无氧,那有氧运动和无氧运动哪个减肥呢?对此,就由小编为大家解惑。...

发布时间:2023-10-03 20:00:12