由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请xiaoju和digua来讲讲COM技术吧
相关主题
转:王垠--一种新的操作系统设计长周末出去一趟,魏公公又冒头了?
现在还在“学”脚本语言的,都弱爆了Zhaoce给我们讲讲CORBA和中间件吧
Java的performance支持一下乐米钠,国人之作。
为什么Java在内置系统里争不过C++?CORBA
java里的corba是干嘛的 还有人用么?有没有人觉得restful被高估了
C++的库Multi-thread可以mutex锁资源,Multi-process怎么锁资源?
tf keras 这么多坑?what are the ways for Java processes to communicate with each other
storm俨然是下一个冉冉升起的新星啊keras or tensorflow
相关话题的讨论汇总
话题: com话题: tf话题: linux话题: api话题: unix
进入Programming版参与讨论
1 (共1页)
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。

相关主题
C++的库长周末出去一趟,魏公公又冒头了?
tf keras 这么多坑?Zhaoce给我们讲讲CORBA和中间件吧
storm俨然是下一个冉冉升起的新星啊支持一下乐米钠,国人之作。
进入Programming版参与讨论
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的锅吗?

相关主题
CORBAwhat are the ways for Java processes to communicate with each other
有没有人觉得restful被高估了keras or tensorflow
Multi-thread可以mutex锁资源,Multi-process怎么锁资源?tf还是很混乱
进入Programming版参与讨论
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给收了。

1 (共1页)
进入Programming版参与讨论
相关主题
keras or tensorflowjava里的corba是干嘛的 还有人用么?
tf还是很混乱C++的库
亚麻决定支持mxnettf keras 这么多坑?
[bssd]汇报一下Julia进展storm俨然是下一个冉冉升起的新星啊
转:王垠--一种新的操作系统设计长周末出去一趟,魏公公又冒头了?
现在还在“学”脚本语言的,都弱爆了Zhaoce给我们讲讲CORBA和中间件吧
Java的performance支持一下乐米钠,国人之作。
为什么Java在内置系统里争不过C++?CORBA
相关话题的讨论汇总
话题: com话题: tf话题: linux话题: api话题: unix