苹果新的Swift编程语言在iOS和Mac上看起来更好

苹果本月在旧金山WWDC推出了新的编程语言——Swift。一些紧迫的问题包括Swift是好的还是坏的,它是否应该用于当前和未来的项目,以及程序员是否应该回去重新编码他们过去的Objective-C工作..

微软Mac和iPad团队MS Office的大卫·欧文斯(David Owens)此前在Medium上发帖称,斯威夫特的推出对OBjc程序员来说是个糟糕的一天。

这让我对iOS和OSX开发的未来感到非常难过。我不认为,在这个时候,任何重大的变化发生在斯威夫特。关于斯威夫特,有很多基本的东西,我只是不是我的粉丝,我认为打破了OBJC的精神:实用主义。

然而,在最近的一篇帖子中,欧文斯说他改变了主意。他正在写博客,内容是创建一个轻量级的JSON(JavaScript对象表示法)库,提供他与Objc的“表现力”,“同时保持斯威夫特的语义。”他对斯威夫特的敞篷车的特点很乐观。

仅仅做了一点点工作(以及大量的时间与X code和Swift中当前的错误进行斗争),Swift就可以在类型安全性和表现力之间划清界限。我只能想象,当我们得到所有这些优点的适当文档时,我的大多数静态类型关注都会被忽略。

今天对斯威夫特的感觉好多了。=)

在Coconetics博客上,Drobnik回答了程序员是否应该切换到Swift的问题,以及将现有代码迁移到Swift是否有意义。当然,他对第一个问题的回答可以概括为“这取决于”,主要是基于一个特定的应用程序何时发布。然而,关于向后移民的问题,德罗布尼克说,有充分的理由等待。

我们有几个封闭和开源的项目使用目标-C..用一种新的语言改写一切是没有什么好处的。苹果允许你混合和匹配语言。如果您在现有项目中添加了一个新的类,您可能会让自己受到Swift的诱惑,并将其用于实现。或者即使是一个新的应用程序,你也可以在Swift从一开始就了解它,并能够给苹果反馈。我没有看到斯威夫特立即取代所有的目标C发展。

在我看来,德罗布尼克的方法类似于建立一种新的关系。他说,他将继续在Objective-C中为现有项目编码,当Appledoc支持Swift时,他可能会考虑在其中做一个项目。但是,没有理由“仓促地用一种新语言建立一种新的关系,并放弃一种你几年来成长为爱的关系。花点时间先认识一下对方。”

iOS7Programming Pushing the Limits的合著者罗布·纳皮尔(Rob Napier)在Cocoapony博客上发表文章说,尽管有报道称Swift是一种功能编程语言,但关于它几乎没有什么“功能”。他说这是一种“相当传统的面向对象语言。”但没关系。

我会喜欢所有的可可开发功能,但仅仅因为我喜欢它。我不知道它是否会进一步实现真正神奇的iOS和Mac应用程序的目标,至少在短期内是这样。不是说玻璃钢不是个好主意。我对此没有强烈的意见。只是与Swift相比,Objc程序员的学习曲线很高。我们需要将Swift与(非功能)Objc集成很长一段时间。

查看:Mac开发者在思考苹果新的Swift语言

纳皮尔希望斯威夫特能融入更多的功能功能。如果是这样,他说:“SWI FT可能是一种令人惊讶的重要语言,并且可以改进编程纪律,因为程序员必须学习功能编程才能在一个非常受欢迎的平台上开发。或者这些都不会发生,斯威夫特可能只是一种编写非常棒的iOS和Mac应用程序的语言,这也是可以的。

实用SWI FT发布了74个内置功能的列表(其中目前只有7个被记录在案)。“本文中使用的‘内置函数’的定义是Swift中可用的函数,无需导入任何模块(如Foundation等)。或引用任何类。”

《完整的周五问答:Mac OS X和iOS编程的高级话题》一书的作者迈克尔·阿什(Michael Ash)在斯威夫特发表了他所称的“有趣功能”的分析文章。清单包括:

明确的选择。SWI FT使可选值成为一类语言结构,并要求将任何可选类型显式标记为此类。

多个返回值。SWI FT允许函数返回多个值。

仿制药。这是一个巨大的。SWI FT支持泛型类和函数。

类型推断。静态输入很好,但它会导致代码中的痛苦冗余。

类结构。和Objective-C一样,Swift既有类又有结构..与Objective-C不同,Swift结构可以包含方法..

后来的关闭。这是一个漂亮的功能,同时是毫无意义的,真的很好。

操作员超载。我想这个会引起争议。

阿什说,他很期待使用斯威夫特。“它有很多功能,对于来自Objective-C的人来说似乎是陌生的,但我认为它们最终有很多意义,使用起来会很好。”

我们正处于从Objc到Swift过渡的最初几天,毫无疑问,将继续有反对者。最终,会有粉丝..然而,这种转变不会很快——我敢说——。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