V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tool2d
V2EX  ›  编程

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

  •  
  •   tool2d · 2023-02-15 11:42:45 +08:00 · 1825 次点击
    这是一个创建于 638 天前的主题,其中的信息可能已经有所发展或是发生改变。
    记得十几年前,微软用 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
    你用吗?
    ladypxy
        2
    ladypxy  
       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   ·   实用小工具   ·   1015 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:47 · PVG 05:47 · LAX 13:47 · JFK 16:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.