都在讨论编程,我也想问一句,为什么微软会选择放弃 COM 和 C++呢?

2023-02-15 11:42:45 +08:00
 tool2d
记得十几年前,微软用 COM 组件化的方式精妙构建了 Windows 系统。然而时至今日,官方似乎都在大力推崇 C#开发?

就连 VS 以前的 COM 插件,现在都改成了 C#插件模式。还鼓励大家改用 VSCODE 写代码。

总觉得 Windows 的成功,COM 技术功不可没,怎么就落寞了呢。
1687 次点击
所在节点    编程
11 条回复
sun1991
2023-02-15 11:56:47 +08:00
你用吗?
ladypxy
2023-02-15 11:58:48 +08:00
因为微软主推.net 啊。 .com 这种老旧的模式就放弃了。
tool2d
2023-02-15 12:01:43 +08:00
@sun1991 用啊,我在 github 上下载很多经典 Windows 软件,里面工程都在用的。

可惜这些 Windows 软件大部分都半途而废,想着能不能改改,加点点功能。
tool2d
2023-02-15 12:06:26 +08:00
@ladypxy .net 国外还可以,国内似乎也没有火起来。
kop1989smurf
2023-02-15 12:16:20 +08:00
COM 组件我个人理解不算是放弃,现役的 dll 是 COM 组件定义的子集。对于绝大多数的软件工程需求,dll 已经足矣覆盖了,所以需求并不是很强。COM 组件的不限制语言的特质,在如今的软件工程思路下,价值也没有大到能忍受他额外的工作量。

c++同理,如今很多对性能敏感的游戏服务器端,依然是 C++来开发。只是目前因为设备硬件性能的提升,大部分的业务需求对性能的压榨没那么极致。所以导致 C++中“C”的那部分负担大于收益。
agagega
2023-02-15 12:16:30 +08:00
COM 和后来的 .NET 也有关系吧(至少是 . NET Framework ,Core 怎么样不知道),像是用 COM 实现的 .NET

失败的问题大概是 COM 脑洞开太大了,花了大力气去解决一个似乎没有那么重要的问题。看看隔壁 Java ,微软似乎想通了,搞出了 .NET

其实 .NET 野心一开始也很大,和 Vista 那堆构想混在一起,好在后来及时收手
Cloutain
2023-02-15 13:57:17 +08:00
COM 没有放弃,COM 依然是 Windows 重要的基石,而且你会发现不少 api 都是以 COM 的形式开放给用户的。现在有个好处就是,使用到 COM 接口提供的功能不用那么麻烦了,比如.NET
wanguorui123
2023-02-15 14:26:45 +08:00
移植性不好吧
jones2000
2023-02-15 14:30:11 +08:00
主要是 c++的开发人开发人少了, 多了一堆只会调用插件的人,原来 4-5 年能培养出来 c++初级的, 现在 4-5 年只能培养出来一个调包侠, 没人愿意从底层开始写起了。 除非这个 com 组件是能给公司带来收益的, 还会继续开发。
tool2d
2023-02-15 14:40:47 +08:00
@wanguorui123 我觉得一个商业公司,没必要过多考虑平台可移植性。

互联网用户总量是固定的,改用 MAC/LINUX 多了一些人,那么用 Windows 自然就会少一些人。

COM 是门槛和复杂度是比较高,但是开发者平均水平也是比较高的。不能因为给 C#新人轻松入门,就放弃原本的坚持。
wanguorui123
2023-02-15 15:37:56 +08:00
@tool2d 微软现在做云服务,自然自家产品要考虑移植性,C#开发组件门槛其实也并不低,但是移植性很好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/916279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX