返回介绍

14.5 语言的进化方向——从 Hello World! 中可见的事实

发布于 2024-12-15 23:01:50 字数 3275 浏览 0 评论 0 收藏 0

现在,大多数程序员都可以写出一个具有典范意义的“Hello World”程序 12

1
2
3
4
5
6
7
class HelloWorld {
       public static void main (String args[]) {
              for (;;) {
                      System.out.print("Hello World");
              }
       }
}

同时也会真正地、从个人意识中忘掉这样一个程序的含义以及需求不过是 13

1
print("Hello World");

如果仅以这段程序而言,用户的需求仅用上述代码即可实现。而 Java 或其他一些应用程序开发语言则在这样的代码中加入了更多的概念,诸如:

  • 类与对象等,例如: class HelloWorld
  • 名字空间、导入导出等,例如: System.out 以及隐式地导入 System
  • 方法、属性、事件,以及调用约定等,例如: print()
  • 类方法、类静态成员等,例如: static
  • 引用、值与无值,以及基本类型系统等,例如: void
  • 可见性、作用域等,例如: public
  • 字符串值、字符串类等,例如: "Hello World"String args[]
  • 应用入口与运行环境约束等,例如: void main()

除了这些概念 14 ,在具体的开发环境中还会有容器、包、配置脚本、服务、模型、验证器、指示字、伪指令、分发、部署、版本容器、基线等概念,以应付不同角色的需求。

当一门语言从“实现程序功能”变成要“实现产品需求”时,其内部的语言设计思想也渐渐地变得不遵守“算法 + 数据结构 = 程序”这一经典法则。回顾“篇二:语言及其面临的系统”,我们可以将这一切的变化以及可预期的、语言进化的方向都归结为:

通过在程序组织上的结构化来解决规模问题。

  1. 对于功能性需求来说,部分(尤其是时间与空间的区划)可参见“第 12 章 应用开发技术”。
  2. 并不是所有的操作系统都提供文件访问支持,这取决于该系统对于“操作系统(的) 资源”的定义。例如 Windows 系统中可以将注册表理解为资源,而 Linux 系统中就没有注册表。
  3. 对于 Microsoft 产品来说,操作系统中通常会带有该运行库的一个或多个版本,但某些情况下,仍然需要应用程序自己来管理这个库的安装与维护。
  4. 这些弱点的表现之一是:Linux 下繁杂的产品生态(例如不同的编译、发布与维护版本),以及非功能性需求的实现过于复杂(例如安装)。
  5. 运行环境与应用容器两种方案,在解决问题时所处的层面是不同的。前者是从系统的视角出发来限制性地提供应用的背景,后者是从领域的视角出发来提供对应用范围的假设。
  6. 参见《集装箱改变世界》,Marc Levinson 著。
  7. 这仍然是“第 12 章 应用开发技术”所述观念的具体实践。
  8. 例如 Apache 采用“WWW 服务器 + 扩展库(动态链接库形式)”的形式来交付,一方面是考虑到二进制模块的执行效率,另一方面也因为编译发布是部署人员应有的技能。通常来说,Linux 用户会更多地面临这一类情况。
  9. 并不一定是源代码中的一个单元(unit),而是指在指定的应用开发环境中,由语言或平台决定的“可复用单位”。
  10. 我的意思是组件复用成为应用开发环境的一个内置技术,例如 Java beans。
  11. 尽管并不明显,但事实上这种隔离通常与消息机制有关。无论是从“消息”这一概念的历史还是从它在应用系统中的使用来说,它都是“体系性”相当明显的一种技术。因此本书将在“编六:系统的基本组织方法与原理”中去讨论它。
  12. 引自: http://www2.latech.edu/~acm/helloworld/java.html
  13. 从语言实现上来说,其语义是 print "Hello World" ,而 (); 等符号是具体语言的语法。
  14. 其大部分与“面向对象”这一语言范式有关,部分则出于应用环境、语法习惯等在语言的具体设计上的选择。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文