搜索

苹果公司Swift介绍:它是什么它意味着什么

gecimao 发表于 2019-07-14 04:10 | 查看: | 回复:

  人们可能会忘记苹果公司 WWDC 里的字母 “D” 代表 “Developer”,也就是开发者,顾名思义,“开发者大会”自然是是面向“开发者”的大会,开发者们可以从会议上了解新技术,引发新思路。

  6 月 2 日的 WWDC 重新提醒了我们这一点:软件和开发者才是开发者大会的重点。

  今年的 WWDC 并没有推出新的硬件设备(比如新的 iPhone、iWatch 或者其他设备),这让许多人感到无比失望。然而实际上,正是安装在设备上的软件让那些硬件设备变得物有所值,未来软件也会让设备变得物有所「穿」。一个快乐的开发者会带来更多、更好的应用,而让开发者能够更快乐且更容易地去开发软件的“利器”,正是开发工具或开发语言的更新。

  6 月 2 日的 WWDC 对于开发者来说最大的新闻莫过于苹果发布了 Swift,一门全新的编程语言。这门编程语言立志于让创造应用变得更容易。同时,苹果公司声称用 Swift 开发出的应用也能运行地更快、更稳定。Swift 语言承诺能完成所有的程序员的一切需求。这可能吗?

  这个问题有待于时间给我们一个答案。不过就我在 6 月 2 日的发布会上所看见的内容,Swift 语言看起来非常有这个潜力。如果你有异议,欢迎你打断我并与我进行讨论。相信我,我是一个开发者,至少我曾经是一个开发者。

  有许多方法可以让一个设备去做一些事情。有的设备更时髦一些:比如智能手机;有的稍微无聊一些:比如笔记本或 PC,而直接让设备做事的方法就是去直接写机器码,或者汇编语言。这些语言基本上是由程序员写得一条一条的指令指示计算机应该如何去做。每次内存中数字的改变、每次显示器上像素点的变换、每个计算机可能出现的行动,都需要程序员明确指出计算机应该如何处理。好的开发者当然能用这种方式来完成很棒的功能。不过你也可以想象得出,像这样写一个应用程序会非常枯燥无味,也极易产生错误。

  高级程序语言在这个时候就会非常有用。一个程序员可以借助高级程序语言写一条已经定义好了的指令,不用一条一条指示计算机去做什么。这一条指令会引导计算机一步一步进行很多的步骤。同时,比起机器语言和汇编语言,高级程序语言更像实际生活中我们运用的语言。高级程序语言也有语法,不过和实际的自然语言相比,高级程序语言的语法和结构与自然语言有一些细微的差别。

  假设你要让某个人从冰箱里帮你拿一瓶芬达。如果是高级程序语言,你只需要说「从沙发上站起来,然后从冰箱里帮我拿一瓶芬达」。接着这个人就会明白要如何做这件事。而如果是更底层一些的语言,你必须这样指示:「把你的两脚放到地上。用你的胳膊支撑一下使你能从沙发上站起来。将你的右脚迈到左脚前面,现在把你的左脚迈到右脚前面……」也就是说,从沙发到厨房的每一步都必须被明确地指示出来。

  C 语言是一种经典的高级程序语言。而其衍生语言 Objective-C,则成为了苹果 iOS 应用的开发语言。事实上,C 已经发展了 40 年,Objective-C 也发展了 30 年。所以现在推出一点新的东西并不奇怪。

  在所有的编程语言中,有一类被称为脚本语言。其中的区别有一点难以解释,不过请先不要在意,我们稍后会解释清楚。基本上,传统的高级程序语言需要在运行之前进行一个叫「编译」的步骤。编译会让这些指令转换成计算机可以理解的特定的机器语言。

  编译这个步骤,能够将语言从人类可以理解的编程语言转化为计算机可以理解的机器语言。如果一切顺利的话,编译之后运行的程序会出一个你期待的结果。编译的过程在程序运行之前,而且经常很慢。程序中出现的任何一丁点错误都会影响编译的过程。编译无法通过的话你甚至可能根本没有办法看到你的代码的执行结果。这显然会阻碍你的开发进度。

  而脚本语言则是一行一行地运行的。你可以很方便地在你写脚本语言的时候看到结果,并且你也不需要在编译时坐在旁边,等待漫长的编译过程结束。这让开发变得更快并且变得相对容易。然而脚本语言的用处一般比较有限。它们经常被用于处理更简单的东西,并且它们的表现也经常是非常有限的。

  Python 是一个典型的脚本语言。实际上,Python 在 WWDC 上恰好被苹果公司拿来用于和 Swift 进行比较。

  诸如 Python 这样的脚本语言更容易书写和测试。但是它们并不足够厉害,并且表现也经常欠佳。如果你需要写一个需要调动你设备的全部机能的游戏,那么相较于脚本语言,诸如 Objective-C 这样的传统编程语言会给你提供一个更好的调用你机器性能的能力,你也因此能写出更好的应用。但是这样的传统编程语言更难以学习,并且编译和测试时也更枯燥乏味。

  Swift 声称它拥有一切优点并且能摒弃一切缺点。苹果公司保证至少在一些最核心的基准上,Swift 的表现比执行同等的 Python 和 Objective-C 代码都要快。Swift 语言在 Xcode 开发环境下支持一种叫做「playgrounds」的功能,这种功能好像脚本语言一样,可以将 Swift 代码实时地进行可视化。

  作为 6 月 2 日发布会上的一个例子,一个开发者想要制作一个游戏。这个游戏能让气球以一个特定的模式上下飘动。为了实现这个目的,他想要用一个简单的数学函数:sin 函数。sin 函数有一个非常好的波浪形曲线,有在 x 轴之上的部分也有 x 轴之下的部分。这对于模拟一个浮动的气球来说堪称完美。

  在 Swift 里,开发者可以将 sin 函数的值非常方便地赋给气球。接着可以通过看应用内坐标系上显示的 sin 函数值的变化来监测气球的运动。这种视觉化让监测气球的运动变得非常简单。如果气球的运动不符合你的心意,你可以立刻修改它。如果是非脚本语言,开发者必须先编译他的代码,而后才能执行。如果执行结果不尽如人意,还得重新修改代码而后再度编译并执行。这个过程依据程序的大小,有可能耗费几秒、几分钟甚至更久。

  很显然,如果能在编码的同时即时地显示代码的执行效果,能够快速且方便地测试代码效果。这将大大地简化开发的步骤,并且开发者更快地开发更复杂的应用程序。如果写一个大应用,那么完善程序和测试部分十分枯燥并且累赘。如果 Swift 可以简化这个部分(至少发布会上它看起来能),那么 Swift 确实能让开发者更快地发布经过测试的应用程序。

  同时,Swift 还是一种非常精炼的语言。类似于 Python,你不需要写非常多的东西就可以获得你所想要的效果。这当然也能加速应用程序的开发进度。

  最后,如果 Swift 证明它能比 Objective-C 更快地开发应用程序,我们可以期待借助苹果新发布的 Metal 接口,我们无需购买新的 iPhone,就能在手机上看到未来的游戏里出现的更多更精细、处理更好并且处理速度更快的图像。

  非常多的开发者会立刻想到:学习这门全新的编程语言需要一些什么样的基础。和我讨论过的一些开发者表示对这个问题很有共鸣。对于能拿掌握最新最棒的程序语言,程序员们经常会感到非常享受。然而整个行业已经有很多教人们如何写一个 iPhone 应用的教程。然而在 Swift 发布后,除非你坚持继续用 Objective-C 来开发 iPhone 应用(但是没人会继续这么做),整个行业都会重新开始探索如何用 Swift 来开发 iPhone 应用。

  另一个问题是,如果一个语言简单易学并且易于运用,便有可能吸引来很多新手开发者发布一些不怎么好的应用程序。这个问题确实有可能发生,甚至可以说是非常有可能发生,不过事实上我不太担心这个问题。在上个世纪 40 年代第一门编程语言发布以来,任何的进步都会造成这样的一种现象,因此我觉得这个问题并不是特别严重。当然,有些人还会认为不用打孔机编程的开发者是业余人士呢。

  如果Swift能实现它所允诺的一切特性,那么我们会很快就看到更多,更快,更稳定的应用程序。/Tim Stevens/viaCNET

  像以前一样,空言不如实证。这些变化究竟效果如何就留着时间来评价吧。苹果喜欢在发布会上用许多的数据和基准来表示他们的产品比其它产品好上许多。不过当这变成发布一个全新的编程语言的时候,我们仍旧需要一些时间去真正了解它所能带来的优势。正由于是这样一种牵扯到基础的改变,也许将带来苹果开发者社区上发布的应用的最大的转变。

  大部分的消费者都不会重视 Swift 的发布。而这个发布却是为了能让应用程序达到最好的效果。所以现在你至少可以想你的朋友解释一下,为什么 Swift 是这个发布会上目前为止最值得激动的一个消息了。

  Tim Stevens 从九十年代中期开始写专业文章。自那以后,他所写的文章范围覆盖了从商业过程管理到电子游戏开发等众多领域。目前他正在写一些科技以及汽车领域的有趣的故事和有趣的对话。

本文链接:http://brazilianthongs.net/dijiyuyan/829.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部