苹果终于开源Swift啦



内容简介

【福利】苹果终于开源Swift啦



对大家和苹果自己都是件大好事


刚被扎克伯格生女儿和捐款刷屏,略有一会喘息机会的朋友圈又被苹果开源Swift的新闻刷屏了。


其实苹果宣布要开源Swift语言有一段时间了,不过总算兑现承诺。一声令下,“开源”,好,瞬间如火如荼~


Swift官网:

https://developer.apple.com/swift/


吐槽:不过苹果我说你的iOS操作系统能不能Bug少一点,这iOS9每次更新都不解决前面版本的大问题也是醉了~只顾着赚钱不好好写代码了是吗。。。


小编之前自学iOS的App开发时学了Swift 1。当时感觉有点像Javascript,又有点像C#,也有点像C++,还有点像Ruby。总之这门语言博采众长,并且可以说超越它所借鉴的那些语言。目前Swift已经到版本2了,相信进步很多。




Swift入门很容易,几乎毫无痛点,比Objectiv-C容易多了。而且用Swift开发iOS的App非常快速,简单明了。


据官方文档介绍,Swift语言不是解释型语言,它最终会编译成二进制代码,并且它的运行效率比Object-c要快(有待求证)。


关于Swift,一些有意思的方面大家了解一下:


- Swift是“雨燕”的意思,表示快捷,迅速


- Swift背后的LLVM


都说成功男人背后都有一个更成功的女人,Swift也不例外。


Swift 背后的“女人”是LLVM(Low Level Virtual Machine的缩写,表示“底层虚拟机”。女人本来就有点“虚拟”,很神秘,不是吗...)一直是开源的。


简单做一个介绍,LLVM 编译器是一个雄心勃勃的项目,其目的是要建一个可重用的编译器组件系统,可用于构建各种工具,包括编译器、调试器、JIT系统、优化器、静态分析系统等 等。LLVM 常用作 C 和 C++ 的优化器,能生成用于多种不同架构的机器码。LLVM 正在多方面扩展和改进,以支持新优化、新目标、新领域和新特性。


下图是 LLVM 的编译器三段式架构(Frontend,Common Optimizer,Backend):




按照 LLVM 的设计哲学,编译器添加对一种语言的支持只需要写一个新的 Frontend 就可以了(这里相当于在左侧添加一个 Swift Frontend),另两部分是可以复用的。


老外的设计就是厉害啊~


LLVM官网:

http://llvm.org/


- Swift 出自开源大牛 Chris Lattner之手。


Chris Lattner在编译器方面,为开源所做的贡献,可谓居功至伟。他是 LLVM 项目的主要发起人与作者之一,Clang 编译器的作者。所以Swift不开源,Swift它爸爸不答应啊。


Swift的爸爸还是一位帅锅,明明可以靠颜值,偏偏还要会IT:




- 微软表示将很快在 Visual Studio 中整合对 Swift 的支持。


贪吃的微软Microsoft怎么可能耐得住寂寞~


- 苹果推出 Swift 语言的背后商业目的


苹果不会纯粹为了开发社区贡献技术,更重要的是其商业原因。Objective-C 出现30多年来,其奇特的语法、冗长的写法,并不为大量的开发者所习惯,尤其是已经熟悉过像C++,Java、C的开发者,想转到Objective-C,心理上的门槛就挺高的。


Swift 的出现,让这个转换的门槛成为历史。可以想见的是,Swift 语言的出现,再加上开源,更多的开发者将熟悉和使用 Swift 语言,意味着在苹果的视野之中,增加了大量的、数以百万计的开发者的支持。


- Swift 开源意味着什么呢?


Swift 开源,必然导致众多开发者对其本身的深入参与,以Swift 目前的优良特性,会有高手把它迁移至Linux、Windows甚至 Android等平台。届时,Swift 也许会成为一门真正全栈式的编程语言。有了更多开发者的参与,Swift 开发库不足的情况,会快速缓解。


- 那么Swift 会不会替换Objective-C呢?


苹果官方目前没有说要用Swift 代替Objective-C,但是做iOS开发的默认语言就是Swift了。如果想了解Swift ,请尽早,新事物的窗口期就是那么长时间。


骚年们,赶紧学习Swift吧,不学了解一下也是很好的~

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...