1
dtfm 2017-01-28 00:58:28 +08:00 2
Python 蟒叔脸都绿了
|
2
clavichord93 2017-01-28 01:20:10 +08:00 via iPhone
@dtfm 赞
|
3
kingcos 2017-01-28 01:23:58 +08:00 via iPhone
痛苦并没有很大吧…
不过确实语法变动大一点,但这才出的第几个年头…毕竟开源,也不是设计者一个人拍案决定的吧。 Swift 创始人,就是跑特斯拉那货不还是很流弊的吗…… |
4
aminic 2017-01-28 01:24:57 +08:00 via Android 1
Python 年代久远,通过其不断打补丁的方式升级,熟手完全可以写出 23 兼容的代码。 swift 刚出没几年就飚版本同时向下兼容天差地别,从这点来说设计者功力没法和 c#的设计者 anders 相比。
|
5
sadaharu09 2017-01-28 05:19:35 +08:00
大家要对 Apple 有信心,我相信几十个亿砸进去,绝对可以让 Swift 发展壮大。
|
7
halden 2017-01-28 06:27:41 +08:00 via iPhone
楼主听过 Angular 吗?
|
8
eyp82 2017-01-28 06:53:43 +08:00 1
@ericls 大家都在吐槽 py2-3, 实际不知道有多少人写过 2-3 代码. 实际有个 six 之类的库基本可以无缝切换了.
|
10
Felldeadbird 2017-01-28 07:56:19 +08:00 via iPhone
前几个版本不稳定可以接受,但是当 3 版本后,隔一年又来一个 4 版本。又不向后兼容。问题就大。
|
11
laoyur 2017-01-28 09:23:20 +08:00 via iPhone
最近两个项目还是用的 2.3 ,真想说辣鸡,访问限制设的不对,编译 OK ,运行时直接 crash ,查了 N 久
同样的 app ,安卓包 7M , iOS 50M ,大写的尴尬 下个项目必须 3 了,改动还是有点的 |
12
mooncakejs 2017-01-28 09:27:05 +08:00
不搞向下兼容的语言都是坑
|
13
wohenyingyu02 2017-01-28 09:35:02 +08:00 via iPhone
@kingcos Xcode 不是一键转换……
|
14
plqws 2017-01-28 10:37:18 +08:00
Xcode 的一键转换能从 100 个错误转换成 999 个错误
|
15
fy 2017-01-28 11:02:13 +08:00
LLVM 的作者,实力很成问题?楼主你逗我
|
16
uxstone 2017-01-28 11:09:30 +08:00 1
私人项目想怎么改怎么改
对外发布出来的项目,而且还是作为一门语言发布出来的项目,就不应该这么折腾了. 如果不是 apple 的平台,谁会吊这种一年变一次的语言? |
17
expkzb 2017-01-28 12:00:46 +08:00 via iPhone
双刃剑
|
18
phrack 2017-01-28 12:36:00 +08:00 via Android
实力肯定是没有问题的,但是有失手的嫌疑。
主要由商业公司驱动,开发和维护的语言都有些让人不爽的特性,做决定的人对社区的想法客观上有忽视。 |
19
zxhhh 2017-01-28 14:23:51 +08:00
@plqws 哈哈哈真的是很蛋疼,之前研究过一段时间的 Swift 后来升级了一下 Xcode 然后再打开提示我升级然后我就升级了,后来就整项目全是错误然后我就再也没玩 Swift 了~
|
20
reus 2017-01-28 15:07:51 +08:00 1
同样是新出的语言, go 五年了, go 1.0 发布时就保证不会做不兼容的语言更新, go 1.0 可以编译并正常运行的程序,到现在 1.8 快出了,依然保证可以编译运行,一点不用开发者操心。
rust 也是, 1.0 发布之后,也不像过去那样了,保证兼容。 而 swift 根本就没有这种意识。未必是实力不行,只是没有承诺的意识,没有想过要保护开发者的时间投入,过于随意。 这种行事风格,和 LLVM 一脉相承,版本之间的 api 变化很多。 LLVM 这种编译器后端就算了,毕竟使用者不多。但是一个给应用开发者使用的语言,也搞这种不兼容更新,就很不厚道了。 |
21
anonymityl 2017-01-28 16:14:05 +08:00
@reus 背后是苹果吧,苹果的生态让他在与开发者谈判的地位上处于不用讨好开发者的地位, xcode 这么难用应该是一个例证吧。
|
22
kitalphaj 2017-01-28 16:54:53 +08:00
这样的做法并没有任何问题,强行向下兼容才容易导致语言左后设计得四不像。换句话说,你自己开发的程序不也要经常重写或者变架构么?
|
23
WildCat 2017-01-28 18:46:20 +08:00
说实话我都不想用 Swift 了。之前用 Swift 2 写的 V2EX 客户端,好久不更新了,一个用户给我反馈问题让我修复下 bug 。
我编译了下,迁移到 3 ,然后成吨的错误不想改了。。。 |
24
dorentus 2017-01-28 18:55:48 +08:00 via iPhone
|
25
learnshare 2017-01-28 19:19:55 +08:00
|
26
exploreexe 2017-01-28 19:37:23 +08:00
看了 LS 很多人的吐槽 感觉大家对 Xcode 和 swift 的感觉都差不多。 Xcode 每一次版本升级都是痛苦的,各种小毛病不断。
|
27
AlexaZhou 2017-01-28 20:54:38 +08:00
其实 Swift 并没有 APPLE 宣传的那么好。
AnyFlow 的前端界面用 Swift 实现的,在 swift 和 oc 交叉调用的地方,额外花了很多精力去解决一些莫名其妙的问题,如果纯用 OC ,会简单很多 |
28
tzm41 2017-01-28 22:00:34 +08:00
Swift 3 到 4 是承诺不会出现 breaking change ,可能只有一两个例外情况。
发展得快,很多特性还是很喜欢的。 |
30
halden 2017-01-29 00:46:17 +08:00 via iPhone
@learnshare 参考隔壁 react ,虽然这样比不太公平。。
|
31
bombless 2017-01-29 01:39:23 +08:00 via Android 2
目标的问题。一般软件供应商会认为兼容性关系到生死存亡,这个团队没有这种概念罢了
任何系统只要还在用都会有人觉得需要从新设计的,剩下的就看有没有人推动这事了 具体拿 c#举例,闭包完善了之后委托的设计就比较蛋疼了,范型的设计完善了之后原有的迭代器接口的设计就比较蛋疼了,范型用多了之后原有的范型参数列表语法的二义性就比较蛋疼了,这些都是 c#放弃兼容性之后能改进的 |
32
laoyur 2017-01-29 09:24:49 +08:00 via iPhone
@wenssh 我没表达清楚,是访问控制修饰关键字, private public 之类的,编译通过无警告,然而运行时秒崩,也看不出哪里挂,排查好久才试出来,换你你气不气
|
33
CYKun 2017-01-29 09:28:18 +08:00 via Android
然而向后兼容做的最好的 Java 天天被你们吐槽
|
34
zgqq 2017-01-29 09:52:34 +08:00 via Android
java 这方面应该算不错
|
35
learnshare 2017-01-29 10:37:56 +08:00
@halden react 一开始就有的设计思想, ng2 是后来才学到的
|
36
kanezeng 2017-01-29 11:05:34 +08:00
@halden angular 1 出来得太早,好多现在的标准都没有所以比较惨。 2 的话可以充分利用现代新标准了,所以有些比较大的变动出现在 1 和 2 之间我觉得是可以理解的吧。
|
37
halden 2017-01-29 11:40:55 +08:00
@learnshare @kanezeng 所以我后面说这样比不是很公平,但你也不能说锅都是标准的问题
|
44
valkjsaaa 2017-01-30 16:56:46 +08:00
突然想到联系到另外一个帖子,如果 Swift 早日实现自举,估计他们就不想天天改不兼容的语法了。
要不他们自己也得把代码全部更新一遍, 23333333 。 |
45
laxenade 2017-01-31 10:34:59 +08:00
@mooncakejs #12 长期来看,一直向下兼容也不一定是好事。比如 Java 每次更新都因为要兼容之前的顾虑太多导致发展太慢。
|
46
mooncakejs 2017-01-31 10:59:41 +08:00
@laxenade 长期来看向下兼容正是好事,向下兼容才是对开发者负责。这方面看 php 和 java c#都不错。
|
47
laxenade 2017-01-31 11:04:51 +08:00
@mooncakejs #46 php 没用过不是很清楚不好评论。 C#的做法我比较认同,只向下兼容两三个版本比较合适,一直向下兼容只会让系统越来越臃肿。
|
48
mooncakejs 2017-01-31 11:08:47 +08:00
@laxenade 微软是向下兼容的楷模, c#向下兼容不止两三个版本。历史包袱太大宁可新开一个坑,比如苹果不再升级 oc 搞 swift ,可惜苹果的新坑也没开好。
|
49
onesecure 2017-02-02 13:30:10 +08:00
“ Swift 从精通到重学”,苹果这么专横是有它的考量的。设想你是 Swift 语言的使用者,你能否因为它不向下兼容而弃用,如果你的选择是“不能弃用”,那么与你持同样想法的人在 Swift 语言的使用者中比例多少?如果这个比例足够高,那么苹果就会选择“抛弃包袱,拒绝兼容”的策略,否则它会做出相反的选择。
|
50
tvallday 2017-02-02 17:44:39 +08:00
一门新语言还是要很长时间去适应的。现在用 swift 的都是小白鼠,苹果才不管你们,谁叫他生态系统这么大这么好赚钱,一个 OC 已经足够用, swift 只不过是苹果锦上添花之作,它有着更长远的打算。
|
51
zenghaojim33 2017-02-20 23:18:16 +08:00
苹果的产品哪里有兼容性可言...swift 不是唯一一个也不会是最后一个
|