找回密码
 立即注册
搜索
查看: 3195|回复: 14

[软件] 苹果的metal api甚至不支持C++,锁死开发者生态有什么好处吗

[复制链接]
头像被屏蔽
     
发表于 2022-1-24 09:54 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-1-24 10:03 | 显示全部楼层
是不支持c,还是不支持c++。objc不都是对c的封装吗
回复

使用道具 举报

     
发表于 2022-1-24 10:09 | 显示全部楼层
外行又来指指点点了
回复

使用道具 举报

     
发表于 2022-1-24 10:13 | 显示全部楼层
虽然Objective-C是C的超集,但它不是C的基本类型为第一级的对象。
异同
Objective-C同C++的异同:
和C++不同,Objective-C不支持运算符重载(它不支持ad-hoc多型)。亦与C++不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。
Objective-C和C++的比较
单一继承:
和Java、Smalltalk一样,Objective-C不支持多重继承,而C++语言支持多重继承。
动态:
Objective-C是动态定型(dynamicaly typed),它的类库比C++容易操作。Objective-C 在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。
C++ 跟从面向对象编程里的Simula 67(一种早期OO语言)学派,而Objecive-C属于Smalltalk学派。
在C++里,对象的静态类型决定你是否可以发送消息给它,而对Objective-C来说,由动态类型来决定。Simula 67学派更安全,因为大部分错误可以在编译时查出。 而Smalltalk学派更灵活,比如一些Smalltalk 看来无误的程序拿到Simualr67那里就无法通过。
从很多方面来看,C++和Objective-C的差别,与其说是技术上的, 不如说是思维方式上的。你是否想更安全而舍弃灵活性?Simular67学派的支持者称既然程序设计出色何必再要灵活性,而 Smalltalk学派则称为了灵活可以容忍运行时多出错。
回复

使用道具 举报

     
发表于 2022-1-24 10:16 来自手机 | 显示全部楼层
OC就算了,Swift有啥门槛

—— 来自 Xiaomi Redmi K30 5G, Android 11上的 S1Next-鹅版 v2.5.2
回复

使用道具 举报

     
发表于 2022-1-24 10:37 | 显示全部楼层
https://developer.apple.com/metal/cpp/

Metal-cpp is a low-overhead C++ interface for Metal that helps developers add Metal functionality to graphics apps, games, and game engines that are written in C++.
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-1-24 10:57 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2022-1-24 11:00 | 显示全部楼层
你肤浅了,metal该骂的可不是语言层面的东西
回复

使用道具 举报

     
发表于 2022-1-24 11:18 | 显示全部楼层
实际开发过苹果下使用Metal和Window下使用Dx的桌面应用, Metal的的确不支持cpp, 但是Metal的shader的呢, 自称是基于C++14的, 实际使用下来感觉是延续了苹果的一贯风格, 爱吹逼,没卵用.
其实是不是cpp影响不大, 如果是cpp资深开发, 现学个其他语言挺快的, 就是框架不太好抽象到统一的接口
Metal它那个像vulkan或者Dx12一样的command list的api风格, 说实话和以前的图形API挺不一样的, 但是和Vulkan,Dx不一样,用的人太少,有问题很难找到讨论,官方的文档不详细, 用的人少才是真正阻碍metal发展的.
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2022-1-24 13:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2022-1-24 13:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-1-24 13:31 | 显示全部楼层
METAL搞了这么多年还这么粪 属于扶不上墙的典型

—— 来自 S1Fun
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-1-24 13:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-1-24 20:38 来自手机 | 显示全部楼层
还好吧,.mm又不是不能和.cpp混编,调用metal的地方用.mm就行了,.h都不用改。而且我觉得metal算是设计的比较好的了,至少比dx12好。

----发送自 OPPO PCLM10,Android 11
回复

使用道具 举报

     
发表于 2022-1-24 20:42 来自手机 | 显示全部楼层
metal不仅仅在于文档全,而是文档写的东西大概率是对的,因为是苹果自己的硬件。不像安卓gl或者vk,一样的代码不同厂家机器跑着就是可能不一样。

----发送自 OPPO PCLM10,Android 11
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-14 21:40 , Processed in 0.078550 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表