V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
kalintw
V2EX  ›  iDev

长远看 Apple 的平台上开发, Swift 真的可以完全取代 OC 吗?

  •  
  •   kalintw · 2015-08-06 09:02:44 +08:00 · 10297 次点击
    这是一个创建于 3416 天前的主题,其中的信息可能已经有所发展或是发生改变。
    你认为以后OSX 和 iOS开发,Swift真的可以完全取代OC吗?

    貌似趋势就是大一统,Win也试图PC/Pad/Phone, 3P合一。统一之后App都是一次开发到处可用了,硬件是载体,背后的信息服务和生态才是卖点。

    另外,Web技术也有大一统的趋势,浏览器有入侵桌面操作系统地盘的趋势。

    各位来唠唠,卖香烟瓜子矿泉水的也欢迎路过:)
    55 条回复    2015-09-06 15:06:34 +08:00
    Vedar
        1
    Vedar  
       2015-08-06 09:58:33 +08:00
    应该可以吧 不过是有过程的 毕竟OC树大根深 我想除了时间没有啥能阻止swift取代oc了
    onevcat
        2
    onevcat  
       2015-08-06 10:04:35 +08:00   ❤️ 1
    当然可以..而且并不需要长远看。Swift 成为 Apple 平台主流语言这件事情在两到三年内就会发生。
    tini32
        3
    tini32  
       2015-08-06 10:07:38 +08:00
    虽然从跑分和理论上来看,swift甚至比OC还要快,但是我还是担心:跑分和理论只是机器的体验,java在某些方面号称胜过C语言
    banxi1988
        4
    banxi1988  
       2015-08-06 10:10:10 +08:00
    在我的 iOS 编程上经验里,我觉得 OC 只是对 Swift 的某一些功能的一种补充。
    fo2w
        5
    fo2w  
       2015-08-06 10:18:51 +08:00
    不用看, 我已经传教swift很久了
    wezzard
        6
    wezzard  
       2015-08-06 10:21:43 +08:00
    Swift fucks Objective-C off.
    summic
        7
    summic  
       2015-08-06 10:28:25 +08:00
    我们的APP用swift重写了,俩OC同事现学现写,只用了一个月
    sinux
        8
    sinux  
       2015-08-06 10:35:54 +08:00   ❤️ 2
    webfrogs
        9
    webfrogs  
       2015-08-06 10:44:27 +08:00
    @onevcat 一入 Swift 深似海,从此 OC 是路人。
    z5n0w
        10
    z5n0w  
       2015-08-06 10:54:53 +08:00
    @sinux 左上角 中间 右下角 这3个图标是什么?
    ikaros
        11
    ikaros  
       2015-08-06 10:58:29 +08:00
    @z5n0w 好像是rust ruby erlang
    airycanon
        12
    airycanon  
       2015-08-06 10:58:37 +08:00
    @z5n0w Rust Ruby Erlang
    pockry
        13
    pockry  
       2015-08-06 10:58:52 +08:00
    国外用Swift都用到飞起,都在用Swift写开源库占坑,国内还在讨论要不要学,感到肩上任重道远啊。
    66450146
        14
    66450146  
       2015-08-06 11:56:18 +08:00
    On an infinite timescale, we're all dead.

    不考虑时间都是耍流氓

    另外我觉得不用几年,写 objc 的就是老古董了……
    Tedko
        15
    Tedko  
       2015-08-06 12:08:51 +08:00 via Android
    就连mansory作者都说不再更新oc pod库只debug。。我自己小伙伴写开源lib写得飞起。。为啥要oc?
    v2Panda
        16
    v2Panda  
       2015-08-06 12:18:17 +08:00
    同意啊 是时候swift用起来。
    blacklee
        17
    blacklee  
       2015-08-06 12:28:50 +08:00
    目前的App不打算用Swift重写
    但是下一个App会慎重考虑丢弃Obj-C
    iTwoEleven
        18
    iTwoEleven  
       2015-08-06 12:33:53 +08:00
    Swfit做个人项目开发语言已经1年多了(从Swift发布开始,各种坑……),公司目前的项目都在维护+小更新阶段,OC依旧主力
    alexzuo
        19
    alexzuo  
       2015-08-06 12:34:44 +08:00
    @onevcat 居然看到一个活生生的喵神!请问swift2.0出来之后,你的书会更新吗?
    pljhonglu
        20
    pljhonglu  
       2015-08-06 12:37:54 +08:00 via iPhone
    我在等apple用swift重写Cocoa
    shellbye
        21
    shellbye  
       2015-08-06 13:55:52 +08:00
    新手准备入门,是不是该直接上swift?
    beimenjun
        22
    beimenjun  
       2015-08-06 13:59:32 +08:00
    可以的,所以必须学 Swift 。
    mko0okmko0
        23
    mko0okmko0  
       2015-08-06 14:06:08 +08:00
    OC可以做系统级的开发,但你只是要做桌面软体或是APP的话OC就可以放生了.
    hilenlai
        24
    hilenlai  
       2015-08-06 14:06:44 +08:00
    大势所趋
    typcn
        25
    typcn  
       2015-08-06 14:07:28 +08:00
    不会取代

    就像 C 能取代 B,而 C++ 取代不了 C

    更何况 Swift 还是像 Java 一样,低效率,高消耗,字节码虚拟机语言
    onevcat
        26
    onevcat  
       2015-08-06 14:29:57 +08:00   ❤️ 1
    @alexzuo 会的..最近正在弄这件事儿。
    Imshaha
        27
    Imshaha  
       2015-08-06 15:56:21 +08:00
    刚刚看到的一个 Objective-C to Swift Converter - 一款可将 Objective-C 转换成 Swift 语言的工具 ,在这里http://objectivec2swift.net/#/about
    Banio
        28
    Banio  
       2015-08-06 16:10:55 +08:00
    苹果花这么大力气 肯定是为了取代OBC呀 估计用不了3年 swfit就得超过OBC
    kepenj
        29
    kepenj  
       2015-08-06 16:23:50 +08:00
    看这现在大牛们swift玩的666,再看看自己。 吓得浑身发抖~~
    jiangpeng
        30
    jiangpeng  
       2015-08-06 17:21:11 +08:00
    Cocoa 不用 Swift 重写就是逗你玩
    special
        31
    special  
       2015-08-06 18:20:33 +08:00
    可以,Apple 的推力大家都有目共睹
    (说不定再过几年 xCode 直接不支持 OC
    zartouch
        32
    zartouch  
       2015-08-06 22:19:02 +08:00
    苹果和其他公司不同的在于,苹果很多时候会强推,说不准什么时候,新上架的app就只允许用swift来构建了。。
    spencerqiu
        33
    spencerqiu  
       2015-08-06 22:32:32 +08:00
    @Imshaha
    如此观之,这一只真的是技术白妹子......
    CRVV
        34
    CRVV  
       2015-08-06 23:14:46 +08:00
    @typcn
    为什么我一直以为Swift和Objective-C编译出来的东西是一样的...

    http://stackoverflow.com/questions/24052386/does-swift-compile-to-native-code
    kingcos
        35
    kingcos  
       2015-08-06 23:20:00 +08:00
    @onevcat 感谢喵神!!!前一段也想问您是否会更新,太良心了!!!赞一个~

    顺便问问大家,关于 iOS 框架,Cocoa Touch 有没有全面,基础的资料,或者学习的方向==求指点,谢谢。。。
    teriyaki
        36
    teriyaki  
       2015-08-06 23:37:25 +08:00
    go andrular 那些刚出来也是一堆人热捧
    teriyaki
        37
    teriyaki  
       2015-08-06 23:39:47 +08:00
    objective-c其实比swift简单
    swift是貌似简单 实质复杂

    等项目上了10W行+
    和多人协作

    你再看看 嘿嘿
    nino789pzw
        38
    nino789pzw  
       2015-08-06 23:44:52 +08:00
    @teriyaki andrular是什么? go是说的golang?
    teriyaki
        39
    teriyaki  
       2015-08-06 23:45:52 +08:00
    objectivec是单继承+接口的鼻祖

    delphi java c#都是学生
    本质编程模式 这4种语言没什么不同

    很简单很优雅 当然java写出来有点啰嗦

    swift要复杂 有些貌似脚本的其实不一定简单 例如scala 这个全世界第二难
    性能也没明显优势

    赞同上面说的

    何时cocoa/cocoatouch重新用swift写了

    可立马全转swift
    xhacker
        40
    xhacker  
       2015-08-06 23:53:22 +08:00
    @typcn: 显然不是。Swift 丧失了 ObjC 的一些动态性,因此肯定比 ObjC 快。就函数调用一点就够了。
    typcn
        41
    typcn  
       2015-08-06 23:59:12 +08:00
    @xhacker 不,如果在安全锁开启的状态下,Swift 比 OC 慢一百倍以上,亲自测试+GitHub网友测试
    xhacker
        42
    xhacker  
       2015-08-07 00:03:01 +08:00
    @typcn: 「Swift 还是像 Java 一样,低效率,高消耗,字节码虚拟机语言」这个也不对。Swift 就是直接编译到机器码的。就算现在慢也是因为编译器实现的原因,最终肯定比 ObjC 快。「安全锁」是什么?
    teriyaki
        43
    teriyaki  
       2015-08-07 00:03:55 +08:00
    @nino789pzw 写错了 是angular 这是js框架 个人认为是标准的一坨屎之一

    大公司的东西有些不一定都好

    决定swift是否能取代objectivec的就是否cocoa被swift重写

    现在各种语言除了少数(C++ scala比较难) 上手都很容易 几天几周就会了
    关键是库 要花大量时间熟悉 swift都问题是调用oc库的api不是和oc的调用100%兼容

    语言之争没什么意思

    如同react要提供api层封装

    问题是c# java objectivec都是c系列都语法

    根本不需要多余的层
    panerai
        44
    panerai  
       2015-08-07 00:05:00 +08:00
    @sinux 黑我大ruby!真的有这么慢吗?
    teriyaki
        45
    teriyaki  
       2015-08-07 00:08:37 +08:00
    @xhacker 最终快
    那最好等swift重写cocoa后

    编译语言速度排位

    c》c++》delphi》objectivec(oc是最慢的)》nodejs~java~c#(1/2c++的速度)

    swift在哪?
    能有多大的差异
    typcn
        46
    typcn  
       2015-08-07 00:36:29 +08:00
    @xhacker 你可以开启 -Ounchecked 可以让 swift 性能恢复 80% 不过内存操作,内存安全就不能保证了
    notcome
        47
    notcome  
       2015-08-07 01:37:09 +08:00 via iPhone   ❤️ 1
    真受不了了,Swift 关掉 check 自然跟 C 一样快。它又没有什么高开销的运行时抽象,enum 和 pattern match 的问题学术界早就解决了。

    编译到字节码这个就更扯淡了,LLVM 可以解释字节码但那个性能似乎有点……真的冲着虚拟机来的 LLVM 字节码解释器是几个月前微软倒宣布了一个。

    不过话说回来了,legacy code 反正不多,到时候整个字节码跨 iOS OS X 也不是不可能。
    pysama
        48
    pysama  
       2015-08-07 09:26:00 +08:00
    昨天听苹果工程师分享说,公司并没有用swift替代OC的想法;
    swift只是降低了开发门槛,让更多的精力聚焦于优秀的设计。
    ryanking8215
        49
    ryanking8215  
       2015-08-07 11:32:45 +08:00
    @typcn swift安全锁是什么东东?
    ren2881971
        50
    ren2881971  
       2015-08-07 13:47:37 +08:00
    刚自学obc 就让说 要成老古董了么。。
    MyEvonne
        51
    MyEvonne  
       2015-08-07 16:46:44 +08:00
    围观猫大
    likers
        52
    likers  
       2015-08-12 12:49:41 +08:00
    下个月准备试试用swift重写公司的古董应用。边学边写了
    wuyuchenshishabi
        53
    wuyuchenshishabi  
       2015-08-18 11:02:02 +08:00
    用了 swift 之后,感觉此间乐不思蜀了。再用回 OC 觉得有点笨重。不过现在国内的主流还是 OC ,大多数公司面试的时候 swift 说加分项 不是必须的。
    MarineLv
        54
    MarineLv  
       2015-09-06 11:14:07 +08:00
    @onevcat 喵大,感觉 xcode 6.4 对 swift 支持并不完善啊。 lldb 命令一用,整个 xcode 就会卡死,条件断点也没法用,不知道贵司是如何应对的?
    onevcat
        55
    onevcat  
       2015-09-06 15:06:34 +08:00
    @MarineLv 没遇到过..可能是你们的打开方式不对..
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1744 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:20 · PVG 00:20 · LAX 08:20 · JFK 11:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.