• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Pandara
V2EX  ›  程序员

swift 相比起 objective-c 到底有什么优势呢

  •  
  •   Pandara ·
    PandaraWen · Jun 27, 2016 · 17604 views
    This topic created in 3783 days ago, the information mentioned may be changed or developed.
    77 replies  •  2016-06-29 13:33:32 +08:00
    crisfun
    crisfun
    Jun 27, 2016
    1
    首先,是新东西,必然有一波吹

    其他的还是请 PL 专业人士,实际用户来说说的好
    yagao0o
    yagao0o
    Jun 27, 2016
    2
    最重要的是: Swift 现在是亲儿子阶段……
    使用的便利性要高于 Objective-C ,毕竟设计时就是为了取代它。
    chaoxn
    chaoxn
    Jun 27, 2016
    3
    其次,语法简洁,必然有一波吹

    其他的还是请 PL 专业人士,实际用户来说说的好
    DearMark
    DearMark
    Jun 27, 2016
    4
    Objective-C :我还可以再战 10 年。
    ethanlu
    ethanlu
    Jun 27, 2016
    5
    作为一个 0 基础入门的, swift 比起 OC 相对容易懂,主要是读起来很像英文句子。
    karonl
    karonl
    Jun 27, 2016 via iPhone
    6
    开源啊,未来就很有变数
    SuperMild
    SuperMild
    Jun 27, 2016
    7
    现在新出各种的语言主要注重两个方面的改进,写小程序时有甜度适中的语法糖,写大程序时有合理的特性减少出错可能性(比如 Optional Type )。
    ichanne
    ichanne
    Jun 27, 2016 via iPhone
    8
    有些新特性 OC 里面没有,比如面向协议编程,当然, Swift 还有个致命的缺点,不能方便的支持热修复。
    c447279704
    c447279704
    Jun 27, 2016
    9
    Swift 致力于成为一门通用的语言,这点和 OC 有根本的区别
    1OptionalType 更安全
    2 不像 OC 那样啰嗦,很简洁,少打很多没用的字
    3 强大的枚举和 Where
    4 泛型
    5 开源,随时加入新的 idea
    garipan
    garipan
    Jun 27, 2016
    10
    亲儿子这点太重要了
    看一下近几年 OC 和 Swift 的排名变化就知道了
    只要苹果一天还占据市场主导地位, swift 就一天有优势
    而且还开源了,苹果是铁了心要把 Swift 做大了
    虽然现在 Swift 还有很多缺点,但是按照目前的发展速度,不用几年必然全方面超越 OC
    expkzb
    expkzb
    Jun 27, 2016❤️1
    11
    swift 能令 objective-c 程序员更值钱
    beimenjun
    beimenjun
    Jun 27, 2016
    12
    大势所趋, Swift 能不能起来不知道, O-C 按照剧本应该要凋零的。
    walkingway
    walkingway
    Jun 27, 2016❤️1
    13
    那些说 Swift 比 OC 简单的只是入了个门吧
    nicevar
    nicevar
    Jun 27, 2016
    14
    趋势是 swift ,代码能简洁点,容易上手,其他的优势真想不到了
    会 swift 能做 iOS 开发,不过实际的工作中不会 oc 可能很多问题解决不了
    youxiachai
    youxiachai
    Jun 27, 2016
    15
    反正.你搞 ios..两个都要学...orz
    WinterWu
    WinterWu
    Jun 27, 2016 via iPhone
    16
    @ichanne 我觉得热修复才是 oc 的漏洞。从安全角度而言,绕过了大量“防火墙”。
    xhowhy
    xhowhy
    Jun 27, 2016
    17
    swift 不仅具备 oc 的面向对象、动态等传统特性,还具备函数式编程、泛型等比较新的特性
    shawnclovie
    shawnclovie
    Jun 27, 2016
    18
    等 swift 能和 c++互操作了, OC 也就只剩可以随便用 method swizzing 这点“优势”了。
    blue7wings
    blue7wings
    Jun 27, 2016
    19
    我尤其喜欢 swift 的语法,我认为是最为优雅的。
    jackisnotspirate
    jackisnotspirate
    Jun 27, 2016
    20
    用了 swift 就回不去 oc 了。
    dantegg
    dantegg
    Jun 27, 2016
    21
    简单[笑 cry]
    chisj
    chisj
    Jun 27, 2016
    22
    @jackisnotspirate 然而我用了快 1 年,又要回去了,蛋疼。
    MountainRain
    MountainRain
    Jun 27, 2016
    23
    其实没有几家公司招 swift 的
    daiqiangbudainiu
    daiqiangbudainiu
    Jun 27, 2016
    24
    OC 为啥不是亲儿子呢?不是乔布斯从他创办的公司带来的吗
    qw0258
    qw0258
    Jun 27, 2016
    25
    swift 是一种包含了更多现代化编程语言特性的语言
    OC 是老古董
    araraloren
    araraloren
    Jun 27, 2016
    26
    @yagao0o ~~从来没权威人士说或者官方人士说 swift 就是为了取代 oc
    LMkillme
    LMkillme
    Jun 27, 2016
    27
    swift 相比 OC 先进,与此同时,也难多了,说 swift 简单的是不是只看了新闻?
    Soar360
    Soar360
    Jun 27, 2016
    28
    Swift 优雅?你是没看过 C#吧?
    droiz
    droiz
    Jun 27, 2016
    29
    语法清晰简洁,具有更多现代化语言特性,你学了就知道了
    murmur
    murmur
    Jun 27, 2016
    30
    说 swift 比 obj-c 好大概和 javascript 比 java 优雅是一个想法
    wweir
    wweir
    Jun 27, 2016 via Android
    31
    函数式在正确性、多核利用等方面相对其它范式要高出不少
    yjxjn
    yjxjn
    Jun 27, 2016
    32
    @expkzb 不能这么说吧,你看比如曾经的 Cobol , pascal 啥的,收入不一定比干移动互联网的挣钱啊。
    MartinLv
    MartinLv
    Jun 27, 2016
    33
    语法简洁是最不重要的…… swift 真正有吸引力的是新的编程范式的支持,函数式、泛型、面向协议、还有一定的模式匹配能力。语言的表达能力甩 OC 几条街。另外静态方法调用性能比 OC 好。但是 OC 的 runtime 用不了了,热修复、 AOP 不如以前好搞。
    sensui7
    sensui7
    Jun 27, 2016
    34
    有未来
    wizardforcel
    wizardforcel
    Jun 27, 2016
    35
    把 oc 那些看着不顺眼的语法都改进了一番。

    你可以说语言只是一层皮,但是它毕竟是我们平常用的东西,美观与否会影响我们的生产力。
    7wN5407klUw768m0
    7wN5407klUw768m0
    Jun 27, 2016
    36
    struct RecursiveFunc<F> {
    let o : RecursiveFunc<F> -> F
    }

    func Y<A, B>(f: (A -> B) -> A -> B) -> A -> B {
    let r = RecursiveFunc<A -> B> { w in f { w.o(w)($0) } }
    return r.o(r)
    }

    let factorial = Y { (f: Int -> Int) -> Int -> Int in
    { $0 <= 1 ? 1 : $0 * f($0-1) }
    }
    println(factorial(10))
    free9fw
    free9fw
    Jun 27, 2016
    37
    pop , enum 、 struct 、各种简短的语法,不用写分号。快不快不知道,但对于我来说,写的东西变很少很少了,变很爽
    everettjf
    everettjf
    Jun 27, 2016
    38
    虽然没学 swift 。但感觉更多现代化编程语言特性意味着更复杂(或者叫难学)。
    目前感觉 OC 能满足需求, swift 学习计划就一直搁置。
    DSKcpp
    DSKcpp
    Jun 27, 2016
    39
    学习难度比 OC 大
    ChengLuffy
    ChengLuffy
    Jun 28, 2016
    40
    范型很爽,但从编程这个过程来说,我感觉 swift 比 OC 有快感。。。个人感受
    mudkip
    mudkip
    Jun 28, 2016
    41
    写代码的幸福感倍增。
    这个理由还不够么?
    hstdt
    hstdt
    Jun 28, 2016 via iPhone
    42
    写起来开心,效率高,舒服。
    IvanLing
    IvanLing
    Jun 28, 2016 via iPhone
    43
    请在项目中使用 swift 的举个抓🙋🏻
    nino789pzw
    nino789pzw
    Jun 28, 2016
    44
    wohenyingyu01
    wohenyingyu01
    Jun 28, 2016 via iPhone
    45
    调用不了 c 库。我们的 ios 代码 80%都是 C ……
    rqzheng2008
    rqzheng2008
    Jun 28, 2016
    46
    swift 3.0 API 又大改了,苹果设计语言怎么就不考虑一下向后兼容呢
    Perry
    Perry
    Jun 28, 2016
    47
    易上手,新手写起来舒服
    一直在更新
    chai2010
    chai2010
    Jun 28, 2016 via iPhone
    48
    objc 一直是补丁语言( c++也是一样的问题),它们虽然抱住了 c 的大腿,但是也包含了 c 的诸多问题,语言不能自由健康的发展进化。 objc 是该进垃圾桶了。

    swift3 语法没多大变化, API 部分也只是转换规则做了调整。最期待的还是 spm 能早日支持 iOS
    RqPS6rhmP3Nyn3Tm
    RqPS6rhmP3Nyn3Tm
    Jun 28, 2016 via Android
    49
    Swift :从精通到入门
    XueSeason
    XueSeason
    Jun 28, 2016
    50
    @MartinLv 好像看到小影的同事了。
    shiltian
    shiltian
    Jun 28, 2016
    51
    插个题外话…
    iBooks 国区不可用以后,最新的 Swift 那本教程去哪找呀…
    xsown
    xsown
    Jun 28, 2016
    52
    用过 swift ,会用 swift 的,一定不会再愿意用 oc 了
    觉得 swift 是吹的,都不是 iOS 程序员,或者是根本没好好用过 swift 的人
    chai2010
    chai2010
    Jun 28, 2016
    53
    说 Swift 不兼容升级导致“从精通到入门”,估计有这几类: 1. 调侃; 2. 精通程度到 println 函数; 3. 非 iOS 开发者
    Ixizi
    Ixizi
    Jun 28, 2016
    54
    fatestigma
    fatestigma
    Jun 28, 2016
    55
    Swift 语法比 Obj-C 简单非常多,对于新手入门简单,这应该也是苹果希望的。另外作为苹果的亲儿子和 IBM 的干儿子,感觉发展还是很有劲头的吧。
    另一方面,好像 Obj-C 在 06 年开始进入 2.0 之后也没有什么大的更新了,而 C 、 C++ 还在发展之中,而 Swift 现在更新还是非常频繁的,可以进一步支持各种现代化语言的特性。
    PublicFourWord
    PublicFourWord
    Jun 28, 2016
    56
    no C in Swift
    chuhemiao
    chuhemiao
    Jun 28, 2016
    58
    MartinLv
    MartinLv
    Jun 28, 2016
    59
    @XueSeason 好巧。握个爪~
    noif
    noif
    Jun 28, 2016
    60
    @ethanlu 写了 5 年的老鸟说 oc 完全就是在写英文段子
    quxw
    quxw
    Jun 28, 2016
    61
    没用过 obj-c 但对其冗长的命名规则让我望而却步
    holy_sin
    holy_sin
    Jun 28, 2016❤️1
    62
    枚举
    7wN5407klUw768m0
    7wN5407klUw768m0
    Jun 28, 2016
    63
    @chuhemiao swift 写的 Y combinator ……
    chuhemiao
    chuhemiao
    Jun 28, 2016
    64
    @Taojun0714 嗯,还以为是 rust ,看着都差不多。。。
    jason19659
    jason19659
    Jun 28, 2016
    65
    easy to use
    xAx
    xAx
    Jun 28, 2016
    66
    降低公司员工工资支出,进而提高公司利润
    xAx
    xAx
    Jun 28, 2016
    67
    从语言本身分析一门商业公司推出的语言的好坏没任何意义,无利不起早
    crashX
    crashX
    Jun 28, 2016
    68
    说 swift 比 OC 简单的就跟说 scala 比 java 简单一样,估计没做过项目吧。还有 OC 的 runtime 和 KVO ,这俩纯 swift 目前没有,是硬伤。 swift 的新特性可以使代码更严谨,并不能做太多的事情。当下而言纯 swift 的代码不如纯 OC 能做的事情多。
    SunnyCoffee
    SunnyCoffee
    Jun 28, 2016
    69
    oc 的历史遗留问题太多了吧。
    nil,NSNull,NULL,true,YES ,作为个新手,真是把人绕晕了。 case 不支持 String ,没有 java 的 @Override ,@Deprecated 。
    很多东西,单纯的靠升级很难解决,还不如直接换了。
    poetowen
    poetowen
    Jun 28, 2016
    70
    Safe Fast Modern
    n6DD1A640
    n6DD1A640
    Jun 28, 2016
    71
    closure
    webjin1
    webjin1
    Jun 29, 2016 via Android
    72
    看名字越短越好,何况它还带-
    ehs2013
    ehs2013
    Jun 29, 2016
    73
    @webjin1 objc vs swift
    webjin1
    webjin1
    Jun 29, 2016 via Android
    74
    @ehs2013 简写也算?
    zhangweifang
    zhangweifang
    Jun 29, 2016
    75
    swift 语言,学习的时候感觉好多语言特性设计的真是正确的,但是一到用的时候就不知道怎么下手,相对 ObjC 更直观, swift 更抽象的感觉。
    Override
    Override
    Jun 29, 2016
    76
    我仿佛又听到有人在背后 @我
    @SunnyCoffee
    d553296416
    d553296416
    Jun 29, 2016
    77
    swift 动态部署能力很差。。。不像 oc 有 reactnative wax weex luaview jspatch 等
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1436 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 135ms · UTC 23:18 · PVG 07:18 · LAX 15:18 · JFK 18:18
    ♥ Do have faith in what you're doing.