class InTheVehicleFragment : FragmentCompat() { private val presenter = InTheVehiclePresenter(this)
companion object {
fun newInstance(): InTheVehicleFragment {
return InTheVehicleFragment()
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_in_the_vehicle, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
presenter.setup()
initView()
initListener()
}
private fun initView() {
//setInCarNum(25)
}
private fun initListener() {
container_add_car_plate_num.setOnClickListener { presenter.gotoAddCarPlate() }
container_car_open_order.setOnClickListener { presenter.gotoSerOrder("") }
}
fun httpError() {
rcv_today_cars.visibility = View.GONE
container_loading.visibility = View.GONE
container_fail.visibility = View.VISIBLE
container_fail.setOnClickListener({
presenter.fetchHistoryCars()
})
}
fun httpSuccess() {
rcv_today_cars.visibility = View.VISIBLE
container_fail.visibility = View.GONE
container_loading.visibility = View.GONE
}
fun setTodayRv(mAdapter: InTheVehicleAdapter) {
rcv_today_cars.setupVertical()
rcv_today_cars.adapter = mAdapter
}
fun nodify() {
rcv_today_cars.post {
rcv_today_cars.adapter.notifyDataSetChanged()
}
}
}
写的我好难受啊
1
lwbjing 2018-09-26 14:30:49 +08:00
他们都跟我说未来会多。。
|
2
luopengfei14 2018-09-26 14:38:24 +08:00 via iPhone
楼主思想上被草多了,就习惯了
|
3
firefffffffffly 2018-09-26 14:53:02 +08:00
感觉写得还可以啊,习惯两天就真香了,不过我们屏蔽了不经过 findViewById 直接操作 view 的写法
还有个代码精简点 fun newInstance() = InTheVehicleFragment() |
4
loshine1992 2018-09-26 14:54:49 +08:00 1
kotlin 还没 release 的时候就在用了,真香。
|
5
hjw45611 2018-09-26 15:16:06 +08:00
私人项目在用,公司项目不让用。
|
6
M0 2018-09-26 15:17:49 +08:00
滚回 java 了。
|
7
youxiachai 2018-09-26 15:20:45 +08:00
....你都用 kotlin 插件了..为啥...id 命还要按照下弧线那套..直接用驼峰啊...
|
8
GoodRainChen 2018-09-26 16:34:48 +08:00 2
之前公司用过一段时间,然后慢慢又用回 java 了...没有任何原因,就大家不约而同
没发现有什么本质上的优势,写代码最花时间的还是思考,而不是打字 |
9
closedevice 2018-09-26 17:03:11 +08:00
不推荐花时间在 Kotlin 上,本质没有变化.
|
10
shawndut 2018-09-26 17:13:53 +08:00
还好吧,用起来可以缩减代码量,语法糖有些多
|
11
66450146 2018-09-26 17:33:52 +08:00
我们不写 Kotlin 已经招不到人了,孤狗肯定不愿意在 Java 上吊死
|
12
Maiiiiii 2018-09-26 17:52:17 +08:00
写多一点就适应了,感觉比 java 方便
|
13
KNOX 2018-09-26 18:23:49 +08:00 via iPhone
@GoodRainChen 是不是你们用 java 的思维去写?我是觉得 kotlin 需要深入理解才能写好。
|
14
whitepoppy OP @loshine1992 老哥啊 我是真不想写 我来的时候那个 sb 就已经用 kotlin 了
|
15
qiyuey 2018-09-26 18:29:41 +08:00 via Android
服务端开发,全 Kotlin
|
16
icris 2018-09-26 18:29:52 +08:00
|
17
whitepoppy OP @GoodRainChen 我同意 浪费时间 没以前写的顺手了 写起来太别扭了
|
18
loshine1992 2018-09-26 18:33:42 +08:00 2
@whitepoppy #14
骂别人 sb 的时候想想自己为什么不拥抱变化,为什么不愿意学习。 拿着工资还可以学东西是多好的事情啊 而且会 Java 的人学 Kotlin 真的成本超低,2~3 天就可以上手,1 周看完一些特性就可以无缝使用了 |
19
icris 2018-09-26 18:35:32 +08:00
推荐几行代码
inline fun View.gone() { visibility = View.GONE } inline fun View.visible() { visibility = View.VISIBLE } inline fun View.invisible() { visibility = View.INVISIBLE } inline fun View.visibleOrGone(visible: Boolean) { if (visible) visible() else gone() } inline fun View.visibleOrInvisible(visible: Boolean) { if (visible) visible() else invisible() } 就可以 rcv_today_cars.gone() 这样再用回 Java 写 setVisibility 的时候就会难受了。 |
20
whitepoppy OP @loshine1992 这话你怎么不和金融行业的说呢 公司项目要的是稳定 自己另说 不写也可以 但他封装的东西 比起 java 还难写 还不让改
|
21
loshine1992 2018-09-26 18:43:21 +08:00
|
22
sampeng 2018-09-26 18:45:49 +08:00 2
kotlin 是唯一一个改善让我觉得 java 系还能一战的语言。
每个特性都是为了节省时间和吸收其他现代化语言设计的。。每个特性都爱不释手。。。 用 kotlin 和用 java 的思维去写代码不知道哪里冲突了。。。。。。 ps:lz 写的还蛮好的啊。。。 |
23
whitepoppy OP @loshine1992 那倒是好了哦 关键不让啊 非要按他的要求写 天天还沾沾自喜 233
|
24
storypanda 2018-09-26 18:47:42 +08:00 via Android
让我想起了我当时选择 Swift 和 OC 的抉择,但 Android 自学我选择 Java
|
25
GoodRainChen 2018-09-26 18:49:08 +08:00 1
@icris
首先,我没打算否认 kotlin 的代码更加简洁,有他的先进性(当然,我个人用着其实也不算太舒服,先搁置这个问题) 但是,这些便捷对于开发效率,正如我之前写的,提升没有想象中的显著。写过一段时间就会发现,kotlin 对于类型安全等方面的限制更加严格,把简化写法带来的优势抵消了不少。 相反地,便捷的语法、简化的语法糖,势必带来代码阅读需要更多的思考,哪怕你觉得微不足道,但是积累起来也是影响效率的。毕竟你看代码思考要转个弯,没有 java 那么傻瓜(直白)。举个例子,B.setXXX(A) 简化成 B.XXX = A,代码上 set 改成了=,省不了两个字符,但是屏蔽了 setXXX 是个 method 的事实,也许别人就在这个 setXXX 里做了计算逻辑,你看代码的时候很容易不小心漏过去。这只是个例子,你可能有办法反驳我,但是我希望我的意思能传达到 |
26
xd314697475 2018-09-26 18:53:52 +08:00
官方没支持时就在用了,比 java 爽吧
|
27
loshine1992 2018-09-26 18:55:49 +08:00
|
28
whitepoppy OP @loshine1992 什么 boss 都是搬砖的
|
29
whitepoppy OP @xd314697475 不爽 我感觉差别不大
|
30
lucky2javascript 2018-09-26 19:32:00 +08:00
现在用 flutter 写
|
31
xiaoshenke 2018-09-26 19:51:55 +08:00 via Android
不多 我就不用
|
32
icris 2018-09-26 19:59:41 +08:00
@GoodRainChen #25
从下往上说。 首先 getter setter 也不是 kotlin 首创,你可以观察观察 C# 程序员对 Java 的 set 方法什么评价。同时,方法调用者不需要也不应该关心方法内部逻辑。如果看一个 x.a = 1 你不知道里面有没有计算逻辑,那么如何知道 x.setA(1); 里面有没有计算逻辑?如果一样不知道,这一项打平没毛病吧? 那么便捷的语法对代码阅读需要的思考量会增多吗?我觉得会减少。对于语句 x.toJson() 和语句 objectMapper.writeValueAsString(x) ,哪一个能一眼看出在做什么? 再往上,类型安全限制,就是非空呗?首先自己写的 kotlin 方法和属性能不能空完全自己控制,Java 代码没有明确注解的都是 String! 类型,做不做检查都不会报错,Java 代码标注 Nullable 的你写 Java 不也得写一块儿检查?如果区别是 kotlin 必须检查而 Java 可以不检查让它运行时空指针,那我是只看出来好处。 但看起来楼主是来喷人的,在这讨论这些意义不大。 |
33
GoodRainChen 2018-09-26 20:15:38 +08:00
@icris
“如果看一个 x.a = 1 你不知道里面有没有计算逻辑,那么如何知道 x.setA(1); 里面有没有计算逻辑”。 x.setA(1)更接近本质,而 x.a = 1 是封装了一层的简化版本。实际工作中不关心他人代码的内部逻辑是很难的,场景很多:比如新人入职、新接手模块,又或者做 review,又或者定位问题,尤其是小团队或者小组负责人,每个人都必须对项目整体了如指掌。屏蔽越多本质上的细节,意味着越容易让人的思维被误导 第二点其实就是说到了这个 kotlin 麻烦的地方,目前 Android SDK 就是用 java 写的,kotlin 自己玩,对于空值的保护确实不错。但是带上 Java 写的 AndroidSDK,就有了不少的麻烦,两种语言之间的类型转换让事情变麻烦了 再说下去有点类似争 XX 语言天下第一了。我也觉得意义不大。 所以我再总结一下我的观点,kotlin 不坏,但是似乎没有好到顶着招聘和学习成本去强制引入它,尤其是如果其他同事不喜欢 kotlin,那更是带来内部矛盾,得不偿失 |
34
mmdsun 2018-09-26 20:18:58 +08:00 via Android
没有本质变化。Java13 估计 var 携程 扩展函数 都会有了
|
35
icris 2018-09-26 20:44:13 +08:00
@GoodRainChen #33
第二点我觉得我已经说清楚了,我再试着解释解释。注解 Nullable 的,具体举例 protected void onCreate(@Nullable Bundle savedInstanceState), 它在 kotlin 里调用的时候提示是 onCreate(savedInstanceState: Bundle?) , 注解了 NonNull 的 public void onSupportActionModeStarted(@NonNull ActionMode mode), 它在 kotlin 里调用的时候提示是 onSupportActionModeFinished(mode: ActionMode), 没注解的,具体举例 public void setContentView(View view) , 它在 kotlin 里提示是 setContentView(view: View!), 无论哪一种,正常逻辑都跟 Java 里调用是一样的流程( Java 用的 if 逻辑 kotlin 也能用,kotlin 的 ? 逻辑 Java 不能用,这一条显然是 Java 更麻烦 ),非正常逻辑下区别是调用 onSupportActionModeFinished(null) 在 Java 里可以正常编译等运行时报空指针,Java 里的 onCreate 里面可以直接用 savedInstanceState 而不需要判断非空等第一次打开 Activity 报空指针。我觉得这个能力真是毫无用处。 第一点,就按你的需求来,在 Java 中,如果你要看 setXXX 内部逻辑,你要看到一个 setXXX 就点进去看看;在 kotlin 中,同样的需求,你可以看到一个等号就点进去看看;如果 Java 里这个 setXXX 是 Lombok 生成的,甚至点进去看的时候都同样跳转到声明处。我没感觉出来区别。 |
36
GoodRainChen 2018-09-26 20:53:36 +08:00
@icris
就以 setContentView(view: View!)为例 假设这个 setContentView 是我写的,我明确知道 view 逻辑上根本不可能为 null,但是在这里被转换成了 View!类型,是不能和 View 通用的,我得加一步转换,否则每处用到这个 view 的地方都要加"?"来处理。 而在原本的 java 里,我这里不需要任何额外操作 |
37
icris 2018-09-26 21:01:30 +08:00
@GoodRainChen #36
首先,你这个逻辑是错的。setContentView 是你写的,那是谁在调用 setContentView ?你自己调用你知道,团队成员调用你也知道?他们调用传个 null 进来,你是不是要崩? 而此时如果你们用 kotlin,这个方法就可以是 setContentView(view: View) ,谁也不会传 null 进来。 其次,这个方法不是你写的,它本来就可以给个 null,如果你重写方法并不处理 null,总有第三方库会让它出错。 |
38
GoodRainChen 2018-09-26 21:07:33 +08:00
@icris
由外部保证参数的合法性,否则直接崩溃反而比较好。就像有些方法判断参数合法性,不合法直接扔一个参数不合法的异常出来,直接崩了。这是很常见的一种模式。 那我再换个,不是入参,是返回值,比如 xxx.toString() 从 Java 拿过来 String!,明明可以确认这玩意儿不可能为空,还是要判空,不是给人添麻烦吗? |
39
icris 2018-09-26 21:09:15 +08:00
@GoodRainChen #36
等等,你好像挖了个坑给我,标注 ! 的东西作为方法返回值类型时在 kotlin 里根本不需要判断非空也不需要加 ? 调用,作为参数重写的时候可以自己选择加不加可空,你说的不能和非空类型通用的是 savedInstanceState 这样的 Nullable 的 东西 |
40
theworldsong 2018-09-26 21:13:08 +08:00
公司项目使用。全线在用。
|
41
icris 2018-09-26 21:17:13 +08:00
@GoodRainChen #38
常见的模式是判断了再抛异常出去,直接报空指针可不常见(要说常见倒也常见,只是这种时候可算不上模式)。 建议打开 IDE 写几行试试看,别靠猜。推荐测试方法 getMenuInflater(),kotlin 里的 menuInflater,类型 MenuInflater!,看看不加问号报不报警告。 |
42
crist 2018-09-26 21:20:29 +08:00
哈哈哈哈哈哈哈哈哈
|
43
icris 2018-09-26 21:20:48 +08:00 1
@GoodRainChen #38
我也再复制一个正常的不接受空参数的方法的实现供参考 @Override public ActionMode startSupportActionMode(@NonNull final ActionMode.Callback callback) { if (callback == null) { throw new IllegalArgumentException("ActionMode callback can not be null."); } ... } |
44
abeholder 2018-09-26 21:31:49 +08:00
kotlin 挺好的啊,上半年的时候有几天下午在公司划水,就看了下官网的语法,然后把以前写的猜单词的小程序用 kotlin 实现了下。
感觉用起来比 java 真的要舒服很多诶。。 但是之后一直没用过,现在基本上 kotlin 的语法已经忘的差不多了。。 然后这个程序我也已经看不懂了。。。 https://github.com/abedormancy/ToyPrograms/blob/master/src/game/kotlin/GuessWord.kt ,有没 kotlin 大佬帮忙看下各种语法是否使用得当。。。0 0. |
46
kaedea 2018-09-26 21:47:27 +08:00 via Android
协程都出稳定版了,为啥还不用...
|
47
cgpiao 2018-09-26 21:55:14 +08:00 via iPhone 1
根本原因还是思维的懒惰,你用 kotlin 还在用死板的 java 思想,当然怎么写都不爽。何不培养 kotlin 的思想呢,我觉得现代语言肯定比旧的语言好的,因为没有陈旧的历史包袱,不用做那些痛苦的妥协。
|
48
grantonzhuang 2018-09-26 22:15:31 +08:00 via Android
kt 好用的地方除了空值判断这个,各种默认 final 也挺好的。主要不在于技巧和写法,而在于思想。
|
49
grantonzhuang 2018-09-26 22:16:11 +08:00 via Android
如果只是简单的把 Java 的逻辑翻译成 kt,那确实没啥必要去换
|
50
icris 2018-09-26 22:34:03 +08:00 1
@abeholder #44
放到 IDEA 里,很多语法优化建议都会给出弱警告,比如一些变量提示可以私有的,比如 it.trim().length > 0 会提示 Replace size check with 'isNotEmpty' ,按提示会修改成 it.trim().isNotEmpty()。 还有一些无关紧要的不会提示的地方,比如 it.trim().isNotEmpty() 还可以改成 it.isNotBlank() , .filter { it == answer[0] }.length 可以改成 .count { it == answer[0] },这些方法都是只要看见有这个方法就知道怎么用的,我觉得没必要特别记忆,写个点想要什么就打什么,有方法就用,没方法的经常用的话也可以造个方法用,写得跟写英语一样就行了。 |
52
bumz 2018-09-26 23:38:43 +08:00
Kotlin 是 IDE 公司设计的,Java 是程序语言领域的大师级人物设计的,于是你发现所有那些擅长 marketing 的叫嚣着替代 Java 的语言,其实最终都不如 Java
|
53
whitepoppy OP @icris 思维方式不是怎么好改的啊 有方便的地方也有不好的地方 还是觉得那个顺手就用那个
|
54
icris 2018-09-27 00:04:40 +08:00
@bumz #52
这个于是起什么作用?为什么不如,哪不如?大师级人物干什么都是大师级,大师级人物的 NetBeans 怎么没人用呢? |
55
huclengyue 2018-09-27 00:06:34 +08:00 via Android
kotlin 加 anko 真香
|
56
bumz 2018-09-27 01:20:32 +08:00
@icris #54 阅读偏正短语的时候要注意定语。
「程序语言领域的大师级人物」、「 IDE 公司」都是偏正短语。 「于是」后面的是按照现有的信息对未来的期望,这点从「最终」一词的使用就可以看出了。 既然是期望,「哪里」、「为什么」就是次要的问题。这就好比「百度出品」和「 Google 出品」的差别一样。 |
57
icris 2018-09-27 09:02:54 +08:00
@bumz #56
那原因不问,展望一下擅长 marketing 的叫嚣着替代 Java 的 C# 未来将会如何吧,毕竟是微软做的。 |
58
dagger2 2018-09-27 09:13:22 +08:00
我用 kotlin 就一个原因,kotlin 写出来的代码更漂亮,能让我开心。。。
|
59
fan123199 2018-09-27 09:17:46 +08:00
Kotlin 太好用了, 就用 function extension 和 入表达式,就够了。写起来飞快,简直是封装中的封装。然后一些 list,map 等的操作语法糖,让人爱不释手。
但是, 在我用了一段时间后还是发现一些问题。1,团队合作的问题。太简化,就需要理解。这个要看风格大家能不能互相接受。如果风格一致,那么大家都开心。2 , 搜索定位。 比如以前搜 setText,我可以知道哪里进行了文字设置。但现在不行了,全是等号。 Android 上很多调用时频繁且繁琐的,能简化一点代码就简化一些。每次写 java 版的 dialog 就感觉在浪费生命。 最后。Kotlin 大法好。 |
60
ayayui 2018-09-27 09:22:57 +08:00
能用 Kotlin 的时候我都不想用 Java
|
61
davy1995 2018-09-27 09:29:13 +08:00 via Android
这个时候还有吐槽没 get 到 kotlin 的好处的吧,就好比吃水果吃了水果皮没吃到果肉吧
|
62
wupher 2018-09-27 09:31:03 +08:00
服务端自己负责的一个项目,目前是全 kotlin。
Android 只有私人项目了。 写习惯 kotlin 和 Groovy 后,我自己是非常讨厌写 Java 了。不过,kotlin 对型别有时要求过于严格,有时也挺麻烦的。 |
63
notreami 2018-09-27 09:32:49 +08:00
你们用吧,反正最后还是需要深入了解 java
|
64
chocotan 2018-09-27 09:37:22 +08:00
多不多,看别人的统计结果吧
https://www.oschina.net/news/97762/the-state-of-kotlin-2018 ----- 前两天看到我们公司一个安卓项目已经在用 kotlin 写了 |
65
closedevice 2018-09-27 09:40:52 +08:00
以为大家都在谈语言的本质,而非语法,但看下来全程是谈语法的...
|
66
icris 2018-09-27 09:44:26 +08:00
@closedevice #65
本质还是 JVM 语言,编译出来 .class 再反编译回去还是 Java,不谈语法有什么好谈的 |
67
icop 2018-09-27 09:52:07 +08:00
最主要的是看公司整体用什么。
|
69
closedevice 2018-09-27 10:44:19 +08:00
@icris 这一个本质背后蕴藏的体系非常庞大,只谈语法却是小了格局.
|
70
zhangwugui 2018-09-27 10:48:32 +08:00
感觉是思维的一个转换。
|
71
xuhaoyangx 2018-09-27 10:50:40 +08:00
本质来说 kotlin 其实还是一对语法糖,但是真香
|
72
GoodRainChen 2018-09-27 10:52:26 +08:00
|
73
bumz 2018-09-27 11:00:28 +08:00
|
74
icris 2018-09-27 11:04:50 +08:00
@GoodRainChen #72
你还在说 setContentView,这个方法根本没有标 NonNull,打开 IDE 看看这种 View! 的东西怎么处理的吧,别老给我挖坑了。 我反正已经复制了一个 Google 写的判断参数是 null 就抛异常的 startSupportActionMode 方法出来,你可以认为这完全是浪费时间,就算不写也是一个 NullPointerException,我只能说这是正常逻辑该有的操作。 还有,不是「没发现有什么本质上的优势,写代码最花时间的还是思考,而不是打字」吗,怎么连个 if (x == null) 都没时间写了?既然确实要这点儿时间,那 kotlin 优势不就又出来了? |
75
icris 2018-09-27 11:12:50 +08:00
@bumz #73
第一,外包公司也用 Java (同时外包公司不用 kotlin )。 第二,你前一句说要展望未来来着,看今天市占有什么用,.net 开源才刚开始。 第三,我试着理解一下你的逻辑:为什么 Java 好,因为它是「程序语言设计专家」开发的,为什么「程序语言设计专家」是「程序语言设计专家」,因为他开发了 Java ;为什么说微软没有「程序语言设计专家」,因为 C# 不好,为什么 C# 不好,因为它不是「程序语言设计专家」开发的。是这样吗? |
76
GoodRainChen 2018-09-27 11:19:19 +08:00
@icris
唉,我打个比方,你非得揪着这个真实的方法不放,难道要我顶着安全红线把公司业务代码拿出来讨论吗? 我们纠结这个问题的原点是: [kotlin 对于类型安全等方面的限制更加严格,把简化写法带来的优势抵消了不少] 你说你代码简洁,省点时间,结果全在别的地方把省的时间又找回来了,这没多大优势啊 |
78
auhah 2018-09-27 11:22:06 +08:00
挺香的。。。写起来蛮爽
视野之内全是干货的感觉,冗余代码少了很多 |
79
icris 2018-09-27 11:23:39 +08:00 1
@GoodRainChen #76
我再说一遍,你说的关于 kotlin 的 ! ? 限制,全是错的。我已经说了实际上 kotlin 是怎么处理 Java 方法定义的,你不愿意听不愿意看不愿意试,也行,至少结论应该是「 kotlin 对于类型安全等方面的限制更加严格,可以节省更多写 if (x == null) 的时间」。 |
80
zzzmode 2018-09-27 11:31:42 +08:00
用 kotlin 可以少写很多代码
|
81
xayoung 2018-09-27 11:32:24 +08:00
iOS 来问下,kotlin 会有 swift 那样重新学几遍的困境么? (几个项目经历了 2.1->2.2->3.0->4.1->4.2,打开 Xcode 面对成千上万个错误就想死)
|
82
GoodRainChen 2018-09-27 11:34:33 +08:00
@icris
还是你自己去试试吧,或者是因为后面插件又跟新了? 反正我这里直接 onCreate 里面直接用 savedInstanceState.getString("") 是会提示错误的:Only safe(?.)or non-null ..... |
83
bumz 2018-09-27 11:40:24 +08:00
@icris #75
1. 凶手也用菜刀,但是菜刀不止凶手用,大厨也用。暗器只有凶手用。 2. C# 已经快二十年了,在今天二十年的时间意味着什么已经不用多说了。 3. 专家设计的语言不见得好,好的语言也不见得是专家设计的。但是绝大多数专家设计的语言比绝大多数业余人士设计的语言好,绝大多数优秀的语言是专家设计的。前者是二者的因果关系,后者是相关性,请勿混为一谈。 |
84
icris 2018-09-27 11:42:27 +08:00
@GoodRainChen #82
savedInstanceState: Bundle? view: View! 挑一个说到底,别跳着来。推荐测试语句 menuInflater.inflate(0, null),menuInflater 是 MenuInflater! 那么这样一个 Bundle? 的对象,我前几楼也说了,我复制一下: 「 Java 里的 onCreate 里面可以直接用 savedInstanceState 而不需要判断非空等第一次打开 Activity 报空指针。我觉得这个能力真是毫无用处。」 在 kotlin 里不能方便地报空指针对工作有什么不好的影响吗? |
86
bumz 2018-09-27 11:58:52 +08:00
@icris #85 这就是另一个帖子了
简单来说 C# is sort of Java with reliability, productivity and security deleted. 例如 C# 没有 Checked exception (一个很多人恨的特性,但其实他们只是恨写出可靠的程序罢了) 再比如 C# 混乱的 IDisposable |
87
icris 2018-09-27 12:06:33 +08:00
@bumz #86
我实际上还可以继续提问,为什么 C# 没有 reliability 而 Java 有 reliability,为什么 C# 没有 productivity 而 Java 有 productivity,为什么 C# 没有 security 而 Java 有 security,但是算了,if you say so. |
88
zt1991616 2018-09-27 12:15:27 +08:00 1
Android 圈也和前端圈一样了?有啥好吵的,爱用用,不爱用别用,又没人强迫你
|
89
TheWalkingDead 2018-09-27 13:54:16 +08:00
用什么语言总体还是看公司需要,看 leader 安排,不过用小众语言的人总是自带优越感
|
90
Tyanboot 2018-09-28 01:40:57 +08:00 via Android
@xayoung 不会。只有实验性的功能才可能会被改掉,比如协程的支持。其他的用了这么久了还没有过破坏性改动。
|
91
icris 2018-09-28 23:32:17 +08:00
@TheWalkingDead #89
事实表明 Java 程序员才有优越感,上面不用 kotlin 的很多表示看不起 kotlin (「你们用吧,反正最后还是需要深入了解 java 」(试图表达一个 kotlin 程序员都不懂 Java 的意思)、「 Kotlin 是 IDE 公司设计的」( Java 大于一切,语法吊打 C#)、楼主所有发言)。 或者你是要表达 Java 在 Android 开发上算小众?毕竟现在 Google 的文档示例代码都把 kotlin 放前面,你这么说也没问题。 |