w***g 发帖数: 5958 | 1 微软的COM技术有啥牛x之处,为什么linux下对应的东西没有流行起来? |
x****u 发帖数: 44466 | 2 我觉得COM对于程序员的意义在于,它实际上是整个Windows系统的上层API接口,底层
的访问文件注册表进程互斥之类的用Win32 API以外,COM可以访问一切高级功能,比如
Active Directory域,DirectX,WMI系统信息,各种桌面组件,高级的打印,复制,多
媒体嵌入,就连最新的Windows Store app底层api也是基于COM的。
Linux没有COM的原因就很明显了,因为Linux只在Win32 API这个层级上互相兼容,上层
方案无数。上层用QT,GTK或者Android都是Linux,而通信方法则完全不一样。
OSX/iOS上的Cocoa配上C和ObjC,可以视为COM的等价品。
COM最牛b的地方在于MS把自己遇到过的坑都提供了解决方案啊,比如多线程问题用套件
线程,IPC用DCOM调用,脚本语言和C++通讯用Automation。组件可以只发布一个DLL,
所有信息都在内置的TLB资源里,VC一个#import可以自动查找TLB,生成头文件和库文
件然后包含进来。
【在 w***g 的大作中提到】 : 微软的COM技术有啥牛x之处,为什么linux下对应的东西没有流行起来?
|
c****3 发帖数: 10787 | 3 Linux远程调用用CORBA,debug太费劲,都是二进制的。现在是XML-RPC,比CORBA好,
文本的,可以直接看,所以CORBA就快淘汰了。
COM算是Windows legacy技术,和CORBA差不多,好像也不发展了 |
x****u 发帖数: 44466 | 4 COM有发展,在Win8的store app里面还加了新API。
DCOM和Restful等的区别是DCOM不管你后台怎么实现,程序只要把数据类型控制在
automation的类型里,OS选择最快的方法通讯。协议本身是个黑匣子但你也可以自己重
做一套,不过99%的人比如我用COM的出发点就是搭微软顺风车的。
【在 c****3 的大作中提到】 : Linux远程调用用CORBA,debug太费劲,都是二进制的。现在是XML-RPC,比CORBA好, : 文本的,可以直接看,所以CORBA就快淘汰了。 : COM算是Windows legacy技术,和CORBA差不多,好像也不发展了
|
w***g 发帖数: 5958 | 5 我可不可以理解为,windows软件因为不开源,所以需要二进制兼容的API。
linux因为开源,有源代码级的API就可以了,所以也不是特别需要二进制的API。
对应的, windows里有dll hell。但是linux就没有so hell。
【在 x****u 的大作中提到】 : 我觉得COM对于程序员的意义在于,它实际上是整个Windows系统的上层API接口,底层 : 的访问文件注册表进程互斥之类的用Win32 API以外,COM可以访问一切高级功能,比如 : Active Directory域,DirectX,WMI系统信息,各种桌面组件,高级的打印,复制,多 : 媒体嵌入,就连最新的Windows Store app底层api也是基于COM的。 : Linux没有COM的原因就很明显了,因为Linux只在Win32 API这个层级上互相兼容,上层 : 方案无数。上层用QT,GTK或者Android都是Linux,而通信方法则完全不一样。 : OSX/iOS上的Cocoa配上C和ObjC,可以视为COM的等价品。 : COM最牛b的地方在于MS把自己遇到过的坑都提供了解决方案啊,比如多线程问题用套件 : 线程,IPC用DCOM调用,脚本语言和C++通讯用Automation。组件可以只发布一个DLL, : 所有信息都在内置的TLB资源里,VC一个#import可以自动查找TLB,生成头文件和库文
|
d***a 发帖数: 13752 | 6 我用过OLE和早期的COM。这个东东在Windows上挺有用,但也没什么特别牛x之处,我觉
得。有点类似于Unix下各种库的作用。它是微软自己搞的,只能在微软系统下用。Unix
/Linux社群,没什么动力用它吧。
【在 w***g 的大作中提到】 : 微软的COM技术有啥牛x之处,为什么linux下对应的东西没有流行起来?
|
c****3 发帖数: 10787 | 7 是吗,我以为XML-RPC出来以后,就不发展了。
微软的API文档做的比Linux的好太多了,而且COM是操作系统自带的。
【在 x****u 的大作中提到】 : COM有发展,在Win8的store app里面还加了新API。 : DCOM和Restful等的区别是DCOM不管你后台怎么实现,程序只要把数据类型控制在 : automation的类型里,OS选择最快的方法通讯。协议本身是个黑匣子但你也可以自己重 : 做一套,不过99%的人比如我用COM的出发点就是搭微软顺风车的。
|
x****u 发帖数: 44466 | 8 我觉得组件ABI对于Linux也同样重要啊,不应该动不动就build world,这个事情是
unix带来的坏传统,Linux当年glibc一升级简直山崩地裂的。
不必要的rebuild我看分两种,一种是不做省时间的,如开源工具,另一种是不可能做
的,如闭源商业软件,驱动或游戏
【在 w***g 的大作中提到】 : 我可不可以理解为,windows软件因为不开源,所以需要二进制兼容的API。 : linux因为开源,有源代码级的API就可以了,所以也不是特别需要二进制的API。 : 对应的, windows里有dll hell。但是linux就没有so hell。
|
d***a 发帖数: 13752 | 9 不不,Unix下一样需要有标准的ABI(Application binary interface)。虽然是开源
,但程序的运行环境中,程序看到的interface是ABI。
【在 w***g 的大作中提到】 : 我可不可以理解为,windows软件因为不开源,所以需要二进制兼容的API。 : linux因为开源,有源代码级的API就可以了,所以也不是特别需要二进制的API。 : 对应的, windows里有dll hell。但是linux就没有so hell。
|
x****u 发帖数: 44466 | 10 Linux也有DLL hell啊,现在的docker不就是一个解决方案?
【在 w***g 的大作中提到】 : 我可不可以理解为,windows软件因为不开源,所以需要二进制兼容的API。 : linux因为开源,有源代码级的API就可以了,所以也不是特别需要二进制的API。 : 对应的, windows里有dll hell。但是linux就没有so hell。
|
|
|
w***g 发帖数: 5958 | 11 XXX-RPC时代感觉大家追求一个“调用子程序”的感觉。
包括thrift和gRPC,其实也还是一个套路。
但是现在好像更多的人想开了,觉得http其实是一个超越语言更通用的标准,
于是基于HTTP的restful API就流行起来了。
【在 c****3 的大作中提到】 : 是吗,我以为XML-RPC出来以后,就不发展了。 : 微软的API文档做的比Linux的好太多了,而且COM是操作系统自带的。
|
w***g 发帖数: 5958 | 12 行了,你俩意见一致了。
【在 d***a 的大作中提到】 : 不不,Unix下一样需要有标准的ABI(Application binary interface)。虽然是开源 : ,但程序的运行环境中,程序看到的interface是ABI。
|
x****u 发帖数: 44466 | 13 COM主要优点是特别方便
比如你手里有个python程序,里面有个class很好,只要加三四行代码,就可以从VC或
者其它脚本语言里IPC调用
Unix
【在 d***a 的大作中提到】 : 我用过OLE和早期的COM。这个东东在Windows上挺有用,但也没什么特别牛x之处,我觉 : 得。有点类似于Unix下各种库的作用。它是微软自己搞的,只能在微软系统下用。Unix : /Linux社群,没什么动力用它吧。
|
d***a 发帖数: 13752 | 14 我觉得Unix大多数社群,对object-oriented的做法似乎有保留态度,仍然是数据结构+
函数的思路。这样的话,对COM这样的搞法,自然就兴趣不大了。
这是我个人的看法,也不一定对。
【在 x****u 的大作中提到】 : COM主要优点是特别方便 : 比如你手里有个python程序,里面有个class很好,只要加三四行代码,就可以从VC或 : 者其它脚本语言里IPC调用 : : Unix
|
x****u 发帖数: 44466 | 15 Unix社区有个传统是崇尚把基于文本的命令行工具用脚本组合起来,但是这么搞小规模
还行,如果是几千几万这个级别上每个工具都被启动,终结,数据转成文本再转成二进
制就是很大开销
所以MS搞了个powershell,允许用脚本工具直接传递二进制数据对象,而且脚本后台可
以用.net虚拟机跑。
构+
【在 d***a 的大作中提到】 : 我觉得Unix大多数社群,对object-oriented的做法似乎有保留态度,仍然是数据结构+ : 函数的思路。这样的话,对COM这样的搞法,自然就兴趣不大了。 : 这是我个人的看法,也不一定对。
|
S*******e 发帖数: 525 | 16 公司现在的标准系统是redhat,装tensorflow 说 glibc太老(大公司,系统升级慢)
。公司自己有一套自己的装配方法,那个重建tensorflow的印度佬说真难弄。glibc是
不是还是一个头疼的问题?
【在 x****u 的大作中提到】 : 我觉得组件ABI对于Linux也同样重要啊,不应该动不动就build world,这个事情是 : unix带来的坏传统,Linux当年glibc一升级简直山崩地裂的。 : 不必要的rebuild我看分两种,一种是不做省时间的,如开源工具,另一种是不可能做 : 的,如闭源商业软件,驱动或游戏
|
x****u 发帖数: 44466 | 17 tf的话wdong是专家啊
话说好像有docker的装法?
【在 S*******e 的大作中提到】 : 公司现在的标准系统是redhat,装tensorflow 说 glibc太老(大公司,系统升级慢) : 。公司自己有一套自己的装配方法,那个重建tensorflow的印度佬说真难弄。glibc是 : 不是还是一个头疼的问题?
|
w***g 发帖数: 5958 | 18 我算不上专家。centos 7和ubuntu 14.04以后TF都没问题,我现在都同时有
机器在跑。之前我干的两家用centos 5/6的,去年年底都让我强迫重装7了。
生命苦短,经不起折腾。主要是你在非常见配置上就是出了问题,别人想
重现都难,更别提帮你解决了。不光是编译起来的问题。数值算法的恶心
之处是有时候程序运行一切正常出来的结果对不上,调都不知道从哪儿调起。
我碰到过几次TF不收敛的情况,基本上只有干瞪眼。后来通过更新软件版本
解决。
【在 x****u 的大作中提到】 : tf的话wdong是专家啊 : 话说好像有docker的装法?
|
x****u 发帖数: 44466 | 19 跟风问两个TF的问题:)
TF CPU和TF GPU的权值混用,出错率会高多少?
我把keras后端设成TH用TF权值,发现大部分都错,这是cuDNN的锅吗?
【在 w***g 的大作中提到】 : 我算不上专家。centos 7和ubuntu 14.04以后TF都没问题,我现在都同时有 : 机器在跑。之前我干的两家用centos 5/6的,去年年底都让我强迫重装7了。 : 生命苦短,经不起折腾。主要是你在非常见配置上就是出了问题,别人想 : 重现都难,更别提帮你解决了。不光是编译起来的问题。数值算法的恶心 : 之处是有时候程序运行一切正常出来的结果对不上,调都不知道从哪儿调起。 : 我碰到过几次TF不收敛的情况,基本上只有干瞪眼。后来通过更新软件版本 : 解决。
|
w***g 发帖数: 5958 | 20 我还没到指定CPU GPU混用这层次。答不上来。
不同框架权值几乎肯定是不兼容的,就是碰运气。
keras不推荐。还不如直接用TF,或者TF和TH都学。
主要是TF太flexible了,我觉得很爽。
比如单独训练的几个model(包括结构和权重)存下来以后,
全都load进来拼成一个更大的model。
我手写network会用tf.contrib.slim。
【在 x****u 的大作中提到】 : 跟风问两个TF的问题:) : TF CPU和TF GPU的权值混用,出错率会高多少? : 我把keras后端设成TH用TF权值,发现大部分都错,这是cuDNN的锅吗?
|
|
|
x****u 发帖数: 44466 | 21 TF这几天升级有点猛啊
我是开始看了TH,不过例子写的太难读了,再看Keras发现它实现的比我能想到的包装
还漂亮,就跳了船
MXNet怎么样?最近也被pip给收了。
【在 w***g 的大作中提到】 : 我还没到指定CPU GPU混用这层次。答不上来。 : 不同框架权值几乎肯定是不兼容的,就是碰运气。 : keras不推荐。还不如直接用TF,或者TF和TH都学。 : 主要是TF太flexible了,我觉得很爽。 : 比如单独训练的几个model(包括结构和权重)存下来以后, : 全都load进来拼成一个更大的model。 : 我手写network会用tf.contrib.slim。
|
d***a 发帖数: 13752 | 22 这个观点在很大程度上是不对的,好象王垠这么说过?:)
不吵这个。简单地说,在高性能计算中,大量的数据交换,肯定是二进制的。现在的高
性能计算,差不多都是在Unix类系统上做的,微软一直想打入,但没有成功。
【在 x****u 的大作中提到】 : Unix社区有个传统是崇尚把基于文本的命令行工具用脚本组合起来,但是这么搞小规模 : 还行,如果是几千几万这个级别上每个工具都被启动,终结,数据转成文本再转成二进 : 制就是很大开销 : 所以MS搞了个powershell,允许用脚本工具直接传递二进制数据对象,而且脚本后台可 : 以用.net虚拟机跑。 : : 构+
|
w***g 发帖数: 5958 | 23 是的。我12.10用了有一阵了,暂时不敢动。我的计划是以后凡是
要上线的全都得进nvidia-docker。
mxnet应该也不差吧。不过只能选一个的话我就无脑选TF了。
用户体验就是很多我觉得比较特殊的需求,人家也都已经给实现好了。
【在 x****u 的大作中提到】 : TF这几天升级有点猛啊 : 我是开始看了TH,不过例子写的太难读了,再看Keras发现它实现的比我能想到的包装 : 还漂亮,就跳了船 : MXNet怎么样?最近也被pip给收了。
|
S*******e 发帖数: 525 | 24 在微信一个国内的群里,看到有人说Keras把TF/TH上包装得很好用。wdong大牛恐用
Keras会漏掉TF的精华吧?
ML对初学者更难,就像wdong说的,结果不知对错,连他那样的大牛也不知算不出来是
怎么回事,可看坑深啊。还要谢谢wdong上次帮我检查的线性回归的事(那可是最基本
的,这写书的几个人不知道错。我在stackoverflow上问也没人能答。。。有的还怪我
问的问题不当,说那儿不是codereview. 气人哪:-)
【在 x****u 的大作中提到】 : TF这几天升级有点猛啊 : 我是开始看了TH,不过例子写的太难读了,再看Keras发现它实现的比我能想到的包装 : 还漂亮,就跳了船 : MXNet怎么样?最近也被pip给收了。
|