一个关于简单软件的设想
Tofloor
poster avatar
FEI17
deepin
2012-11-09 22:59
Author
一个关于简单软件的设想

这个只是个人的一厢情愿的一个想法
先来定义几个概念  
1,基础依赖 就是一个系统所拥有的库,这个库的种类全部都是已经规定好的内容,并且很长的时间都会固定不做改变,我们称之为基础依赖
2,通用图形界面接口 就是各个不同的UI为一些特定的部分所提供的相同的接口,如系统托盘什么的

一个简单的软件 是一个特殊的文件夹或者归档文件
简单软件具有以下几个特征
1,简单软件不会引用系统基础依赖之外其他系统库
2,简单软件所需要的其他库必须包含在简单软件本身里面
3,简单软件不得引用其他软件,尤其不能从shell这些系统接口来引用

如果这个可以实现的话 那么简单软件会有以下几个优势
1,永远不会出现依赖问题
2,可以在软件的编写过程中 避免已知的问题(因为环境基本是稳定的)
3,安装卸载方便 删除即可
当然也有弱势
1,编写软件的人不能随心所欲的编写了(未必不是一件好事)
2,IDE基本是空白(其实简单软件这个概念本身就是我臆造出来的)
3,实现大的功能 其实有些吃力

大部分windows软件基本都符合大部分简单软件的特征 除了一些大型游戏
但是;linux却正好相反 一个简单的小软件甚至都要求你下载n多的依赖,这些依赖有时候还会导致系统问题(不感觉很无理么?)
linux下大型游戏却大多数是简单软件 为什么呢 因为人要玩的起来才会付钱(由此可以见到一个端倪)

再者其实大部分软件都可以打包成简单的软件
例如,pps可以把自己需要的库和mplayer一起包装到一个归档 基本就是一个简单软件了 其他的软件 如群里面朋友编写的锐捷认证 就更加简单了

如何实现简单软件?其实也不难 至少简单的策略师不难的
只要用一个文本文件当做接口 指定程序的入口文件 甚至就这样 已经OK了 或者可以再这个文本文档里面 指定一些引用库的重定向  就是指原本引用系统位置的库 现在转到了本软件目录下的XXX 用来打包非简单软件成为简单软件

linux很自由 为什么还要在写软件的时候用这些条条框框呢 很简单
西方的有个哲学就是 大家都随便走 基本就大家都可以别出门了 压根走不起来

简单软件会遇到哪些困难呢
这个太多了 只例举几样
1,你定义了这个东西 但是你没有话语权 别人不听你的 甚至以听你的为耻(听了你的,不就证明他逊么)
2,软件的开发者 仍然会按照自己的想法胡来 爱走么写就怎么写
3,你无法去预料某些组织的天才想法(例如gnome3)
4,各个不同的组织甚至以不兼容其他的而感到自豪 当然谁说话都不算数 所以大家都随便干
5,大家都有手头的事 所以不会有人去实现这个毫无前景的东西的

所以综上所述 这个东西只能交给一个人去做了 那就是 : 我 !
如果我做的话 肯定满足了 困难的1.2.3.4.5 所以 得出结论 简单软件这个标准永远不会被实现
看到这儿朋友 抱歉 塑造了一个空中楼阁

其实linux世界压根没有什么标准可言 实际上ubuntu中文论坛也成了一伙装B男口水骂人的地方了
当然 逻辑和和谈分为两种 逻辑和中国逻辑 和谈和中国和谈
但是这些人真的认为ubuntu很完美么 滚蛋吧
他们只是在作贱别人的基础之上来提升自己的优越感而已

那么鲁迅说过一句话 对内是暴徒的对外总是奴才
胡适接着二重唱了一句 强大的国家不是一群奴才建立的
说实话我有点寒心

deepin算是为数太少的真真切切做实事的发行版
可惜 money+人数 都成问题
可以力挽狂澜么 不知道 啊  但是仍然祝福你们 加油
Reply Favorite View the author
All Replies
cxbii
deepin
2012-11-09 23:08
#1
我看着好乱,所以没看完,反正是吐槽依赖对吧?
恩,是依赖就没我的事情了

我对于依赖.只有蹲墙角的份....我去了,别拦我
Reply View the author
sprluckguo
deepin
2012-11-10 02:13
#2
我也极度讨厌随便一个小软件就需要大量的所谓依赖,这个绝对是造成系统不稳定的一大因素,最好的软件我感觉应该是像win下的一样装完就能用,不用下载那么多的乱七八糟的东西
Reply View the author
weiminnihao9
deepin
2012-11-10 02:36
#3
装爱壁纸150k的软件就得不少依赖,虽然软件好用,不过还是有些不爽。
Reply View the author
186******98
deepin
2012-11-10 06:44
#4
一个关于简单软件的设想

