戏说大家关注的- Apple 新推出的编程语言 Swift?

有人说它相当于 C#,或是相当于 Scala 对 Java 的改进,我可以告诉大家,Swift 不是这样的语言。它更像一种让人快速做原型的 toy
language。

要求 Apple 发布下一代 Objective-C 语言的呼声早就有了,每年写数万字 OS X 评论的 Ars Technica 两年前就写了
Apple 应该去做一个语言,Objective-C without C 并且使用更现代的功能和更短的 API,以及对自动类型推导的支持,文章见 OS
X 10.8 Mountain Lion: the Ars Technica review
 。

但 Apple 显然没有认真对待这门语言。很明显的,他们根本不想把 ObjC 给替换掉。并且按 Apple 的风格,如果他们把 Swift 当 ObjC
的未来来对待,肯定会有一到两个 iOS/Mac 应用使用 Swift 改写。(比如 Apple 当年要砍 Carbon,首先做的就是把 Finder
重写了)。

从语言角度,Swift 有太多的缺点:
- 它的标准库太差,只有 Dictionary, Array 和 String 及数这几种数据结构,连个
Set 都没有。想用别的?你还是要用 ObjC 的。
- 它没有任何对异步/同步编程的支持。它没法绑定使用
GCD,因此任何正经的网络应用根本无法编写。
- 它没有任何的保护机制(private, protected),所有的 method 和 variable
都是全局可见的,这显然不能满足正经工程项目的需要。
- 只能和 ObjC 互动。如果你想正经地使用 C 或者 C++,你得写 ObjC 的
wrapper。
- 没有办法 catch Objective-C 的 exception,如果一旦出了 exception,你的 App
立马就崩了。

Chris
在设计这门语言时,可以明显地看到他的短视。这也很正常,他是一个做编译器的,不是做语言研究的。所以这门声称支持函数式编程的语言,根本不是函数式的:

仅有的支持在 lazy,闭包,及简单的函数语言函数(如 map, filter)。这 ObjC 中都能做
- 没有 pattern
matching
- 类型推导差不多和 C++11 差不多,没有使用 hindley milner。

从上面这些特点看, Apple 对其的定位仅是给对 ObjC 头疼的开发者降低学习曲线所推出的玩具语言。前面五条中的每一条,基本都是致命的,因此
Apple 自己的项目也不会使用。做个早期 proof of concept 的 prototype 到是可以的。

我可以想象,实现上 Swift 是很简单的(LLVM 很成熟了,写个新语言越来越简单,比如只要几步就能做个小语言: 1.
Kaleidoscope: Tutorial Introduction and the Lexer
),当然有可能 Apple
将来会解决这些问题使得其真正实用。但现在来看,Apple 并不希望 Swift 来替代 Objective C。

戏说大家关注的- Apple 新推出的编程语言 Swift?,布布扣,bubuko.com

时间: 2024-10-15 16:28:39

戏说大家关注的- Apple 新推出的编程语言 Swift?的相关文章

【转】如何评价 Apple 新推出的编程语言 Swift?

如何评价 Apple 新推出的编程语言 Swift? 原文地址:http://www.zhihu.com/question/24002984 评价:如果你会Objective-C,你不需要去看它. 如果问我这语言对普通开发者重要不重要,我说重要,可以明确告诉你这一点--它是Apple 在WWDC 向全世界推出的重磅语言我怎么能说它不重要?它降低了入门的门槛.使得大量的JS, Python, Ruby用户会使用Apple 的技术为其开发程序.它的作用,和Core Data, Interface B

Jimmy Kimmel 搞笑节目 - 你觉得Apple 新的 "iTime 智能手表” 如何?

Jimmy Kimmel 美国talk show的主持人,最近特意做了一个搞笑的小测试,看看大家是多么喜欢Apple的产品,即使是一个用卡西欧手表,贴上Apple商标伪装的iWatch,大家都是很高兴拥有.这个要放在国内访问一下那些什么什么品牌的爱好者,呵呵,就有趣了,估计国内不敢这样做,翻译下: Jimmy: 苹果电脑又度过了一个非常棒的周末,最近的EARN上的报告说,昨天他们上季度的收益大于370亿美元,每一股收益赚了28美元,看上去不错. 最近传说,他们正在做一些令人兴奋的产品,令人信服的

