诸如 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 和其他在编程语言上实现的范例侧重于生产力,而效率是编译器的任务, 它做了很多魔法,否则会产生极其低效的编译代码。