编程语言框架是怎么被开发出来的?

大多数语言,底层都是由c、c++及汇编语言开发构建,顶层由框架对应的语言开发。

对于框架中的高级语言,因为对应有编译器的支持,就可以识别出这个高级语言是什么语言。在运行前程序会将高级语言进行编译,不同种类的编译器会将它们编译为机器认识的二进制字节码(如Java语言有Java自己的编译器,可以把Java语言翻译成二进制字节码,Python也有自己的编译器,可以将Python语法翻译成二进制字节码),和底层的c、c++及汇编编译后的二进制字节码在一起运行。


框架的最开始是一种问题的解决方案,解决问题的同时在引入了诸如设计模式、架构风格方面的知识,主要目的是减少代码重复工作量和提高组件的利用率。最重要的一点,框架的作者有极客精神,愿意分享自己的成果,为他人提供便利。


编程语言的框架也是用编程语言开发的。就拿Java来说,Java的框架是最丰富的。它本身也是程序员用Java开发的。开发框架的目的是为了减少我们的工作量。


编程语言框架是编程语言生态的重要组成部分,编程框架可以由企业,组织或者个人开发出来,目的都是为了提高软件开发生产力,比如ruby的rails框架,Java的springboot,JavaScript的Vue.js,Rust的Rocket,C++的CPPRestSDK。一开始市面上缺少某种框架,又存在市场需求,于是就激发了自愿者去开发。或者市面上的框架存在某些缺点,就开发了新的框架,比如JavaScript的Vue.js就逐渐取代了react,angular。


Hi,你好,很高兴看到并回答。

楼主能想到“框架是如何产生的”这个问题,说明楼主是在了解或使用了框架以后,经过了深层次的思考,希望获得“事物的本质”。楼主这种“求知”的想法和心态,着实让人钦佩。

本人从事开发多年,下面结合我的理解谈一些想法。

首先,思考一下什么是框架。

日常生活中“框架”一词经常被用到,例如建房子,要先搭框架;写作文要列提纲,就是梳理框架。从上面例子可以得出,框架可理解为结构。

软件中的框架如何理解呢?软件框架即是软件的体系结构。框架中包括了一些预先定义好的接口、类和对象,这些类与对象帮助程序员完成了一些基础或通用的操作,例如事务处理、数据访问等。因此,使用框架进行开发能够提高开发效率和代码质量。

其次,框架是如何产生的呢?

框架产生的目标是帮助开发人员解决一些通用的问题,提供通用问题的解决方案,让程序员将主要精力放在业务开发上。这些解决方案是经过验证的,可以在实际中应用的。

那么可以思考一下:框架中包含的这些通用问题的解决方法,又是如何得来的呢?答案就是:实践

框架从实践中来,是对实践经验的总结。例如JavaEE中Struts框架的产生,则是在JSP/Servlet开发中为实现代码职责分离而总结出的MVC模式的实现。

框架是一些共性问题解决方案的集合。框架是高度抽象的、可复用代码的集合。

框架的产生是一个持续累积的过程,是一个持续改进的过程

框架要实现“通用性”,在设计上必须是可扩展的、灵活的。因此,框架的设计过程是一个“重构”的过程。

从上面内容可以看出,框架是将(多个)项目中“典型代码”抽取出来,然后继续抽象和重构,最终形成的“经过实践验证的、可复用和高扩展的、解决通用问题的解决方案(代码)的集合”。

第三,框架是怎么开发的呢?

从第二点可以看出,框架来源于实际项目,但又高于项目。所以,框架都是与具体的项目开发语言是一致的。例如,开发C#项目,使用的框架就是C#语言编写的;开发Java项目,使用的框架就是Java语言编写的。同类型语言编写的框架,能够更方便的应用到项目中。

最后,关于框架还应该知道的。

框架并不是万能的,虽然说框架帮助程序员解决了一部分通用问题,但框架不能帮助我们实现项目功能,具体的项目业务开发还需要程序员自己完成。

框架的存在并不是为了解决软件复杂度这一难题的。对于软件复杂度的问题,经典的词就是“没有银弹”,即没有一种方法/方案可以从根本上解决复杂度问题。

我是一名Java全栈开发工程师、系统架构师,从业15年。曾带领小团队完成多个数百万级项目。我正在写一些关于互联网行业及开发技术方面的文章。关注我,你一定会有所收获。

如果有项目开发、行业及求职方面的问题,都可以在评论区留言或私信我。


原始地址:/wangluo/562.html