如何评价swift语言(知乎)

如何评价swift语言(知乎)

ID:32555509

大小:225.05 KB

页数:21页

时间:2019-02-12

如何评价swift语言(知乎)_第1页
如何评价swift语言(知乎)_第2页
如何评价swift语言(知乎)_第3页
如何评价swift语言(知乎)_第4页
如何评价swift语言(知乎)_第5页
资源描述:

《如何评价swift语言(知乎)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、如何评价Swift语言?修改今天苹果推出了全新的基于脚本的编程语言Swift。Swift有类似Python的易用性,又有较强的运行效率。它弥补了Objective-C的哪些不足?融合了哪些其他语言的优秀特性?将它和C#相比,各有什么优劣?它会对未来的软件开发产生什么影响?作为一个程序员,此刻,一个对世界消费者和消费平台都有着广泛影响力的公司,推出了一个全新的语言,所有人都是0基础,你有什么想法?孙竟,专控萝莉20年MaxPassion、Mister.Z、刘博 等人赞同本想看完文档再写的,不过看到排名靠前的答案有些偏激(你们不就是想找个理由不学嘛),还是先写些看法吧。首先,它

2、不是一门玩具语言。去看看它的文档就明白了,feature非常丰富(我敢保证你们在半天内是看不完的)。再看它的库,Apple把Cocoa的API都用Swift写了个封装,而不是完全一致的。下面是文档里的例子:Objective-C:UITableView*myTableView=[[UITableViewalloc]initWithFrame:CGRectZerostyle:UITableViewStyleGrouped];Swift:letmyTableView:UITableView=UITableView(frame:CGRectZero,style:.Grouped)

3、所有参数都重写了有没有?如果不是想取代Objective-C,干嘛还去重写,你直接用那冗长的参数不就完了?不过现阶段底层仍然调用的是Objective-C的API,而不是直接用Swift。其次,一些被指出的缺点其实并不存在,或者并不严重:·数据结构少?还有原生的tuple和enumeration没提到,此外还能用Objective-C的NSSet,至少总量上比Objective-C多了几种。·没有多线程?可以用GCD的API,也被移植到Swift了。·没有私有属性?很多语言都没有,都靠使用者自觉。·只能与Objective-C互动?C也是可以的。·没有异常处理?Object

4、ive-C里基本也不用。补充一个缺点:不支持复杂的宏,只支持#define。很显然,这些缺点对很多开发者/团队来说不算大问题。此外,对于想转行做iOS或OSX的开发者来说,Swift是个很好的Objective-C替代者。这里没空一一列举Swift的优点了,文档里可以找出很多。简单来说,Objective-C只会更坑。苹果也说Swift是「AcompletereplacementforboththeCandObjective-Clanguages.」甚至你用XCode6新建一个项目,在选择语言时,Swift也排在Objective-C上面。最后,如果不是做iOS或OSX开发

5、,Swift算不上一门很好的语言。2014-06-05 59条评论       yuewang,要永遠跟智商高比自己的人來討論問題durtima、邱超凡、胡时伟 等人赞同我刪了原先有爭議的答案,重寫一下,之前列的每一點都在,只是論據上做了很多更新。不過基本觀點和原判斷一致--這就是個玩具語言,降低Apple平台開發門檻用的(否則要Playground幹嘛?),以至於Apple自己都不用。寫幾百幾千行的程序可以,數萬數十萬的項目就心有餘力不足了。等Apple自己項目採用了,我再有可能改掉這判斷其實這語言還有很多不足,但限於篇幅我還是列原帖中就提到的幾點-swift和c/c++

6、對接很麻煩,得通過objc(尤其是C++)這極大限制了它的使用。很多公司的代碼,C++比重很大,因為要跨平台或是有各種公司內部底層項目的依賴。swift在這點上相當糟糕。ObjC精明很多。-所有變量都public,沒有隠藏機制,不適合大型項目開發(很多人說無所謂,可以通過規範約束,這分明是沒多少大項目經驗的人說出來的話--我想問靠自覺好還是讓編譯器和IDE不讓你胡來好?很多時候,IDE中沒辦法補全代碼時,你才會想起“哦,原來它是私有的”。事實上,如果沒有語言層面的支持,這種問題即使像GoogleFB這種高手如雲的公司,同行peerreview代碼也不一定能發現,因為這種問題

7、本身就不好查,你發一個codereview幾千行調用,別人一個個給你查去?這些公司就是用如Python/PHP這樣的語言的,也有staticanalyzer來糾正程序員的很多問題)-基礎庫很爛,基本依賴objc的庫。是的,你原生有數組有哈希表,但除了這兩個,基本就沒啥了,連Set都沒有。所以到頭來還是得使用objc原有的api。這就産生兩個問題,一,objc不是typesafe的,比如沒有generic機制。二,效率比native的低,因為objc的methodcall不如function/methodcall高效

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。