我不懂Swift


发布者 sasasamoa  发布时间 1405925051077
关键字 大话编程  分享 

七月18日,2014 


关于Objective-C,我并不是非常了解。这不是在吹牛。如果你读我的博客,你会知道我了解Objective-C的机会要比你多。我对此有我的观点。即使你不同意,你也应该认真对待它们。它们在大量代码的基础上建立。我曾经举办过Cocoa software solo,使用OS X和iOS,在发布会的一年前,用30小时为Steve Jobs设计了一个Demo。在10.42流行之前,在ARC之前,在属性出现之前,在英特尔之前,我已经在写ObjC了。跟许多有更有的经验的开发人员一起,但即便如此,关于Objective-C也有我不了解的一些东西。


我并不知道怎么写SWIFT。 

其他人也不会。

甚至是苹果。


没有人知道swift,因为它没有出炉呢。在早些时候。我们都还在思考它。这里没有既定的模式。语法仍然是不断变化的。stdlib仍然是不断变化的。我们知道在基础上甚至发生着更加大的变化.(1)编写编译器和输送一个应用程序并不是完全一样的。有些事情需要真正的编写的经验,但是没有人有这样的经验。

Tim Burks(2)最近开了一个新的radar: 

...我想建议一下,一种介绍新语言的适当方式是:创造者需要花费数个月来写一些在检查语法的重要应用,并给语言专家review。这看起来并没有完成。


我们经常也是这么做的。拥有语言设计经验的人在设计一种新语言上,大多在秘密中进行。它们把它发布给一小部分人,也许是从内部的一个小社区开始。这些内部人士,都是第一批使用者。他们尝试新的东西。他们鼓捣一些事情。他们创造更多的东西。他们至少会建立一些大型的库(Go的stdlib,C#的NET部分)。他们在所学内容的基础上修改这语言。越来越多的人来了。也许这将成为公共的,也许它只是一种新的“群聚效应”,外部的人开始在更严肃的项目上使用它,甚至在一些“重要的”项目上。


Swift已经赤身裸体地走向世界。半生不熟。在我们看来,有些地方考虑不周,并急剧变化。大部分的库仍然依赖ObjC,C和C++。你接触的仅仅是最初级的阶段。你是那些早期的采用者,通常是很小,用手就能数得过来的群体。但在这个原始的时代,你们也有成百上千了。


你可以想想这是好还是不好,但它绝对是一个特殊的机会。我有非常有信心地预测,swift将是今年TIOBE的年度语言。它已经进入了榜单的第16位,但潜能还没有完全释放。而你就在这里。你还没有站在楼层上,而是站在新灌浇的地基上。它看起来相当稳固,但它现在还算不上一个建筑。


想象一下,谷歌曾经说过,“Go是Android开发的未来” ,微软已经建议所有的C#开发人员转移到F#。苹果准备将swift作为其最受欢迎平台上的首选语言。我希望他们会继续跟进。 “对swift的任何评估,都是以如何让开发人员构建更好的iOS和Mac应用程序来进行的。”我相信swift符合该标准,甚至比ObjC做的更好(我是爱ObjC的)。我看不出有任何苹果不适合swift的理由。


所以你在这里。从这里开始。没有专家。没有老人坐在摇椅上大骂你新奇的点语法(dot-syntax)。您是最早的参与者。你还记得那些不可改变的数组(Array)。


你是一个零时差的swift专家,如果不是,你可能是零年差的swift的专家,即使你还在等待iOS8发货。壁龛还在一直开着。阅读一些东西(3),写下一些东西。参与进来。尝试新的模式,看看他们是否工作。告诉人们你发现了什么。(4) 


最重要的是,如果swift里的东西困扰了你,如果他们不工作,如果他们可以变得更好,现在说出来。打开radars(5)。在开发论坛上发表文章。写一些例子,说明为什么你的方式使代码更好。swift还在不断变化,更具体的说,它在测试版里还可以改变,你可能很长时间也碰不到这样的机会。



(1)你在说访问控制?我们知道他们会来。我们不知道他们会是什么样子。

(2)他的意见我们需要很认真对待。他是一个聪明,有见地的人。Nu是一种有趣的语言。我甚至同意他关于swift的一些挫败感。不过还是有一部分我们不同意。

(3)顺便说一句,我目前最喜欢的swift博客是Airspeed Velocity 和 nomothetis (Alexandros Salazar)。强烈推荐。他们教了我很多。我很乐意看到更多的人们以这种方式来与。

(4)例如,我发现,if let x = x { ... } (重新绑定到同一个标识符)是一个相当不错的卸载可选项的风格。我还发现,当您不能使用链接时,在一个可选项上的map()的可以是一个对if-let 方便的替代品。例如:让optY= optX.map{Y(X:$ 0)}。在可选的扩展map包中一个叫 ifset 的功能可以使之更易于阅读。

(5)是的,radar 很烂;不过,也不是那么糟糕。从论坛上来看,swift团队显然还在 radars 上获取反馈。






回复 (9)
  • #
  • #1 icy_cherry 1406118749515

    cxxx

  • #2 autumn_wood 1406167708786

    糟糕的翻译

  • #3 ourjs 1406167947130

    @autumn_wood #1

    欢迎提出改进意见。

  • #4 quiet_butterfly 1406178900378

    @ourjs #2

    “改进意义”。。。改进意见吧。。这位小哥中文是不是没学好

  • #5 green_moon 1406179024638

    极其糟糕的翻译,很好奇,怎么做到的

  • #6 ourjs 1406182218786

    @quiet_butterfly #3

    呵呵,Thank you,己更正

  • #7 winter_glade 1406220973583

    翻译的跟shi一样。

  • #8 dawn_fog 1406303680080

    最好能意译、!

  • #9 solitary_sun 1407419353728

    的确是很糟糕的翻译,不过相信作者也是用心的,鼓励一下... 困惑的同学直接跳原文链接吧

微信扫码 立即评论