n****1 发帖数: 1136 | 1 其他的静态/OO/FP这些早就不是啥新特性了,swift所做的不过是选择性吸收而已。而
最独特的东西其实是auto ref counting.
Ref counting其实cpython/cruby这些解释器都有用,但像swift这样追求高性能的语言
还是第一个吧。ref counting应该是以cpu换内存,特点是low latency low
throughput,在移动终端比较适合,桌面就没啥优势了,服务器端就算绊脚石了吧 |
n****1 发帖数: 1136 | 2 还有就是如果出了cyclic reference, python里面是需要一个supplemental garbage
collection facility, 复杂度也接近gc了。这个机制可能触发得没有java频繁,所以
在python这种低速语言是可以接受,但swift越快这个负担就越重。
还有FP style code是会生成很多隐形的cyclic reference的,纯的ref counting根本
无解,这就是gc与lisp一同诞生的原由。Swift这种ref counting会导致FP style变成
鸡肋,那还不如去掉FP style呢
最后,如果swift需要手动保证acyclic的话,那debug就会比手动管理内存更加棘手。 |
c*******9 发帖数: 9032 | 3 objective c 的高级版本已经用ARC了。一般已UI为主的程序基本不会有什么问题。
游戏的object我一般尽量用pool,减少object生成。
【在 n****1 的大作中提到】 : 其他的静态/OO/FP这些早就不是啥新特性了,swift所做的不过是选择性吸收而已。而 : 最独特的东西其实是auto ref counting. : Ref counting其实cpython/cruby这些解释器都有用,但像swift这样追求高性能的语言 : 还是第一个吧。ref counting应该是以cpu换内存,特点是low latency low : throughput,在移动终端比较适合,桌面就没啥优势了,服务器端就算绊脚石了吧
|
W***o 发帖数: 6519 | 4 garbage collection咋样?
【在 n****1 的大作中提到】 : 其他的静态/OO/FP这些早就不是啥新特性了,swift所做的不过是选择性吸收而已。而 : 最独特的东西其实是auto ref counting. : Ref counting其实cpython/cruby这些解释器都有用,但像swift这样追求高性能的语言 : 还是第一个吧。ref counting应该是以cpu换内存,特点是low latency low : throughput,在移动终端比较适合,桌面就没啥优势了,服务器端就算绊脚石了吧
|
p***o 发帖数: 1252 | 5 shared_ptr has been out there and widely used for many years.
【在 n****1 的大作中提到】 : 其他的静态/OO/FP这些早就不是啥新特性了,swift所做的不过是选择性吸收而已。而 : 最独特的东西其实是auto ref counting. : Ref counting其实cpython/cruby这些解释器都有用,但像swift这样追求高性能的语言 : 还是第一个吧。ref counting应该是以cpu换内存,特点是low latency low : throughput,在移动终端比较适合,桌面就没啥优势了,服务器端就算绊脚石了吧
|
h**********y 发帖数: 1293 | 6 这那。。这都多少年的技术了,
另外。。。obj-c就有吧。。。
【在 n****1 的大作中提到】 : 其他的静态/OO/FP这些早就不是啥新特性了,swift所做的不过是选择性吸收而已。而 : 最独特的东西其实是auto ref counting. : Ref counting其实cpython/cruby这些解释器都有用,但像swift这样追求高性能的语言 : 还是第一个吧。ref counting应该是以cpu换内存,特点是low latency low : throughput,在移动终端比较适合,桌面就没啥优势了,服务器端就算绊脚石了吧
|
n****1 发帖数: 1136 | 7 我当然知道ObjC早就有ARC,可arc的acyclic也是要手动保证的。这个在imperative
style还好控制,oop里面就力不从心了,fp用arc是天方夜谭。
【在 c*******9 的大作中提到】 : objective c 的高级版本已经用ARC了。一般已UI为主的程序基本不会有什么问题。 : 游戏的object我一般尽量用pool,减少object生成。
|
n****1 发帖数: 1136 | 8
【在 n****1 的大作中提到】 : 我当然知道ObjC早就有ARC,可arc的acyclic也是要手动保证的。这个在imperative : style还好控制,oop里面就力不从心了,fp用arc是天方夜谭。
|
y*******g 发帖数: 6599 | 9 ARC的static analysis 基本都可以吧cycle 都找出来,有些false alarm不过也就是改
一下style的问题
【在 n****1 的大作中提到】 : 我当然知道ObjC早就有ARC,可arc的acyclic也是要手动保证的。这个在imperative : style还好控制,oop里面就力不从心了,fp用arc是天方夜谭。
|
n****1 发帖数: 1136 | 10 OMG, static analysis for circle reference? You must be greatest genius in
man kind, who almost solved the halting problem!
【在 y*******g 的大作中提到】 : ARC的static analysis 基本都可以吧cycle 都找出来,有些false alarm不过也就是改 : 一下style的问题
|
c*******9 发帖数: 9032 | 11 可能出现的circle reference objective c会有warning。
【在 n****1 的大作中提到】 : OMG, static analysis for circle reference? You must be greatest genius in : man kind, who almost solved the halting problem!
|
n****1 发帖数: 1136 | 12 这种false positve对C/C++/ObjC可以接受,你要是写high order function或者tail
call,两三行代码可以都弄出几十个warning,你手动解决完的时候,人家写汇编的都收
工了。
【在 c*******9 的大作中提到】 : 可能出现的circle reference objective c会有warning。
|