编程语言,库文件和框架
Thought | Posted on Fri 2016-12-30

所谓“工欲善其事 必先利其器”,喜欢写字的人都希望能有一个舒服的码字软件。我也是一样的,可是找到的好多软件都不尽如人意,于是就想自己写一个属于自己的码字的软件。

我想使用PWA应用的离线技术构建出一个跨平台的文本编辑软件,使用的是JavaScript/HTML/CSS。前段时间花了好长时间在写代码,但是程序还是没完成。主程序什么框架也没有用,什么库也没用,而是直接使用原始的JavaScript去实现,主要是想实践一下软件工程以及设计模式,除此以外还有一个软件大小的考量:一个jQuery库文件就有70~80KB,如果我使用原始的JavaScript写完整个代码,也许所有的代码远远比这一个库文件还小得多。

当我看到软件工程书上所说的“高级语言的效率比低级语言高”时,回想起汇编语言、Javascript和Java,确实是这么回事,可是为什么我用javascript写代码,效率依然不够高效呢?

编程语言

Programing Lunguage

我们最开始从汇编语言,发展到脚本语言,再到C语言,然后是更高级的其他语言,整个过程中,都是站在巨人的肩膀上发展,发展趋势是编程语言越来越接近人类的语言,高级编程语言让编程的效率更加高效,在同样多的时间里,产出的代码执行的元操作比以前更多。我们可以看到,高级语言就是对低级语言的一种封装,然后使用另外一个语法。假如我们称低级语言的操作为元操作的话,让这些元操作构成集合,高级语言所能做到的事也只是是这个集合的子集而已。 大多数高级语言都会隔离低级语言的元操作,提供新的高级语言的元操作给你。高级语言的开发效率高,主要体现在同样的一段时间里,你敲的字符数量是相同的,但是高级语言的一条语句抵得上低级语言的好几条语句,你在同样多的时间里编写的高级语言完成的元操作是低级语言的几倍甚至好几十倍。我们要完成一个意图,只需要高级语言的一个元操作,而这个元操作,等价于低级语言的一个集合。

我的答案

The Answer

在JavaScript出现的那个年代,这门语言提供的元操作就能够满足当时的业务需求。但是随着业务逻辑越来越复杂,我们要编写的元操作越来越多这就是我用原生JavaScript去编写这个程序耗时为什么效率不够高的答案。

那么怎么解决?一个方案是使用基于JavaScript的高级语言,不过目前来说不可能,因为各大浏览器厂商都仅支持JavaScript。截止到2016年,前端出现的东西也只是在发展JavaScript,JavaScript的方言也在发展。WebAssembly这项技术的发展似乎能够解决这个问题,我们能够用高级语言编译后的文件在浏览器运行。 另外一个解决方案是使用库文件,封装操作,模拟高级语言。

库文件和框架

Library and Framework

当我们要把元操作组合在一起的时候,就形成一个函数,我们称封装了一系列操作。从某种意义上看来,这个函数就相当于高级语言的一个元操作了。 所以在引入库文件后,我们就能够使用在低级语言的语法下使用高级语言的元操作。

框架是在库文件的基础上增加了一些模式的思想,这些模式,不止是设计模式,还有管理模式等等,为了更好的拓展和管理。

ps:文中的术语并非严格定义的,而是狭义的。

©2022 KAI TAO | Github | Home | Contact

Powered by eleventy