软件开发定义中,插件 Plugin 和扩展 Extension 有什么区别?

新手上路,请多包涵

如题。如题。如题。

阅读 5.5k
11 个回答
  1. 插件提供额外功能,但不修改核心功能;扩展是为了修改核心功能,但可能由于版本更改或改进而提供。
  2. 插件通用性更强,扩展往往是给特定应用。
已参与 「极客观点」 ,欢迎正在阅读的你也加入。

一般来说区别不大,要看使用的平台是如何定义的。我们举几个例子就明白了。

一、Chrome为例

Chrome同时存在Plugin和Extension。

Chrome的Plugin是一种更内嵌的方式,并且提供的能力明显更强大。比如Adobe Flash Player,记得它的功能是什么吗?可以播放网站上使用flash播放器的视频。也就说,这个plugin明显比Extension的能力更强大,也更加笨重。并且安装Plugin不是在Chrome官方,而是在这个Adobe的官方网站去下载,也就是不受Chrome的审核控制,安全性和内容也更加难把控。现在Chrome已经完全放弃了Plugin的方式,无法再使用。

Chrome的Extension就很好理解,它就是一种增强网页的功能的作用,比如Ad Block,油猴等。说白了就是更加安全可控,所有的Extension都必须经过Chrome官方审核才能上架,有问题随时给你下架。但是很明显它提供的能力是有限的,更多的是依赖纯粹的js脚本。

由于历史原因,Chrome一开始就有Plugin和Extensio两种东西,所以就有意义上的差别。
当然Extension现在也是一种Web标准,叫Web Extension,为了统一各个浏览器扩展的API而出现的。

二、Edge为例

微软家的浏览器,它的插件商城叫Add-ons,翻译为附加组件或扩展。意思和Plugin以及Extension很相近,不知道是不是微软故意要和Chrome区分开来。

三、VS CODE为例

VS CODE的插件商城,叫Extension,不叫Plugin。

四、PowerPoint为例

微软家PPT的插件叫Add-ins,神奇吧,微软家的东西都不太一样,翻译为加载项或插件,既不叫Plugin也不叫Extension,但他们的含义几乎没区别。

五、前端工具链为例

Webpack、Parcel、Rollup的插件全都叫Plugins。


那么我们可以总结一下,一般客户端上用户能直接使用和安装的插件,我们用Extension、Plugins、Add-ons、Add-ins来表示都可以。

而偏向于开发者写代码层面的,基本都使用Plugin

Chrome Apps, Plugins, Extensions: What’s the Difference?
已参与 「极客观点」 ,欢迎正在阅读的你也加入。

没什么区别,很大程度可以混用,语言习惯的关系。


已参与 「极客观点」 ,欢迎正在阅读的你也加入。

插件新功能的包引入软件中
扩展是在原有功能上进行扩展开发

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

感觉扩展是插件的接口,通过扩展的能力来达到编写插件的能力。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

应该区别不大吧. plugin感觉是一个有明确功能的工具,比方说编辑器的一些辅助功能一般叫插件, extension有点依赖补充原来工具的意思, 扩展功能之类的.


已参与 「极客观点」 ,欢迎正在阅读的你也加入。

我感觉就是叫法不同,其实都差不多是一个东西吧...

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

插件是技术上的实现

扩展时功能上的实现

用发大相径庭,含义是站在不同角度上的

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

现在这发展速度,Plugin和Extension没啥区别。

只要是跑在某Platform上,都可以叫其中的一种,不好划分。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

通过chrome浏览器

来举例子可能可以更好的来理解有什么具体区别。

扩展(Extension)

指的是通过调用 Chrome 提供的 Chrome API 来扩展浏览器功能的一种组件,工作在浏览器层面,使用 HTML + Javascript 语言开发。比如著名的 Adblock plus。

插件(Plug-in)

指的是通过调用 Webkit 内核 NPAPI 来扩展内核功能的一种组件,工作在内核层面,理论上可以用任何一种生成本地二进制程序的语言开发,比如 C/C++、Delphi 等。比如Flash player 插件,就属于这种类型。一般在网页中用 <object> 或者 <embed> 标签声明的部分,就要靠插件来渲染。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

一般原生搭配的扩展用plugin,三方写的插件用extension,

不过,现在很多场景都会混用,就是个名词,不要太纠结。


已参与 「极客观点」 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进