1 今年WWDC,我们看见了苹果的空间计算设备,visionOS也支持了c c++ API.
这有什么好处呢,不是说能够吸引更多c c++开发者加入苹果开发者阵营,而是我们过去的很多软件,可以轻松对接到苹果的头显设备,让我们的软件支持苹果头显全新的交互。
例如我们过去的游戏引擎,用c#开发,或者别的语言开发的,那我们就可以很轻松写一个c c++版本的插件,让游戏引擎支持ARKit空间计算,以及交互逻辑。
过去开发的3D建模设计软件的,数字绘画软件的,大概率这种软件用的是c++开发,我也很容易将我的软件适配新的苹果头显设备。过去一些著名的U框架啊,也很容易轻松适配苹果头显的交互逻辑。如今我们看见了一个更加开放的苹果,对于开发者这在过去是不可想象的。
2 苹果iOS开发左手swift右手 c c++
苹果公司从08年开始,主推自己的object-c,oc其实类似c++,在c语言基础上实现了一套面相对象的框架。后来呀,oc慢慢发展自动内存回收,也是逐渐想降低iOS开发者的门槛。经过不断发展,oc其实后来已经非常简单易用了,但是苹果还是觉得oc这门语言啊,过于复杂,于是开始搞swift这种类似python的脚本语言。
苹果公司很多新的框架,主推的开发语言都是swift。 比如苹果从2014年开始推的自家取代OpenGL下一大图形API Metal, 首选的开发语言都是swift。 但是swift这种全新的开发语言有个什么问题呢,每年都在变。一直到去年的swift5.0才慢慢稳定。一门开发语言一直变,意味着你去年写的代码,升级到几年的版本可能就用不了了。这是让开发者很头疼的。
同时整个行业,在图形学领域,基本上都是c++的天下,过去二三十年,3D图形学领域,大量的第三方库,框架,工业级软件,都是c++。 于是你就会发现,苹果推自家的Metal,从2014年开始,快10年了,很难推动。 很多行业级别的软件比如Blender,之前都想用Vulkan的跨平台解决方案。苹果最后自己着急了,开始自己出钱,出程序员,出设备,给Blender写基于Metal的渲染器。
同时在2022年,正式开放了c++版本的Metal,一向高高在上的苹果,也发现自己推一个东西,很难跟整个行业开发者对抗。当应用开发很难有什么创新,进入深水区的时候,苹果也没办法。
今年的swift新版本,直接就可以在swift中使用c++。为啥很多程序员都喜欢用c++,因为c++代码天然跨平台,十年前的代码,拿到今天依然可以跑。不会像一些新的语言不断变。所以大量行业级别的基础库,首选c++。
3 做iOS Android开发会点c c++
做iOS开发,安卓开发,大部分时候你写界面,做上层应用基本用的是oc swift java, 做应用开发啊,工资天花板本身比较低啊,极少有互联网公司有30多k的,行业天花板平均在25k上下。
但是做iOS Android开发程序员你熟练使用c c++,你的天花板,上可以到七八十k。 为什么要学c c++呢,因为学了c c++,我们就有能力去写TCP/UDP这些网络通讯底层应用,同时大量的第三方库,历史上都是c c++写的。
比如OpenGL,FFmepg,OpenCV等.做移动手机开发,我们需要学习的绝大多数时候其实是c语言,c语言相对于c++稍微简单一些。对c++的要求并没有那么高,因为你并不是专业做c++开发的,大多数时候都是做c++应用开发,并不是让你去写什么中间件级别的软件。
比如安卓上,你熟练使用c c++, 就能够利用NDK开发对接使用大量的第三方库。甚至自己写一些库,sdk交给别的上层应用开发者去调用。
我们这里说的要求低,其实就是需要你会一些基础c++,比如类,对象,继承,多态,重载,STL标准库,模版等等,掌握这些然后去做c++应用软件开发,就简单很多。c++语言本身比较复杂,但我们可以只使用其中一个子集。比如对于c++标准,大多数时候,使用到c++03 c++11即可,别的东西,基本上就不需要去研究那么深入了,这样就相对简单多了。
VR AR MR开发时代,音视频,图像处理开发技术,尤其是OpenGL ES是最基础的技术。
这里给大家推荐我个人的音视频,图像处理开发系列课程。