诸如 OOP 之类的语言范例是从执行或创作的角度设计的吗?
Are language paradigms such as OOP designed from an execution or authoring perspective?
我主要使用 JavaScript,但目前使用 C#。我突然想到,在编程和考虑对象层次结构时,在这两种情况下我都不知道代码是如何执行的。
在 Java 脚本中编写 'class' 层次结构时,我发现 Java 程序员对在构造函数定义之外定义这些层次结构感到震惊。例如:
function SomeConstructor() {}
SomeConstructor.prototype.someMethod = function() {}
var someItem = new SomeConstructor()
someItem.someMethod()
这与传统 OOP 语言的构造方式完全不同(至少在我不到 2 年的经验中),例如在 C# 中:
public class SomeClass{
public SomeClass() {}
protected void SomeMethod() {}
}
SomeClass someItem = new SomeClass();
someItem.SomeMethod();
问题:OOP 等语言范式是否侧重于提高代码执行效率、开发人员输出(即易用性)或两者?
Question: Do language paradigms such as OOP focus on improving
efficiency of code execution, developer output (i.e. ease of use), or
both?
我会说object-oriented编程(OOP),aspect-oriented编程(AOP)等范式处于最高水平。
层次越高,越注重生产力。
因此,我会得出结论,OOP、AOP 和其他在编程语言上实现的范例侧重于生产力,而效率是编译器的任务, 它做了很多魔法,否则会产生极其低效的编译代码。
我主要使用 JavaScript,但目前使用 C#。我突然想到,在编程和考虑对象层次结构时,在这两种情况下我都不知道代码是如何执行的。
在 Java 脚本中编写 'class' 层次结构时,我发现 Java 程序员对在构造函数定义之外定义这些层次结构感到震惊。例如:
function SomeConstructor() {}
SomeConstructor.prototype.someMethod = function() {}
var someItem = new SomeConstructor()
someItem.someMethod()
这与传统 OOP 语言的构造方式完全不同(至少在我不到 2 年的经验中),例如在 C# 中:
public class SomeClass{
public SomeClass() {}
protected void SomeMethod() {}
}
SomeClass someItem = new SomeClass();
someItem.SomeMethod();
问题:OOP 等语言范式是否侧重于提高代码执行效率、开发人员输出(即易用性)或两者?
Question: Do language paradigms such as OOP focus on improving efficiency of code execution, developer output (i.e. ease of use), or both?
我会说object-oriented编程(OOP),aspect-oriented编程(AOP)等范式处于最高水平。
层次越高,越注重生产力。
因此,我会得出结论,OOP、AOP 和其他在编程语言上实现的范例侧重于生产力,而效率是编译器的任务, 它做了很多魔法,否则会产生极其低效的编译代码。