都在讨论编程,我也想问一句,为什么微软会选择放弃 COM 和 C++呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tool2d
V2EX    编程

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

  •  
  •   tool2d 2023-02-15 11:42:45 +08:00 2240 次点击
    这是一个创建于 1044 天前的主题,其中的信息可能已经有所发展或是发生改变。
    记得十几年前,微软用 COM 组件化的方式精妙构建了 Windows 系统。然而时至今日,官方似乎都在大力推崇 C#开发?

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

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

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

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

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

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

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

    COM 是门槛和复杂度是比较高,但是开发者平均水平也是比较高的。不能因为给 C#新人轻松入门,就放弃原本的坚持。
    wanguorui123
        11
    wanguorui123  
       2023-02-15 15:37:56 +08:00
    @tool2d 微软现在做云服务,自然自家产品要考虑移植性,C#开发组件门槛其实也并不低,但是移植性很好
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2775 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 14:40 PVG 22:40 LAX 06:40 JFK 09:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86