Din*_*nah 12 language-agnostic syntax syntactic-sugar
在C#(和Java)中,字符串只是一个具有存储长度的char数组,并且添加了一些方法.同样地,(参考与值之外的东西除外)对象只不过是带有继承和接口的美化结构.
在一个层面上,这些新增功能感觉就像是清晰的功能和增强功能.在另一个层面上,他们觉得从"语法糖"状态的边缘升级.
为了进一步考虑这个想法,请考虑(我可能有一些细节错误,但重点仍然是):
transistor
elementary logic gate
compound gate
| |
ALU flip-flop
| | |
| register RAM
| |
CPU
microcode
assembly
C
C++
| |
MSIL JavaScript
C# jQuery
Run Code Online (Sandbox Code Playgroud)
很多时候,任何单一的抽象层看起来都像语法糖,但是多层分离感觉彼此之间的距离非常小.
你怎么知道什么东西停止了语法糖并开始成为一个真正的功能?
Rui*_*iro 23
当它意味着不同的思维方式时,它被证明是一种特征而不是语法糖.
当你说对象实际上是带有方法和继承的美化结构时,你是对的.然而,这只是实施细节.对象允许以不同的方式思考.在考虑对象时,您可以更轻松地与现实世界实体联系.同样的事情发生在更进一步的时候,我们从使用go-to跳到程序编程.在引擎盖下,处理器仍然保持从OP到OP的jmp'ing,但我们可以用不同的,更黑盒子的方式思考.
话虽如此,在极端情况下,你可以说一切都是语法糖,但是当它允许你以不同的方式思考时,其中一些糖就是一个特征.
所有软件都是基于其他抽象构建的大量抽象.字符串可能只是一个字符数组,但有许多操作在字符串上感觉很自然,但在字符数组上却很笨拙.所有这些抽象的目标都是相同的:删除不相关的细节,以便开发人员可以专注于问题的重要部分.
正如您所指出的,所有现代编程语言都可以被淘汰,我们可以回到使用汇编语言.但是我们的生产力会直线下降.
我猜人们在感觉到它们从中获得的好处时会称之为语法糖,并且当他们觉得从中获得很大的好处时就会有这个特征.这使得区别非常模糊,而且非常主观.
当变化提供价值?我用汇编语言编写了代码.我切换到C并查看编译器的输出.它的代码是95 +%和我手工制作的汇编程序一样好,而且编写起来要容易得多.对我来说,它提供了价值所以我说它不是糖.
C++帮助我将面向对象的思想转化为代码.只要开销不是很高,我认为这是一个功能.
我是一个实用的人."如果我能看到它有价值"是我的答案
归档时间: |
|
查看次数: |
991 次 |
最近记录: |