关于flatpak及依赖包的一些想法。
Tofloor
poster avatar
netzx
deepin
2018-03-03 22:47
Author
前面了解了一下flatpak趋势以及减少包依赖性的,增强应用独立性的一些想法。
个人认为:依赖包有点像应用的中间件,为减少应用的体积、增进代码的重用做了贡献。但是依赖包的升级与修改带来了很大问题,造成应用出现的关联问题层出不穷。那么就产生了减少包依赖,增强独立性的想法。但是因此程序变的臃肿,代码的重用减少,又降低了代码的使用率。那就要思考一下依赖包是否需要,和应该具备怎样的特性。我认为,首先依赖包是需要的。因为它提升了效率和代码的使用率。但是依赖包的特点应该是:1、结构功能简单,2、通用性强,3、是经过千锤百炼的代码,可能产生的改动一定要少。符合了上述条件的才可以被采纳为依赖包。否则一定会带来许多负面的效应。
Reply Favorite View the author
All Replies
avatar
ax******er@126.com
deepin
2018-03-04 02:11
#1
本帖最后由 valerian 于 2018-3-3 18:52 编辑

需要注意的是,一种依赖包不管多么基础多么重要(比如glibc)它都是有生命周期(以破坏兼容性为标准)的,基础的依赖不可能不更新,也不可能用到天荒地老。

举个例子就像windows的 C++运行库一样
Microsoft Visual C++ 2008 Redistributable – 9.0.30729.7523 x86/x64
Microsoft Visual C++ 2010 Redistributable – 10.0.40219.473 x86/x64
Microsoft Visual C++ 2012 Redistributable – 11.0.61135.400 x86/x64
Microsoft Visual C++ 2013 Redistributable – 12.0.40664 x86/x64
Microsoft Visual C++ 2015 Redistributable – 14.0.24516 x86/x64
Microsoft Visual C++ 2017 Redistributable – 14.12.25810 x86/x64

每一年都发布一个当年的最新基础开发环境库,新开发的软件就应该以此环境开发软件,老软件可以依然以软件当年开发的环境开发与运行,这样操作系统只需装上每一年的基础开发环境库,就能保证以此开发的软件稳定运行。

说一个极端情况,如果一个软件非常古老,是以Microsoft Visual C++ 2005环境开发的,而操作系统本身都无法安装这个基础开发环境库,那么这个软件肯定就无法运行了,但是需要说明的是如果一个软件10多年都不更新,不升级基础开发环境库,那么多半这个软件肯定已经死了,肯定没有人使用,说不定有了更好的替代品。

这时我们就可说“Microsoft Visual C++ 2005”这个基础开发环境库已经圆满的完成了自己的使命,即便不安装,也不会引起大规模的软件故障。


Reply View the author
avatar
152******14
deepin
2018-03-04 03:41
#2
https://bbs.deepin.org/post/153765
需要注意的是,一种依赖包不管多么基础多么重要(比如glibc)它都是有生命周期(以破坏兼容性为标准)的, ...

现在都win10  然而xp的市场依然存在,然而xp官方已经停止了维护。不更新不代表没人使用。更新只是使相关软件更加区域完善满足增加的需求。仅此而已。
Reply View the author
Comments
valerian
2018-03-04 18:46
那我问你,支持win98的软件还有维护的必要吗,只支持win95的呢,dos呢,软件到底是有生命周期的,xp只是时间问题,没有什么软件能战胜时间的车轮,操作系统作为一种平台,做到保证 -10内年的软件可用就已经不错了。
avatar
netzx
deepin
2018-03-04 04:30
#3
回2楼的兄弟,个人认为:举windows的运行库作为参考是值得商榷的。因为windows系统的发展本身是作为一个反面的例子可能更恰当一些。我甚至认为那正是linux发展所应该避免的。我可以举一个另一个例子,例如我们的四则运算,实际上就是一个中间件,因为我们的关于所有的复杂的求解运算,最后都可归为加减乘除,而他们符合简单的,可靠的,通用的和稳定的这些特征。至于为什么中间件要修改,我认为那是在解决不了新产生的问题时,所做的必要的补充,或者是完全新的一个体系的建立。
Reply View the author
Comments
valerian
2018-03-04 19:03
四则运算法则也有不同的实现方式,不同的方式不同的效率,随着电子计算机计算能力的发展,也许除法有了更加简单粗暴的运算方法;万一为了操作系统的更新,需要改变接口方式呢,这些都会引发中间件的更新。

