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

Xamarin 的死掉的主因恐怕不是微软

  •  
  •   ShikiSuen · 311 天前 · 5291 次点击
    这是一个创建于 311 天前的主题,其中的信息可能已经有所发展或是发生改变。

    微软迟早要全盘切换到 dotNET MAUI 。然而,论及这次宣布放弃 Xamarin 的决定的原因,窃以为 Xamarin 的死掉恐怕与 Apple 重写 Foundation 有关。

    Apple 这次彻底用 Swift 重写 Foundation ,接下来要重写的可能会是整个 Cocoa 。而 Xamarin 高度依赖 C# 与 Objective-C 的绑定,且 C# 与 Swift 有生殖隔离。到现在为止,都还没有任何一个除了 RemObjects 以外的途径可以让 C# 与 Swift 彼此直接互相利用……只是这种跨语言利用是基于 .NET Core 以及 Windows 平台的 .NET Framework 的、无法用于 Apple 生态圈。就算是 macOS 系统下可以用 RemOjbects 的工具以 C# 直接做 Cocoa 编程,那也是与 Objective-C 版的 Foundation & Cocoa 对接的,同样要面对本文一开始提到的难题。

    48 条回复    2023-06-23 14:35:41 +08:00
    timothyye
        1
    timothyye  
       311 天前   ❤️ 2
    微软在历史进程上有几大失败:Windows Phone 干不过安卓, .NET Framework 跨平台太晚,接下来又是 Xamarin...
    felixlong
        2
    felixlong  
       311 天前   ❤️ 1
    这个逻辑不通啊。MAUI 不也是 C#吗? Xamarin 如果有问题 MAUI 不照样有。
    ShikiSuen
        3
    ShikiSuen  
    OP
       311 天前   ❤️ 1
    Xamarin 至少允许 Cocoa App 用上 .net ,某些任务跑起来效率比 Swift 5 快很多。
    现在 Apple 重写的 Foundation 注定是不会对 Intel mac 有足够优化的、而是专注于 Apple Silicon 。

    P.S.: 我没用过 MAUI ,好像 .net MAUI App 在 mac 系统下只能写成 Catalyst App ?
    ShikiSuen
        4
    ShikiSuen  
    OP
       311 天前
    @felixlong Xamarin 相当于给 Objective-C Foundation & Cocoa 的所有 API 翻译出了 C# 版本(除了 InputMethodKit 等少数特种领域模组没有翻译)。
    wanguorui123
        5
    wanguorui123  
       311 天前 via iPhone   ❤️ 1
    微软做啥事都想搞技术垄断,往往结果是起了个大早赶了个晚集。
    x77
        6
    x77  
       311 天前
    拖上 .NET 感觉不太好,太沉重。
    forgottencoast
        7
    forgottencoast  
       311 天前
    @wanguorui123
    "微软做啥事都想搞技术垄断" 这个结论是怎么得出来的?有证据吗?
    ljrdxs
        8
    ljrdxs  
       311 天前
    @ShikiSuen MAUI 为何兼容 Swift 重写?它也是 C#
    ShikiSuen
        9
    ShikiSuen  
    OP
       311 天前
    @ljrdxs MAUI 的整个介面绘制相当于 SwiftUI 的对等替代,但不是「 SwiftUI 的 C# Port 」。
    wanguorui123
        10
    wanguorui123  
       311 天前
    @forgottencoast J#/C#/Silverlight/WPF/Blazor/Windows CE/SQL Server 哪个不是和 WIndows 平台绑定的
    wanguorui123
        11
    wanguorui123  
       311 天前
    @forgottencoast WIndows 不支持真正的多用户隔离,导致无法实现容器技术
    wanguorui123
        12
    wanguorui123  
       311 天前
    @forgottencoast 说白了想搞技术垄断就开发者和企业就很难买单和推广
    forgottencoast
        13
    forgottencoast  
       311 天前   ❤️ 2
    @wanguorui123
    你说的这么一堆东西里面,C#,Blazor ,SQL Server 都不是和 Windows 平台绑定得。
    你的这些见识落伍了,还以为你会有什么真知灼见呢,没必要继续讨论下去了。
    roundgis
        14
    roundgis  
       311 天前 via Android
    maui 也不能用 jetpack compose

    除非像 flutter 自己劃 不然無解
    wanguorui123
        15
    wanguorui123  
       311 天前 via iPhone
    @forgottencoast 你知道吃一堑长一智吗?
    wanguorui123
        16
    wanguorui123  
       311 天前 via iPhone
    @forgottencoast 现在没多少公司陪微软玩了
    wanguorui123
        17
    wanguorui123  
       311 天前 via iPhone
    @forgottencoast 除了必须要考虑在 Windows 上运行的软件外,现在基本上没公司不用开源和跨平台免费的技术去做开发了
    Chad0000
        18
    Chad0000  
       311 天前
    @wanguorui123
    非要这么极端么?这么说也别再用 Office ,Windows ,GitHub ,VSCode ,ChatGPT 了吧。
    HaroldFinchNYC
        19
    HaroldFinchNYC  
       311 天前
    @wanguorui123 我以为你说的是 google
    BeautifulSoap
        20
    BeautifulSoap  
       311 天前 via Android   ❤️ 3
    有一说一,.NET 和 Xamarin 这名字取的是真失败
    yolee599
        21
    yolee599  
       311 天前 via Android   ❤️ 1
    微软总是喜欢一个东西快凉了弃坑,让追随他的人不知所措,太难受了,比如 VB6.0 ,WP ,WinForms
    zhongbeyond
        22
    zhongbeyond  
       311 天前 via Android
    我认为跨平台产品只能适合那种简单项目,用户规模上来,还是需要用 native 实现
    wanguorui123
        23
    wanguorui123  
       311 天前 via iPhone
    @Chad0000 这不是极端吧,微软的授权费很贵,很多企业不得不用免费的,就说 Office 吧,很多人选择 WPS 也就是为了省钱
    lza11111
        24
    lza11111  
       311 天前
    @wanguorui123 1. .net 开源跨平台 2. WPS 企业版并不比 M365 便宜多少
    agagega
        25
    agagega  
       311 天前
    Objective-C 虽然有 Runtime 但不是托管语言,C#既然能和它桥接那肯定也能和 Swift 桥接(尽管复杂度要高太多)。而且这个问题 C#有那其他语言也会有,说白了 Apple 就没想给其他语言的桥接提供便利,和之前抛弃 OpenCL 一样,属于翅膀硬了要单飞的行为。

    而且大部分跨平台 UI 框架都不是套原生 toolkit API 实现的吧? SwiftUI 自己都还没成熟,那套 API/ABI 换任何一个语言封装其他都折腾死人。

    更何况 Swift 重写 Cocoa 说不定还得等个十年,SwiftUI 只是推出了新的 MVVM 范式,并不是要完全对标取代 Cocoa. 今年的 SwiftData 也不是用 Swift 重写的 CoreData ,只是额外封装了一层。Apple 先后搞出 Catalyst 和 SwiftUI ,说明 Cocoa/AppKit 在它眼里就是遗留 API ,只是因为确实还很有用所以还留着。

    微软的技术还是更适合有明确开发目标的刚需型企业用户,想开发跨平台软件的个人开发者用这个,想不出有多少优势。
    Jirajine
        26
    Jirajine  
       311 天前   ❤️ 6
    @forgottencoast c#是开源跨平台的,但它的 debugger 不是。你软就喜欢整这种 it's open for everyone,but only useful for clients 的活,真当别人傻,一直吃这一套。
    cocomiko
        27
    cocomiko  
       311 天前
    你这头像还以为是在米游社
    Chad0000
        28
    Chad0000  
       311 天前
    @wanguorui123
    授权贵,人工不是钱么?我这边大部分企业直接上微软全家桶了,中小企业也上,大家都用 Teams ,用 ADO ,如果你想折腾也不是不行,但人力更贵免费的也没保障。想想这些国内软件为啥发展这么慢,付费习惯一直没起来,大家都折腾,都卷,于是都没挣到钱。
    MengiNo
        29
    MengiNo  
       311 天前 via Android   ❤️ 1
    @Chad0000 难道核心不正是在于国内人力并不值钱。
    nikenidage1
        30
    nikenidage1  
       311 天前   ❤️ 1
    不是,xamarin 没死掉啊,只是改名叫 maui 了而已。。。。。
    xamarin 是微软收购来的,揉一揉,变成了 maui
    ShikiSuen
        31
    ShikiSuen  
    OP
       311 天前
    @cocomiko 抽到淫狼了太高兴了就换几天肖像。
    wanguorui123
        32
    wanguorui123  
       311 天前
    @Chad0000 不要洗,以前微软的软件是真贵,比如:VS 开发环境一个授权就要上万,Ofiice 全家桶买断也不便宜,SQL Server 更不便宜,Windows Phone 开发者的授权费也不便宜,Windows Server 2000-2008 的授权费也不便宜
    wanguorui123
        33
    wanguorui123  
       311 天前
    @Chad0000 最近几年微软开始上云了,学会搞订阅会员制稍微让人感觉便宜了,其实也不便宜。很多开发软件公司对成本和可控性也比较敏感,自然也不带微软玩了,所以微软的很多优秀技术都半途而废了。
    nikenidage1
        34
    nikenidage1  
       311 天前
    @wanguorui123 我看也不是人家洗啊,是你无脑黑,人家解释一下而已
    hez2010
        35
    hez2010  
       311 天前 via Android
    @x77 冷知识: .net 运行时加核心库体积比 v8 还小。
    Chad0000
        36
    Chad0000  
       310 天前 via iPhone
    @wanguorui123
    打了很多想分享给你但提示我发布这个内容需要注册满 1012 天

    根本不可能有敏感字,手机打字累,中文环境太糟糕了👎 ,我不想在 V 站上投入精力了,不值得。
    wanguorui123
        37
    wanguorui123  
       310 天前 via iPhone
    @nikenidage1 我怎么就无脑黑了,微软的授权费高,徒增成本还不一定有开源软件好用这是事实。
    zjsxwc
        38
    zjsxwc  
       310 天前
    @Chad0000
    搞得上了微软全家桶后就不再需要人工费似的,
    搞得用了开源就一定会很累要加班似的。
    nikenidage1
        39
    nikenidage1  
       310 天前
    @wanguorui123 你最开始这句就是无脑黑啊
    “J#/C#/Silverlight/WPF/Blazor/Windows CE/SQL Server 哪个不是和 WIndows 平台绑定的”
    wanguorui123
        40
    wanguorui123  
       310 天前 via iPhone
    @nikenidage1 本来就是 Windows 捆绑销售的,你自己了解下历史,现在微软改已经晚了
    wanguorui123
        41
    wanguorui123  
       310 天前 via iPhone
    @nikenidage1 现在微软留了些烂摊子,让某些公司苦不堪言,比如:Sliverlight 、WPF 、WinCE
    wanguorui123
        42
    wanguorui123  
       310 天前 via iPhone
    @nikenidage1 这个 Xamarin 不知道会不会是微软烂摊子,只能让时间证明
    mmdsun
        43
    mmdsun  
       310 天前 via iPhone
    @wanguorui123
    Windows 也有原生的容器,只不过都是在用 hyper-v ,Win 容器用的少。微软的 Azure 云,构建在 Windows 之上,容器相关的技术从很早就开始在 Win 上有了
    mmdsun
        44
    mmdsun  
       310 天前 via iPhone
    @wanguorui123
    Win 系统上,类似的比如 Job Objects 用来管理和限制进程组的资源使用,包括 CPU 、内存、磁盘。
    Silos 提供了对进程、用户、文件系统、注册表和网络的隔离,类似于 Linux 中的 Namespaces 。
    wanguorui123
        45
    wanguorui123  
       310 天前
    @mmdsun Windows 的容器也是残废版的容器吧限制很多,没有实用价值
    wanguorui123
        46
    wanguorui123  
       310 天前
    @mmdsun Windows 容器自身就存在兼容性问题,现在微软都用 WSL2 了,但是还是不好用
    wanguorui123
        47
    wanguorui123  
       310 天前
    @mmdsun 微软真是搬起石头自己脚,这么多年了多用户隔离都做不好
    oxromantic
        48
    oxromantic  
       310 天前
    @wanguorui123 附议,wsl2 纯粹就是自欺欺人了,集成 vm 使用再怎么便利他也是 vm
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1442 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:15 · PVG 01:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.