这个只是个人的一厢情愿的一个想法
先来定义几个概念  
1,基础依赖 就是一个系统所拥有的库,这个库的种类全部都是已经规定好的内容,并且很长的时间都会固定不做改变,我们称之为基础依赖
2,通用图形界面接口 就是各个不同的UI为一些特定的部分所提供的相同的接口,如系统托盘什么的

一个简单的软件 是一个特殊的文件夹或者归档文件
简单软件具有以下几个特征
1,简单软件不会引用系统基础依赖之外其他系统库
2,简单软件所需要的其他库必须包含在简单软件本身里面
3,简单软件不得引用其他软件,尤其不能从shell这些系统接口来引用

如果这个可以实现的话 那么简单软件会有以下几个优势
1,永远不会出现依赖问题
2,可以在软件的编写过程中 避免已知的问题(因为环境基本是稳定的)
3,安装卸载方便 删除即可
当然也有弱势
1,编写软件的人不能随心所欲的编写了(未必不是一件好事)
2,IDE基本是空白(其实简单软件这个概念本身就是我臆造出来的)
3,实现大的功能 其实有些吃力

大部分windows软件基本都符合大部分简单软件的特征 除了一些大型游戏
但是;linux却正好相反 一个简单的小软件甚至都要求你下载n多的依赖,这些依赖有时候还会导致系统问题(不感觉很无理么?)
linux下大型游戏却大多数是简单软件 为什么呢 因为人要玩的起来才会付钱(由此可以见到一个端倪)

再者其实大部分软件都可以打包成简单的软件
例如,pps可以把自己需要的库和mplayer一起包装到一个归档 基本就是一个简单软件了 其他的软件 如群里面朋友编写的锐捷认证 就更加简单了

如何实现简单软件?其实也不难 至少简单的策略师不难的
只要用一个文本文件当做接口 指定程序的入口文件 甚至就这样 已经OK了 或者可以再这个文本文档里面 指定一些引用库的重定向  就是指原本引用系统位置的库 现在转到了本软件目录下的XXX 用来打包非简单软件成为简单软件

linux很自由 为什么还要在写软件的时候用这些条条框框呢 很简单
西方的有个哲学就是 大家都随便走 基本就大家都可以别出门了 压根走不起来

简单软件会遇到哪些困难呢
这个太多了 只例举几样
1,你定义了这个东西 但是你没有话语权 别人不听你的 甚至以听你的为耻(听了你的,不就证明他逊么)
2,软件的开发者 仍然会按照自己的想法胡来 爱走么写就怎么写
3,你无法去预料某些组织的天才想法(例如gnome3)
4,各个不同的组织甚至以不兼容其他的而感到自豪 当然谁说话都不算数 所以大家都随便干
5,大家都有手头的事 所以不会有人去实现这个毫无前景的东西的

所以综上所述 这个东西只能交给一个人去做了 那就是 : 我 !
如果我做的话 肯定满足了 困难的1.2.3.4.5 所以 得出结论 简单软件这个标准永远不会被实现
看到这儿朋友 抱歉 塑造了一个空中楼阁

其实linux世界压根没有什么标准可言 实际上ubuntu中文论坛也成了一伙装B男口水骂人的地方了
当然 逻辑和和谈分为两种 逻辑和中国逻辑 和谈和中国和谈
但是这些人真的认为ubuntu很完美么 滚蛋吧
他们只是在作贱别人的基础之上来提升自己的优越感而已

那么鲁迅说过一句话 对内是暴徒的对外总是奴才
胡适接着二重唱了一句 强大的国家不是一群奴才建立的
说实话我有点寒心

deepin算是为数太少的真真切切做实事的发行版
可惜 money+人数 都成问题
可以力挽狂澜么 不知道 啊  但是仍然祝福你们 加油

呵呵, 这位仁兄每次发帖都很长啊, 说的很有道理。
星星之火可以燎远, 我相信很多事情精兵强才是硬道理, 人多并不一定是好事。

--------------------------------
呵呵, 实在忍不住了冒一下泡, 主要是LZ写的太好了。
Reply View the author
931128
deepin
2012-11-10 07:17
#5
我个人主张自由观点 这也是我为什么选择Liunx的原因
楼上主的观点比较新潮,貌似一个英国的叫什么的来着???  提出过类似的理论,后来也不了了之   
Linux下还是各自生存(而不是互相依赖)比较实用,这样可以使系统更简单透亮
总之,我的意识就是,主张个人开发(或针对类似软件源代码进行学习改进)而不是借用   简单一句话
Reply View the author
xliang9550
deepin
2012-11-10 19:13
#6
上次想要离线安装cshell,快被依赖关系树搞崩溃了。
M$的离线安装包把所有依赖的组件都整合在一起了,而已。
Reply View the author
zodiacg
deepin
2012-11-10 19:26
#7
想法是好的,实现是蛮困难的。开源本身就自由,只有POSIX、LSB等少数几个接口标准来保证大家的互通。

