首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Dropbox宁愿将代码编写两次,也不愿在iOS版和Android版应用程序之间共享C+代码!

编写一次、随处运行?别开玩笑了。

Dropbox摈弃了长期奉行的技术策略:在iOS版和Android版的应用程序之间共享C++代码,称代码编写两次的开销低于共享代码这种做法的成本。

这家在线存储公司在2013年制定了这前一个策略,让一支小型团队能够迅速发布代码。现在它“完全退出这个策略”,改而针对每个平台使用原生语言,“主要是Swift和Kotlin”。

软件工程师Eyal Guthmann给出了决定这么做的几个原因。他表示,C++开发社区中的开源文化还不成气候,移动方面尤为如此,于是他们只好构建框架,以解决跨语言类型声明、接口绑定(以便与Objective-C和Java对接)、JSON解析和序列化等问题。若使用原生库,就不需要这么做了。该团队还必须创建一个自定义构建系统。

其次,Guthmann称跨平台开发的工具不如原生语言的工具来得强大,这意味着就更难找到代码错误(bug)。涉及C ++和Java之间多线程代码的一个问题需要“数周才能弄清楚”。

第三,由于iOS和Android之间的差异,并非所有代码都可以跨平台。你必须为某些方面(比如与相机相册交互)编写针对特定平台的代码。

第四,很难找到从事C++移动端开发的资深开发人员。

如果选择C++而不是C#或JavaScript,Dropbox可能会使跨平台编程尤其困难重重。另一方面,Guthmann称:“C/C++是其编译器同时得到谷歌和苹果支持的唯一两种语言,因此使用一种不同的语言会带来另外一大堆问题需要处理。”

Dropbox面临的特殊问题并不适用于每个项目。Dropbox需要与操作系统深度集成,而性能至关重要。比如说,自定义业务应用对跨平台解决方案来说可能是更合适的使用场景,因为它没必要有同样程度的集成。跨平台C++对于大量使用非可视算法的应用而言同样大有意义。

话虽如此,Guthmann所发的帖子确实表明,编写一次、随处运行这个梦想实际上对于许多类型的应用而言仍然遥不可及。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190818A0KGA500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com