我认为要求所有内容都包含在类中的目标是 最大程度地减少 您需要使用该语言处理 的概念的数量
。在C#或Java中,您只需要了解对象模型(尽管相当复杂)。但是,只有类具有成员和类(对象)的实例。
我认为这是大多数语言尝试以一种或另一种方式遵循的一个非常重要的目标。如果C#有一些全局代码(例如,允许在不使用
Main方法的情况下进行交互式评估和启动代码的规范),则您将需要学习另一种概念(顶级代码)。C#/
Java所做的选择当然只是获得简单性的一种方法。
当然,这是否是正确的选择是一个问题。例如:
在功能语言中,程序是使用 类型 (类型声明)和 表达式 构造的。程序的主体只是一个被评估的表达式,这比带有
Main
方法的类要简单得多,并且它还支持交互式脚本编写(如Python)。在Erlang(和类似语言)中,程序被构造为同时执行的进程和一个启动其他进程的主进程。这是一种截然不同的方法,但是对于某些类型的应用程序来说很有意义。
通常,每种语言都有某种看待世界并建模的方式,并且在看待 所有事物 时 都
使用了这种观点。这在某些情况下效果很好,但我认为没有一个模型是完全通用的。这可能是混合多种范式的语言在当今非常流行的原因。
附带说明一下,我认为
Main方法的使用有些争议(可能继承自C / C
++语言)。我想,更清晰的面向对象解决方案将是通过创建某个
Main类的实例来启动程序。



