为什么很多大公司继续使用 Objective-C,不用 Swift

 

我觉得这个问题最核心的原因就一点:历史包袱。

猿题库算是比较新兴的应用了,代码量级也是 10 万的级别。很多稍微有些年头的应用,代码行数超过百万行其实是挺常见的,上次和去哪儿网的一个朋友聊天,他说去哪儿的 iOS 端有超过百万行代码。这么大体量的代码,公司可能把业务都停下来,让你专门用 Swift 来重写代码么?绝对不可能的。

所以,可以肯定的是:国内 AppStore 上流行的,开发时间超过三年的应用,都有着极大的历史包袱。从公司商业角度,是不能接受整个 iOS 开发团队没有产品功能贡献,只做代码重构的。

上周和来自 uber 的道长聊了聊,即便是在美国 uber,他们也是抽非常小的一部分人力来做 Swift 重写的部分。而 Facebook,完全还是用 Objective-C 。所以你看,这一点上硅谷也一样。

当然,新的应用没有历史包袱,可以用 Swift 来写,比如国内的 Enjoy 就是这样的例子。

除开历史包袱之外,其实还有一些别的原因。我个人认为的第二个最大的原因就是:Swift 及其相关生产力环境并不完全成熟。包括语言,IDE,第三方库,包管理(Swift Package Manager)都还没有非常成熟。这就造成了更多人的观望。

如果还有第三个原因的话,就是我们公司尝试 OC 和 Swift 混编的经历并不轻松。所以,还是打算再等等。

如果你问我,Swift 是不是趋势?答案肯定是 YES。

如果你问我,什么时候用 Swift?我的答案是:再等等。

为什么很多大公司继续使用 Objective-C,不用 Swift的更多相关文章

  1. C++ 异常机制分析(C++标准库定义了12种异常,很多大公司的C++编码规范也是明确禁止使用异常的,如google、Qt)

    阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开.RAII 异常机制与构造函数 异常机制与析构函数 noexcept修饰符与noexcept操作符 异常处理的性能 ...

  2. 职场选择之大公司 VS 小公司

    其实这是个非常难回答的问题,很多职场新人都会有类似的顾虑和疑问. 这个问题就好比业界比较容易引起争议的编程语言哪个是最好的一样.大公司还是小公司里面发展,只有身处其中才能体会,如人饮水,冷暖自知. 笔 ...

  3. 传统IT公司/创业公司/互联网大公司的offer如何选择?[转载+原创]

    背景介绍: 第一家工作的公司是一家跨国外企安全公司, 骄傲的称自己不是互联网公司而是传统软件公司, 第二家公司是当下最热的知识分享社区, 创业公司. 第三家公司是挤走谷歌, 曾一度称霸中国的搜索引擎公 ...

  4. “进大厂大半年,每个月都想走!”大公司 VS 小公司到底该如何选择?

    前言 江湖风云不断,有人吐槽阿里996,也有人吐槽华为狼性文化,这不,就看到有腾讯员工吐槽“进腾讯大半年,每个月都想走!” “和我一样,进去一周就想走”.“我都陷入自我怀疑了,以为自己适应不了大公司” ...

  5. CI Weekly #7 | Instgram/Quora 等大公司如何做持续部署?

    终于,你们期待的 flow.ci iOS 项目持续集成 开始公测了.在这几个工作日, flow.ci 做了些许「功能优化」与「问题修复」,性能和体验都在持续优化中.比如: iOS 快速入门文档更新: ...

  6. 大公司c#&.net转型java的原因有哪些?

    历来就听说有编程语言“鄙视链”的说法,而如今月经贴上的那些事儿,还真让我给遇到了. 以下内容来自知乎,纯属扯淡,易引发口水战,看完勿人身攻击. 目的给盲目的公司决策者.开发人员科普下,有个客观清醒的认 ...

  7. 大公司的PHP面试题

    1. 禁用COOKIE 后 SEESION 还能用吗? 2. 抓取远程图片到本地,你会用什么函数? 4. 你觉得在pV10W的时候, 同等配置下,LUNIX 比WIN快多少? 5. 简述pOST 和G ...

  8. 从大公司做.NET 开发跳槽后来到小公司的做.NET移动端微信开发的个人感慨

    从14年11月的实习到正式的工作的工作我在上一家公司工作一年多了.然而到16年5月20跳槽后自己已经好久都没有在写博客了,在加上回学校毕业答辩3天以及拿档案中途耽搁了几天的时间,跳槽后虽然每天都在不停 ...

  9. C基础 北京大公司面试简单总结

    作者有话说 这是关于程序员面试的一篇文章, 希望对你有帮助. 干了快3年了. 可以简单参考, 对比总结.虽然本人很水. 很喜欢当前做的手游项目.做的很认真.后端每个人技术都很好.但是结果都不如意.在死 ...

随机推荐

  1. C# 弹出USB外接硬盘(U盘)

    最近一个项目需要通过代码来弹出USB外接硬盘设备,经过google找到了下面这个类库: http://www.codeproject.com/Articles/13530/Eject-USB-disk ...

  2. 弹性方框模型 (Flexible Box Model) 快速入门

    简介 我可以肯定,您对于页面上水平或垂直排列的样式元素已经了解得够多了.但是,CSS 还缺少适用于此任务的合适机制.了解 CSS3 弹性方框模型(简称 Flexbox) 该草案将 Flexbox 描述 ...

  3. Python 高级图像处理

    构建图像搜索引擎并不是一件容易的任务.这里有几个概念.工具.想法和技术需要实现.主要的图像处理概念之一是逆图像查询(RIQ).Google.Cloudera.Sumo Logic 和 Birst 等公 ...

  4. 屏幕实时显示键盘鼠标操作软件keycastow,适合做视频教程

    屏幕实时显示键盘鼠标操作软件keycastow,适合做视频教程 学习了:https://www.52pojie.cn/thread-535154-1-1.html 进行键盘按键的屏幕实时显示:

  5. linux apache服务器优化建议整理(很实用)

    转载:http://www.cnblogs.com/zhongbin/archive/2013/06/11/3131865.html 1.apache服务器的time_wait过多 fin_wait1 ...

  6. Win下执行Swing程序的BAT文件 和 Linux下执行Swing程序的SH文件

    BAT文件: @echo off set CLASSPATH_BAK=%CLASSPATH% set classpath=%CLASSPATH%;.\lib\commons-codec-1.3.jar ...

  7. 用php编写我的第一段代码:hello world

    一.php环境的搭建 在编写php前,先搭建php环境,我选择了一站式安装软件WampServer,WampServer的下载地址:http://www.wampserver.com/ WampSer ...

  8. Eclipse Kepler 设置中文编码 和 汉化

    以下是 mac 下 Eclipse Kepper的设置 一:设置中文编码 1:打开Eclipse--Preference-->general--->editor---->Spelli ...

  9. 【Android】读取sdcard上的图片

    Android读取sdcard上的图片是很easy的事情,以下用一个样例来说明这个问题. 首先,在sdcard上有一张已经准备好的img25.jpg 以下,须要做的是把这张图片读取到app中显示. 做 ...

  10. Python——Shell编程关于Sha-Bang(#!)

    Q. #!的名字为什么叫Sha-Bang? A. Sha-Bang是Sharp和Bang的组合词.Sharp for #, Bang for ! 类似的情况是,C#通常被称为C Sharp Q. Sh ...