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

一直用着 Objective-C,真的需要转 Swift 吗?

  •  
  •   vansouth · Aug 26, 2017 · 13618 views
    This topic created in 3191 days ago, the information mentioned may be changed or developed.

    现在苹果日渐衰落,iOS 开发者木有过硬的技术想找份好点的工作也是难····本人搞了 Objective-C 大概 3 年了,眼看 swift 也不断成熟起来,但是鉴于自己最近对 iOS 前期不是太看好也不知道该不该去深入研究 swift,还是去学习下 python,php,go 等后台语言···

    59 replies    2018-07-27 19:24:53 +08:00
    liyuandashabi
        1
    liyuandashabi  
       Aug 26, 2017
    很明显转投其他语言,很难想象三年的 iOS 开发员居然只会 OC?至少后端语言会一种吧.swift 怎么说呢,现在比较尴尬,还在快速发展期,国内用的不多,如果你真想 iOS 开发一条路走到黑,并有足够的物质条件支持可以试一试,毕竟不管哪一行业发展的怎么样,高端人才总是稀缺的.作为同为 iOS 开发员的我来说,已经准备转后端了,服侍苹果爸爸表示很心累.
    forwind
        2
    forwind  
       Aug 26, 2017
    苹果日渐衰落?
    zj299792458
        3
    zj299792458  
       Aug 26, 2017
    苹果日渐衰弱…… objective c 比 swift 的明显优势是,它可以直接调用 c
    fcka
        4
    fcka  
       Aug 26, 2017 via Android
    国内用的不多?
    fcka
        5
    fcka  
       Aug 26, 2017 via Android
    @zj299792458 swift 才是可以真正直接调用 C 的,OC 是解释型语言。不知道这个错误知识是哪里来的。
    gen900
        6
    gen900  
       Aug 26, 2017 via iPhone   ❤️ 2
    @fcka 不懂不要乱说。
    anyele
        7
    anyele  
       Aug 26, 2017
    你的头像赢了
    cielpy
        8
    cielpy  
       Aug 26, 2017
    @fcka OC 是解释型的?
    YYYeung
        9
    YYYeung  
       Aug 26, 2017
    学 Swift 还是不错的,毕竟是门比较现代的语言。况且,Swift 上手了之后是真的不想再写 OC, 即使 Swift 是边学边写
    xiaoc19
        10
    xiaoc19  
       Aug 26, 2017 via iPhone   ❤️ 1
    我们连生产环境的后台都是用 Swift 写的,你还在思考这个问题,再说你说你要学后几门语言,其实你大可以直接去学,有几年编程语言,学新语言不是很快的事吗,纠结什么
    SnailLin
        11
    SnailLin  
       Aug 26, 2017
    学一门语言有那么难么~你要是说有太多的 API 记不住情有可原,但是 Swift 和 OC 的 API 基本都是一样的
    elgae
        12
    elgae  
       Aug 26, 2017
    @fcka 你最牛
    fcka
        13
    fcka  
       Aug 26, 2017
    @gen900 这你就撞枪口上了。我是 Swift contributor,我在国内推广 Swift 的时候怕是你还没听过。

    @cielpy @elgae
    fcka
        14
    fcka  
       Aug 26, 2017
    @cielpy OC 是依靠 runtime 解释的动态语言
    fcka
        15
    fcka  
       Aug 26, 2017
    @cielpy 如果你写过 Swift,就会知道什么才是编译型语言。OC 的“编译”只是静态语法检查而已。
    vansouth
        16
    vansouth  
    OP
       Aug 26, 2017
    @liyuandashabi #1 开头自己不够努力,现在想想觉得自己会的太少
    vansouth
        17
    vansouth  
    OP
       Aug 26, 2017
    @xiaoc19 #10 纠结学哪门而已,因为现在感到有点迷茫
    vansouth
        18
    vansouth  
    OP
       Aug 26, 2017
    @SnailLin #11 不是说难得问题,是不知道继续在 ios 这块研究下去还是学下其他语言
    zj299792458
        19
    zj299792458  
       Aug 26, 2017 via iPhone
    @fcka 你是故意反着说么?我写了这么多夹杂 C 的 OC 代码,突然变成解释语言了。那 C 也是解释语言,只有 swift 是编译语言是吧😄
    yidinghe
        20
    yidinghe  
       Aug 26, 2017 via Android
    听库克的没错
    plqws
        21
    plqws  
       Aug 26, 2017
    @fcka 亮 github 账号打大家的脸嘛
    fcka
        22
    fcka  
       Aug 26, 2017 via Android
    @zj299792458 OC 真的是依赖 runtime 执行的……不是反话…… swift 可以无缝使用 C OC 的代码,直接在 .swift 文件里写都支持。不过 swift 不支持和 C++ 互调。
    fcka
        23
    fcka  
       Aug 26, 2017 via Android
    @plqws 就不╭(╯^╰)╮
    diercigai
        24
    diercigai  
       Aug 26, 2017
    @fcka 依赖 runtime 其实也不能叫做解释型语言,其实 oc 是用 c 实现的一个面向对象语言,是编译型语言,只是 oc 的各种实现是通过 runtime 实现的。解释型语言的一个特点是不需要编译,语言通过解释器转成执行代码,而明显 oc 是要编译后才能调用 runtime 执行。
    plqws
        25
    plqws  
       Aug 26, 2017
    https://news.ycombinator.com/item?id=4212441

    不过这也应证了为什么 Xcode 对 Swift 的兼容看起来一点经验都没有
    elgae
        26
    elgae  
       Aug 26, 2017
    @fcka contribute 的什么,哪个 commit,让我膜一下
    fcka
        27
    fcka  
       Aug 26, 2017
    @diercigai OC 的编译是一种奇怪的编译。。。严格来讲,OC 不是解释型语言,而是编译型动态语言。
    LINAICAI
        28
    LINAICAI  
       Aug 26, 2017
    其实都好,OC 不扎实用 Swift 也是效率不高
    难就难在两种语言的编程模式需要转换,有时候脑袋不好使。。。
    free9fw
        29
    free9fw  
       Aug 26, 2017
    学呗,几天就会了
    xiaoc19
        30
    xiaoc19  
       Aug 26, 2017 via iPhone
    @vansouth 所以别纠结哪门语言,全部学了,哪门喜欢就留哪门,一个星期就能决定好了,多看看国外的发展趋势,你眼光老看国内的,几年后又落后了
    cyr1l
        31
    cyr1l  
       Aug 26, 2017 via iPhone
    不需要,OC 挺好的,再等几年也来得及。
    libook
        32
    libook  
       Aug 26, 2017 via Android
    我是来看热闹的。。。

    现在其实好多语言和引擎已经模糊解释型和编译型的界限了,往往混合思想去糟粕取精华会起到更好的效果。
    onevcat
        33
    onevcat  
       Aug 26, 2017 via iPad   ❤️ 8
    OC 是解释型语言。。。大开眼界,茅塞顿开。。。感觉这几年代码都白写了。。
    TimePPT
        34
    TimePPT  
    PRO
       Aug 26, 2017 via iPhone
    @onevcat 都惊动喵神了😂
    vansouth
        35
    vansouth  
    OP
       Aug 26, 2017
    @onevcat #33 看到猫神,瑟瑟发抖
    0SJViNJF1Dm1pxm0
        36
    0SJViNJF1Dm1pxm0  
       Aug 26, 2017
    国内推广 Swift 是什么梗,Apple 自己的宣传都被狗吃了吗……
    so898
        37
    so898  
       Aug 26, 2017
    你们可以这么分析,但是说 Objc 是解释型语言就过分了吧……
    你们也把 Objc 的 Runtime 想的太神乎了吧……
    mooczz
        38
    mooczz  
       Aug 26, 2017
    @fcka 大开眼界,白写了两年多 OC
    caiyue1993
        39
    caiyue1993  
       Aug 26, 2017
    @fcka Talk is cheap, show us your github all right?
    comcuter
        40
    comcuter  
       Aug 26, 2017
    @fcka 除非你是 14 年 WWDC 前就开始推广了, 那时候确实是没有听说过.
    uuair
        41
    uuair  
       Aug 26, 2017
    来看猫神,然后看看大家怎么讨论解释这事的,我觉得没完!
    beimenjun
        42
    beimenjun  
    PRO
       Aug 26, 2017
    Swift 是一个很不一样的语言,值得一学,而且现在 4 出来了,很多坑很多磨难你已经感受不到了。

    我反正不太想写 Objective-C 了。
    whileFalse
        43
    whileFalse  
       Aug 26, 2017 via iPhone
    @xiaoc19 请问什么公司用 swift 写后端
    HuangLibo
        44
    HuangLibo  
       Aug 27, 2017
    @fcka 暴露了你的水平..
    Em5O7B1JGfjQnBry
        45
    Em5O7B1JGfjQnBry  
       Aug 27, 2017 via Android
    哇。。。大佬们讨论编译 /解释,静态 /动态语言的时候,能不能把概念查清楚哇。。。

    编译器:代码->编译器->另一种代码
    解释器:代码->解释器->执行

    静态类型:编译时检查类型
    动态类型:运行时检查类型

    我是菜比,可能说的不对,欢迎指正
    qiuncheng
        46
    qiuncheng  
       Aug 27, 2017 via iPhone
    swift 很不错的,目前公司已经使用 swift 开发啦,不过语言的话彼此触类旁通,主要还在于知识的积累
    TheOutgoing
        47
    TheOutgoing  
       Aug 27, 2017 via iPhone
    大开眼界,厉害厉害。
    jhdxr
        48
    jhdxr  
       Aug 27, 2017
    非得用编译型和解释型来区分的话。。。你们谁来给我解释解释 java 算什么?
    gen900
        49
    gen900  
       Aug 27, 2017 via iPhone
    @fcka 多大的头衔?没听过。你对 oc 了解不多倒是看出来了。
    qq2511296
        50
    qq2511296  
       Aug 27, 2017
    学什么学 学了能找到工作吗? iOS 开发都没人要了 现在培训班都不开 iOS 课程了 没前途
    转行做后端吧
    pythons
        51
    pythons  
       Aug 27, 2017
    现代语言还区分编译和解释? 你们不蛋疼?
    Lispre
        52
    Lispre  
       Aug 27, 2017
    近三年之内不需要,你更不用急
    googlebot
        53
    googlebot  
       Aug 28, 2017 via Android
    解释型语言很容易反汇编的,直接还原源码的,
    objc 到现在没出现反编译工具,

    垃圾 java,.net,python 早都有反编译器了,
    hellowwo
        54
    hellowwo  
       Aug 28, 2017
    @fcka oc 里面大量的底层函数直接用的 c 方法写的,即使 oc 的 runtime,实现原理用的也是 c 的动态交换指针地址。你跟我说 oc 是解释性语言。真是大开眼界。
    sfz97308
        55
    sfz97308  
       Aug 28, 2017
    @fcka 的观点真让我大开眼界,感觉七年的 iOS 白做了...
    另外对楼主的问题,语言只是编程工具而已,多了解一个并不难。Swift 里有很多 Objective-C 并没有的现代编程思想,不管你是不是想长期从事 iOS,都推荐了解一下。
    vansouth
        56
    vansouth  
    OP
       Aug 28, 2017
    感谢各位意见,经过几天的思考也给自己定下了点目标 ( ps:看到各位大屌们在开战吓得不敢说话了)
    andychen20121130
        57
    andychen20121130  
       Aug 28, 2017
    只会 OC。没毛病
    BiuBiuBiuX
        58
    BiuBiuBiuX  
       Sep 4, 2017
    1 年半 OC,最近实习在用 Swift。。。 发现了 Swift 是真的好啊。。。
    fundebug
        59
    fundebug  
       Jul 27, 2018
    请教一下,现在大家开发 iOS 用 Object C 还是 Swift 呢?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   957 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 123ms · UTC 19:28 · PVG 03:28 · LAX 12:28 · JFK 15:28
    ♥ Do have faith in what you're doing.