Google 新推出Background sync API

Background sync是Google新推出的Web API,可延迟发送用户行为,直到用户网络连接稳定.这样有助于保证用户想要发送的数据就是实际发送的数据. 目前存在的问题 网络是消磨用户时间最多的途径,时间浪费在网络上等待网页加载,网页呈现等一些加载数据方面. 但是有很多时候,并不希望浪费时间,更期望达成是以下的体验:1. 拿出手机:2. 实现用户目标:3. 放回手机:4. 享受人生 然而,流畅的用户体验往往都会受糟糕的网络而影响,常常会为用户呈现空白屏幕或停滞不动的进度条,用户最多能容

军工行业:关注军事外交新动向

军工行业:关注军事外交新动向 字体: 大 小 换肤: 收藏 截至1 月30 日,近一个月国防军工行业指数增长3.5%,同期沪深300 指数增长-0.6%,行业跑赢指数4.1%,在中信一级子行业中排名18/29.近一周国防军工行业指数上涨-2.4%,同期沪深300 指数增长-3.8%,跑赢指数1.4%,排名25/29. 观点综述:我们看好国防军工行业,2015 年关注改革及价改方案出台. 上周军工板块冲高后回落,我们认为短期板块高位震荡概率较大.习大大在全军外事工作会议上强调,进一步开创军事外交新

Android零基础入门第32节:新推出的GridLayout网格布局

原文:Android零基础入门第32节:新推出的GridLayout网格布局 本期主要学习的是网格布局是Android 4.0新增的布局,和前面所学的TableLayout表格布局 有点类似,不过他有很多前者没有的东西,也更加好用. 一.认识GridLayout 网格布局实现了控件的交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由布局的开发.网格布局用一组无限细的直线将绘图区域分成行.列和单元,并指定控件的显示区域和控件在该区域的显示方式 下表显示了 GridLayout常用的XML属性

医疗时鲜资讯:关注医疗未来新趋势

背景: 中国医疗行业正在面临着重大的变革,时下诸如"多点执业"."全科医生"."家庭医生"."网络医疗"."移动医疗"等词汇越来越受到大众的关注,常常被推送到各大网站的头条,因此本系列博文主要负责摘录相关的资讯,文后或许会有感而发而牢骚几句,谨记:本人仅仅是凑凑热闹而已-- 精彩资讯: 5000元诊金 美籍执业医师在广州医院开诊 http://mp.weixin.qq.com/s?__biz=MjM5ODY

WWDC三大看点:Mac新系统Yosemite、iOS 8及新编程语言Swift

导语:苹果公司专门针对开发人员公布全新的 Swift 编程语言以及新版的 Xcode,苹果公司称其拥有"快速.现代.安全.互动"等特性 苹果在今年的 WWDC 开发者大会上发布了新版 Mac OS X 系统及 iOS 系统,带来多项改进或体验优化.本次大会是苹果第 25 届开发者大会,苹果注册开发者已达 900 万名. 据苹果 CEO 库克介绍,全球 PC 行业下滑5% 的情况下,苹果 Mac 却实现了 12% 的增长,总装机量达到 8000 万台,而最新一代操作系统 Maverick

转 苹果的新编程语言 Swift 简介

苹果官方文档地址 https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html 原文地址 http://zh.lucida.me/blog/an-introduction-to-swift/ 关于 这篇文章简要介绍了苹果于WWDC 2014发布的编程语言--Swift. 原文作者: Lucida Blog 新浪微博 豆瓣

苹果发布【新开发语言】Swift

Swift is a multi-tenant, highly scalable and durable object storage system that was designed to store large amounts of unstructured data at low cost via a RESTful http API. "Highly scalable", means that it can scale from a few nodes and a handfu