M$只是看起来依赖少而已。以一个.Net为例,其实包含了很多的内容。
而Linux下一般秉承“一个程序只做好一件事情”的思想,每个库的包也只是完成一件事情,所以会显得繁杂。

之所以会有基础依赖、简单软件这样的想法,还是主要以桌面应用的思维来考虑。对于服务器应用来说,模块的分离、应用的高度定制化,相对来说也许更重要一些。基础库什么都能满足,自然也会存在冗余于需求之外的功能。想想Gentoo的USE机制就能知道,有洁癖的Linux用户还是很多的,这种模式肯定不招他们喜欢。
Reply View the author
FEI17
deepin
2012-11-10 19:41
#8
想法是好的,实现是蛮困难的。开源本身就自由,只有POSIX、LSB等少数几个接口标准来保证大家的互通。

M$只是看起来依赖少而已。以一个.Net为例,其实包含了很多的内容。
而Linux下一般秉承“一个程序只做好一件事情”的思想,每个库的包也只是完成一件事情,所以会显得繁杂。

之所以会有基础依赖、简单软件这样的想法,还是主要以桌面应用的思维来考虑。对于服务器应用来说,模块的分离、应用的高度定制化,相对来说也许更重要一些。基础库什么都能满足,自然也会存在冗余于需求之外的功能。想想Gentoo的USE机制就能知道,有洁癖的Linux用户还是很多的,这种模式肯定不招他们喜欢。

这样应该更能满足洁癖吧
依赖安装的东西 有时候并不是必要的
而且删除软件的时候依赖不会一起被删除
而如果都打包成一个包的话  就解决了这样的问题 更加满足洁癖的需要
Reply View the author
xliang9550
deepin
2012-11-10 19:43
#9
在线安装的话,会自动解析依赖关系,而总的下载量并不是很大。
离线安装的话,M$的方式优势大。
Reply View the author
zodiacg
deepin
2012-11-10 20:08
#10
[quote]想法是好的,实现是蛮困难的。开源本身就自由,只有POSIX、LSB等少数几个接口标准来保证大家的互通。

M$只是看起来依赖少而已。以一个.Net为例,其实包含了很多的内容。
而Linux下一般秉承“一个程序只做好一件事情”的思想,每个库的包也只是完成一件事情,所以会显得繁杂。

之所以会有基础依赖、简单软件这样的想法,还是主要以桌面应用的思维来考虑。对于服务器应用来说,模块的分离、应用的高度定制化,相对来说也许更重要一些。基础库什么都能满足,自然也会存在冗余于需求之外的功能。想想Gentoo的USE机制就能知道,有洁癖的Linux用户还是很多的,这种模式肯定不招他们喜欢。

这样应该更能满足洁癖吧
依赖安装的东西 有时候并不是必要的
而且删除软件的时候依赖不会一起被删除
而如果都打包成一个包的话  就解决了这样的问题 更加满足洁癖的需要[/quote]

Gentoo的USE机制能够做到如果我不喜欢KDE,那么任何有可选KDE依赖的软件在编译时不会编译KDE依赖的部分。如果我不去装硬性依赖KDE的程序,那么我的系统里一根KDE的汗毛都没有。

基础依赖库看起来解决这个问题是因为把所有人的依赖统一成了一个,就好像.Net那样。那么如果我的系统完全不需要音频的输入输出,基础依赖库里面负责这部分的内容对我来说就完全没用的。对于重度洁癖来说这就是问题了 :

一个组织良好的软件源和算法健全的包管理系统足以解决看起来非常头大的依赖问题。当然前提是在线,对于离线来说确实毫无疑问是整合的单个包更优一些。
Reply View the author
FEI17
deepin
2012-11-10 20:09
#11
在线安装的话,会自动解析依赖关系,而总的下载量并不是很大。
离线安装的话,M$的方式优势大。

其实最大的问题并不是下载量
而是依赖冲突
循环依赖
和依赖不匹配
Reply View the author
bsfmig
deepin
2012-11-11 04:01
#12
基于现状,把所有的依赖项都打包在一起是个比较好的方法。
Reply View the author
tuhaihe
deepin
2012-11-12 17:13
#13
基于现状,把所有的依赖项都打包在一起是个比较好的方法。
Reply View the author
zzz654321
deepin
2012-11-12 19:49
#14
这方面, 大家可以看看 tinycore linux, 这个发行版基本上有些以上的特征了. 有位叫'微核linux' 的网友正在上面整合了系列的发行版, 可以关注. 严重推荐
Reply View the author
xliang9550
deepin
2012-11-12 20:26
#15
我觉得还是提供包含完整依赖关系树的离线安装包较好,无需做成Windows那样即点即用。
Reply View the author