还有运行
avatar
ax******er@126.com
deepin
2018-03-04 18:45
#4
https://bbs.deepin.org/post/153765
现在都win10  然而xp的市场依然存在,然而xp官方已经停止了维护。不更新不代表没人使用。更新只是使相关 ...

那我问你,支持win98的软件还有维护的必要吗,只支持win95的呢,dos呢,软件到底是有生命周期的,xp只是时间问题,没有什么软件能战胜时间的车轮,操作系统作为一种平台,做到保证+-10内年的软件可用就已经不错了。
Reply View the author
avatar
ax******er@126.com
deepin
2018-03-04 19:00
#5
https://bbs.deepin.org/post/153765
回2楼的兄弟,个人认为:举windows的运行库作为参考是值得商榷的。因为windows系统的发展本身是作为一个反 ...

四则运算法则也有不同的实现方式,不同的方式不同的效率,随着电子计算机计算能力的发展,也许除法有了更加简单粗暴的运算方法;万一为了操作系统的更新,需要改变接口方式呢,这些都会引发中间件的更新。

还有运行库怎么就是windows的反面教材了,电脑装着windows10 无论是xp还是7还是vista只要你装了运行库都能成功运行,总比linux装个软件卸掉dde好吧,底层更新个依赖上层软件挂掉一大片好吧。

再举个例子打你脸,android的SDK也是分API版本的,android 8 也是能比较古老的API版本的软件的
Reply View the author
avatar
152******14
deepin
2018-03-04 19:50
#6
https://bbs.deepin.org/post/153765
那我问你,支持win98的软件还有维护的必要吗,只支持win95的呢,dos呢,软件到底是有生命周期的,xp只是 ...

维护的必要性取决于商业考虑,而非公益。你不赚钱了,想个法换个名词,修改下等 只要是能赚钱更多的赚钱,基本上都支持。然而最终都会让位给效率这个属性。你看win10  发行好几年了,win7 的江山并没有消失,甚至xp江山依然存在。既然存在,那说明还满足当时的生产效率。软件的更新。那些新软件开发商都去追求新的平台。旧的软件即便是再优秀,你也用不了了,不是效率不行,是新平台不支持了。就是这么简单。社会的驱动型是利益。存在的原因是效率。
Reply View the author
avatar
152******14
deepin
2018-03-04 19:56
#7
https://bbs.deepin.org/post/153765
回2楼的兄弟,个人认为:举windows的运行库作为参考是值得商榷的。因为windows系统的发展本身是作为一个反 ...

运行库存在是必要的。除非所有软件都是自家的包括硬件。但是为了效率 彼此独立也许是资源最节省的。win的运行库 我觉得值得Linux借鉴。  等相关生态软件都过来了  旧的运行库放可能淘汰。要不然真就是“甩客”了。
Reply View the author
avatar
ax******er@126.com
deepin
2018-03-05 05:19
#8
https://bbs.deepin.org/post/153765
维护的必要性取决于商业考虑,而非公益。你不赚钱了,想个法换个名词,修改下等 只要是能赚钱更多的赚钱 ...

win7 xp的存在反倒证明运行库的优越性,你看开发者不必在乎用户用什么操作系统,用户想用什么操作系统都可以。当然Microsoft很头疼,但是站在用户角度确实无痛的。
Reply View the author
avatar
netzx
deepin
2018-03-23 19:22
#9
楼上的诸位提出了各种不同的见解,确实讲到了关于中间件问题的所在。我想在这里做一个小小的补充:
首先不论任何的中间件,都涉及到一个更新的频率的问题。作为四则运算的除法的算法也好,作为微软的运行库也好,作为linux的相关组件也好,都离不开这个指标。
而这个频率以怎样的数量级为合适?究竟是以天数或是以月数或是以年数为单位,就涉及到了这个中间件的稳定性问题。至于有些中间件出于商业性的考虑,人为地推新版本的做法,都值得大家去思考这种做法的对错得失。
总之,目的是为了更好地提高系统的效率,适应软件的更新,也要兼顾系统的关联修改成本,使之达到相对的平衡。
Reply View the author