为什么说框架是新的编程语言

  • 李小兵

2015 年 4 月 10 日

话题:语言 & 开发架构其他

软件框架(Software framework)通常指是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范,而提供规范所要求之基础功能的软件产品。近日,JavaWorld 的特约编辑Peter WaynerWayner发布了一篇题为《框架是新编程语言的 7 个原因》的文章。在文章中,Wayner 首先指出在 20 世纪 80 年代,开发者很容易针对一个语言的优劣展开激烈的争论,而当前争论的话题却变成了框架的优劣。接着,Wayner 总结了软件框架是新编程语言的 7 个原因,现对这些原因进行一个全面的归纳和整理,以供开发者学习和参考。具体内容如下:

  1. 大部分代码通常由 API 调用组成

    过去,编写软件意味着开发者调用自己对编程语言的所有技能,而如今,自动化为开发者处理了大多数事情,如垃圾回收、智能编译等。此外,大部分代码现在都是由 API 调用组成,所以深入理解 API 就显得更加重要,而关于编程语言及其语法就显得没有那么重要了。
  2. 站在巨人的肩上,看地更远

    当面对那些艰难的工作时,框架相对于编程语言来说,它给开发者带来了很大的改变,尤其是继承框架代码库里的所有精华显得更加容易和高效。使用自己喜欢的新语言编写所有功能,而不采用某种更受欢迎的框架,这是一种强悍的方式,而只有简单地遵循框架及其 API 才会让开发者快速享受到新选择的乐趣。
  3. 理解架构是做什么的,而非语法

    因为大多数代码是由许多 API 调用组成,所以学习语言的特征已没有太大益处。此外,虽然搞清楚语言细节能够给开发者带来一定的帮助,但是进一步学习框架原理能够获得更多的回报。尽管开发者可以变成 Java 对象静态成员变量初始化的专家,但是最好自己能够弄清楚如何充分利用 Lucene、JavaDB 和其它框架。开发者可以花费数月时间来彻底了解 Objective-C 编译器的运行时,但是彻底学习苹果最新的核心 Lib 将真正能够使得开发者的代码更加高效。
  4. 算法主宰

    算法的学习只能帮助开发者处理存储在变量里的数据,而重新实现标准算法和数据结构又具有一定的风险,且比较浪费时间。实际中,框架已经定义和实现了正确的算法,并且框架已经经历了多年的广泛测试和使用,代表着开发者在软件基础实施上的共同投资。所以开发者不应该抛弃别人努力的成果和完全靠自己的双手构建起算法库,而应该研究框架和学习使用框架。
  5. 纠正语法的编译器和聪明的 IDE

    IDE 和编译器帮助开发者处理了许多问题,如语句结尾符号等语法问题。IDE 的自动化处理已经把开发者从编程语法的单调乏味中拯救出来,它不仅对框架有很大的帮助,而且还能够提醒开发者函数调用的参数、检查数据类型等。
  6. 可视化编程语言的出现,语言的语法也该消失了

    有些编程正变得可视化,这意味着计算机语言正变得不是那么重要了。GUI 构建器(如 AndroidBuilder)就是很好的例子,开发者只需拖拉用户界面部件即可实现编程,而相关细节已经封装在可视化组件里,开发者无需关心它是 C、Java 或其它语言。
  7. 编码即法律 / 规则

    计算机语言被设计为开放、可无限延展的,而框架的设计却有很强的规则和规范,其设计师可以决定什么被允许以及本质上什么要禁止。如果设计师不想让某些东西发生,那么函数调用将从 API 中消失;如果设计师喜欢某种想法,那么通常会有多个函数调用以及许多支持工具。

感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发架构其他