由买买提看人间百态

topics

全部话题 - 话题: kotlin
首页 上页 1 2 3 4 (共4页)
s**********l
发帖数: 8966
1
他说得也有一定道理,AK47虽然简单但是是好枪(C++),Sten就是粗制滥造的典型了,
虽然确实用的人多。(JavaScript)
当然最好是mp5那种设计又好,使用也方便,而且还不贵的(php)...
w********m
发帖数: 1137
2
银神写东西真好,随便就是上万字。
这篇卖三刀,一点没问题。
中国的书商太没眼光,不找他写书。
x****u
发帖数: 44466
3
C++可不简单,这货是非常复杂隐患无数的东西
y*j
发帖数: 3139
4
C++ 可以说是最复杂的语言,里面充满了各种语言的异常,一个R-value reference 就
可以让你搞半天才能明白。
实际上java的出现就是对C/C++的一个精简,去掉了指针和内存管理。

:C++可不简单,这货是非常复杂隐患无数的东西
y*j
发帖数: 3139
5
也不完全是精英的问题,如果处处都有异常的话,那么到一定的规模之后,里面的异常
有可能会泛滥成灾,反而搞不清重点。一个真正的精英应该会知道在什么地方加什么地
方不需要。希望通过checked exception 来解决问题,至少现在这种机制不是一个好的
选择。

:这篇文章很典型的反映了王垠的哲学:
:1. 编程是精英劳动;
:2. 精英设计出来的程序要完美;
:3. 编程工具要能让精英最大限度发挥潜能。
:王垠没有意识到的一点是,根本没有那么多的精英。大部分的商业程序都必须靠大量
的庸才蠢材通力合作才能支撑起来。
:而且,商业软件也不需要有多么完美的设计。大型项目都是靠大规模不停的测试,发
现问题了修修补补,达到要求就可以了。
:对于庸才蠢材来讲,工具只要简单好用使用就好了。就比如checked exception,加个
:try catch log比一条一条异常慢慢处理简单多了。严重的异常毕竟是小概率事件。
s********k
发帖数: 6180
6
你说的对,但是那是从技术角度来说,但是如上面别的所说,没那么多精英,不只是IT
,什么行业都是,但是为什么IT能爆发发展,就是这些CE之类让一个项目先从零到一
run起来,等到真正开始广泛应用了,code越来越大是会有泛滥成灾可能,但是那时候
再找高人解决,不能因为那个时候看到code乱七八糟否认开始时候能让code和产品快速
起来这些方便。正所谓好的系统演化,而不是设计,意思就是好的系统其实确是有不少
现在看起来糟糕,但是当时正确无比决定
Y**G
发帖数: 1089
7
还是语言直接支持CE的好,这东西是语言的核心部份,100个IDE可能有100个做法,项
目怎么维护
Y**G
发帖数: 1089
8
就是,infosys一年搬几万a3过来,一年可以码出上亿行代码,回头看,大部分是shit
r****y
发帖数: 26819
9
书商没那么傻,肯定免费电子版到处贴。
y*j
发帖数: 3139
10
Java相对于c/c++是一个进步,它把指针隐藏起来,简化了编程;但是这个checked
exception 似乎把异常处理层层的堆积起来,让程序变得复杂,觉得不是一个很好的处
理方式。

:你说的对,但是那是从技术角度来说,但是如上面别的所说,没那么多精英,不只是
IT,什么行业都是,但是为什么IT能爆发发展,就是这些CE之类让一个项目先从零到一
:run起来,等到真正开始广泛应用了,code越来越大是会有泛滥成灾可能,但是那时候
:再找高人解决,不能因为那个时候看到code乱七八糟否认开始时候能让code和产品快
速起来这些方便。正所谓好的系统演化,而不是设计,意思就是好的系统其实确是有不
少现在看起来糟糕,但是当时正确无比决定
w****e
发帖数: 1883
11
为啥会层层堆积?除非所有code catch之后啥都不干就rethrow

:Java相对于c/c++是一个进步,它把指针隐藏起来,简化了编程;但是这个checked
:exception 似乎把异常处理层层的堆积起来,让程序变得复杂,觉得不是一个很好的
处理方式。
x****u
发帖数: 44466
12
除了emacs和vim这两个不是ide的没办法,全球其他ide处理方法都一样
n*w
发帖数: 3393
13
即使很复杂的系统,type inference 可以做到。为什么CE做不到?
g****t
发帖数: 31659
14
我印象里。
Type inference本身可以嵌入图灵停机问题。
所以只能做到一部分。静态分析都是这样。
但我觉得自动化这些肯定是趋势。因为可以要求人不写
静态分析搞不定的代码,不然就punish.


: 即使很复杂的系统,type inference 可以做到。为什么CE做不到?


发帖数: 1
15
看了喷王垠的,基本都是一个腔调, 这厮没有这个经验,没有那个经验,不懂的真正的系
统,不知道实际的大系统就应该这样,就应该那样.反正各种不合理只要存在就是合理的,
从来不能给出一个相同量级的反驳. 总之, 别人谈智慧,他就用小聪明来反驳, 别人谈
思想谈方法,他就用自己的那点垃圾经验来举反例,各种插科打诨, 自己都说服不了自己.
其实, 王垠这种人的神奇之处, 就是没有太多的经验,但是总能得到宝贵的结论.
反观喷子, 搞了一辈子, 攒了无数的经验, 没有归纳, 没有总结, 更不舍的做取舍, 永
远就是那个层次. 对他们来说世界是高不可攀的,是不可质疑的,自己的这些经验是自己
装逼和求生的本钱,好不容易攒到了,哪能说不值钱就不值钱了.
想到了韩寒在早年间被采访的视频, 台下一群喷子, 问他,你18岁,你有这个经验吗, 你
有那个经验吗, 你凭什么说这个, 你凭什么说那个. 这一幕何其相似...
x****u
发帖数: 44466
16
你这不只是骂王垠,韩寒得罪你什么了。。。

的,
己.
T*******x
发帖数: 8565
17
犀利啊。
这就是悟性。悟性高的人从一两次经验中就可以总结出规律。但是也经常错。

的,
己.
g****t
发帖数: 31659
18
我不认为老王有多少悟性。一来他数理逻辑,计算理论不过硬。二来他的经验积累很快就
会过时的。没有足够的business case和项目经验则
无法走经验实用的道路谈语言。
你觉得他思考的角度不同,那是因为他会不断的执着否定
所有的东西。另外之前很多他写的东西其实是几个教授的notes.美国怀才不遇的人太多
了。


: 犀利啊。

: 这就是悟性。悟性高的人从一两次经验中就可以总结出规律。但是也经常
错。

: 的,

: 己.

i******l
发帖数: 270
19
没什么进步不进步,这两的哲学不同
C++ 永远追求 run on metal 的性能

时候
k****i
发帖数: 101
20
垠神能写善悟,这你也怨韩寒。
只有wdong 那些挖坑水文撇去油末,才有几分可比性。

:你这不只是骂王垠,韩寒得罪你什么了。。。
k****i
发帖数: 101
21
花开两枝,各表一朵。
灵性与悟性,可遇不可求。
众人皆醒垠独醉。。。

:犀利啊。
s********k
发帖数: 6180
22
来自主题: Programming版 - C++ 又开始火起来了吗?
java下降估计是因为服务器端很多用go?android用kotlin?

发帖数: 1
23
来自主题: Programming版 - C++ 又开始火起来了吗?
除了kotlin还有其他jvm language比如scala, clojure, groovy 也分了流
d*******r
发帖数: 3299
24
来自主题: Programming版 - coroutine comes to Java - Project Loom
zhaoce还在坚持推广vert.x, 执着啊, 是觉得 kotlin对vert.x有帮助?
z****e
发帖数: 54598
25
来自主题: Programming版 - coroutine comes to Java - Project Loom
java的coroutine 阿里的jvm已经做出来了
不过这也不是什么黑科技,能做出来的大把
而且不配合actor model的话
lock还是很多,性能还是上不去
只有配合了actor model,把线程数降下来
这样lock数量才会减少,而且引入immutable才会变得合理起来
否则满天飞的immutable,性能也还是上不去
但是这样要求不能写blocking code
这个只要有coroutine,书写难度就降下来很多
要不然一大堆高阶函数,哪有办法
map来map去的,很多人搞不定
coroutine之后,fp这一波热潮也差不多该到头了
最早是用来解决callback hell的方式
现在不用了,那高阶函数存在感会大幅下降
monad这些估计根本就没啥市场了
基本上跟之前预测的很像
就是知道什么是immutable,什么是1st class citizen这些
然后懂得用lambda,可以了
足够了,coroutine会接管剩下的部分
有了coroutine,就可以调用异步api,如同同步api一样
而且kotlin会在idea里面,给你加上一个绿色的小箭头
非常好玩
z****e
发帖数: 54598
26
来自主题: Programming版 - coroutine comes to Java - Project Loom

ml那个东西到底怎么赚钱,business model至今无法验证
ng又跑回去开课赚钱了,这个风险太大
但是这种性能提升对于客户价值来说意义甚大
开支马上降下来,效果立竿见影
这些年异步(lambda),callback(node.js),coroutine(go)都在摸索
到现在这个阶段,算是一个大成了,总算是解决了这个问题
不管是性能上的提升,保证可读性这些,各方面都有了一个能够接受的答案
这是我在vert.x上用kotlin的感受,那下面就是推广了
z****e
发帖数: 54598
27
来自主题: Programming版 - coroutine comes to Java - Project Loom
import io.vertx.core.Context
import kotlinx.coroutines.experimental.CoroutineDispatcher
import kotlin.coroutines.experimental.CoroutineContext
open class VertxContextDispatcher(val vertxContext: Context, val vertxThread
:Thread) : CoroutineDispatcher() {
override fun dispatch(context: CoroutineContext, block: Runnable) {
if (Thread.currentThread() !== vertxThread) vertxContext.
runOnContext { _ -> block.run() }
else block.run()
}
}
关键的一个类,确保coroutine在vertx thread上运行
3.5中这... 阅读全帖
z****e
发帖数: 54598
28
来自主题: Programming版 - coroutine comes to Java - Project Loom

immutable还是有用的,verticle之间需要immutable,用cglib做immutable object
type无所谓,用verticle封死就无所谓到底是static还是dynamic,就那点代码,随便玩
然后coroutine/async/await
实践中,对于java程序猿,没有接触过其他环境的java程序猿,纯后端出身的程序猿
我们一般建议先从groovy开始接触其他环境,一般半个小时后就能开始写了
动态类型并没有什么问题,前提是写verticle,然后元数据编程很好用
一个@immutable就能作出immutable了,都不需要自己倒腾cglib了,虽然cglib也不难
如果是以前做安卓的,则建议从kotlin开始接触其他环境
最近idea社区版支持scala啦,开始逐步接触尝试尝试
同时建议写点ruby啊什么的,来锻炼一下脚本的语法糖,蛮好玩的
目标成就:vert.x上全语言制霸
z****e
发帖数: 54598
29
来自主题: Programming版 - coroutine comes to Java - Project Loom

其实这个东西很容易回答
我们只要它作出20分的成绩,至于它的目标是60分还是100分
不重要,重要的是20分就够用了,因为其他的40分有加成
考20分就过线了,但对于go来说,可能要60分才能过线
因为go没有加成,而我和其他看得懂的人说的就是有了这40分的加成之后,20分轻松过线
而你或者wdong说的,都是没有这个加成时候该怎么办
两回事,两回事,所以都是鸡同鸭讲
还在思考怎样从0出发去考及格,你们已经落后了
你们在用10年前的思考方式在思考这个问题
最后就变成了,别人说可以做到
你们不理解,就说,怎么可能?牛得不得了的人都没做到
blablabla,哎,vert.x+kotlin,你不服你自己去看看它是怎么做的咯
你不信你自己可以跑一下benchmark嘛,vert.x常年在techempower上排行靠前
你就没想过去看看为什么?去做这事比你在这里放空头炮要强很多吧?
https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=json
我觉得嘛
我老是教育你,一来你也不爽,就算教育了你
你也不感激我... 阅读全帖
z****e
发帖数: 54598
30

给你看一下对比
当前暂没有coroutine的java的高阶函数的写法
Future.>future(f ->
vertx.eventBus().send("address1", "message", f)
).compose((msg) ->
Future.>future(f ->
vertx.eventBus().send("address2", msg.body(), f)
)
).compose((msg) ->
Future.>future(f ->
vertx.eventBus().send("address3", msg.body(), f)
)
).setHandler((res) -> {
if (res.failed()) {
//deal with exception
return;
}
//deal with the result
});
嗯,不是太好看懂,这里有几个语法糖和简写,当前没有corouti... 阅读全帖
z****e
发帖数: 54598
31

java 9出来了
clojure升级了么?
没发现用不了么?
clojure还在用sun的那些不安全的包
jigsaw影响比较大的jvm语言就是clojure,其他都还好
kotlin已经升级到9了,最快的一个,不算java和js(nashorn)的话
这两个是oracle官方支持的,这不能算
其他的估计clojure会成为最慢的一个,就看jython是不是会更慢
用一个东西呢,是有前提的
以前用高阶函数,是没有办法
现在有了coroutine,选择多了一个
就不需要高阶函数来帮忙解决callback问题了
那自然就挑容易的搞了
应该这么说,coroutine提供了高阶函数以外的一种选择
让我们可以不需要用高阶函数了
偶尔用一用,比如
button.action = lambda{|now|
canvas.clear()
canvas.image(image, 0, 0)
}
这种可以接受,但是大量出现高阶函数
那个写起来,呵呵
z****e
发帖数: 54598
32
你要看什么?
不用等5年
现在已经有了
早就有了
http://vertx.io/docs/vertx-sync/java/
https://github.com/puniverse/quasar
你说java做不出来?现有的东西出不来?
现在一大票语言都开始async/await,coroutine什么都出来了
你想等5年之后?等什么?等这些语言一个个做出来嘛?
现在已经有好几个了,比如kotlin,你是说这个东西不存在?
说了,不是你想的那种coroutine,你被wdong绕进去了
wdong说的那种coroutine不是我们需要的coroutine或者说不是那么复杂的东西
我们只需要其中一小部分,就能满足要求了
用工具的目的是用来解决问题的,不是用来探索真理的
你要探索宇宙的真相,大可以去物理学上咕哝上半天
反正买买提每次讨论物理都很热闹
我们要处理的是怎么榨取机器性能,同时保证可读性不要下降
g****t
发帖数: 31659
33
Coroutine就是goto lable,有什么做不出来的。
我的看法很简单:java 这种语言做coroutine没什么用,
没什么价值,不值一提。


: 你要看什么?

: 不用等5年

: 现在已经有了

: 早就有了

: http://vertx.io/docs/vertx-sync/java/

: https://github.com/puniverse/quasar

: 你说java做不出来?现有的东西出不来?

: 现在一大票语言都开始async/await,coroutine什么都出来了

: 你想等5年之后?等什么?等这些语言一个个做出来嘛?

: 现在已经有好几个了,比如kotlin,你是说这个东西不存在?

z****e
发帖数: 54598
34

我试了啊,9出来我就升级了一大堆东西
发现kotlin可以过啊,其他都过不了
包括native compiling这些
你试了吗?你试试不就知道我说的对不对咯?
z****e
发帖数: 54598
35

Function0
停停停
你没有用过vert.x
所以鸡同鸭讲
我给你一个建议,去看看vert.x的设计
然后再来谈
死锁?
都lock free了,死锁什么哟?
都用这么久,遇到过搞不定高阶函数的
还真没遇到过死锁的
vert.x一直就是reactive programming
正是在实践中遇到了问题
所以我们才会寻找答案
而现在说的coroutine
正是我们找到的答案
之前搞reactive programming
最大的麻烦就是普通程序猿掌握不了高阶函数的使用
map, flatmap,副作用,绕晕了,搞不定我去
后来情愿换成kotlin,coroutine白菜化异步api
然后就ok啦
还是那句话,你们没有经验,看不懂
我当然知道高阶函数,reactive是一种解决方案
但是很麻烦,一般程序猿搞不定
思维上的改造不是那么容易的
这就是为什么一大堆语言都在搞coroutine/async/await的主因
fp那些,主流不感兴趣,因为搞不懂嘛
没有coroutine之前,我们推广reactive,多恶心你知道嘛?
一说副作用,无状态函数,fp下面一大堆人在睡觉,哈欠连天
这... 阅读全帖
x***4
发帖数: 1815
36
新语言都在后面了。go,Scala,Kotlin,Swift
c******n
发帖数: 16666
37
来自主题: Programming版 - rust 的 showcase app就要登场了
嗯 java还是走kotlin吧
我知道c++转rust的都在夸他好
O***b
发帖数: 104
s********k
发帖数: 6180
39
来自主题: Programming版 - 我总结的转行路线
其实说蚕食不对,两边都在高速增长,Android对于做过native 的JAVA,尤其最近做过
kotlin的人需要还是非常大
g****t
发帖数: 31659
40
列表不错。加上
Typescript?
n******7
发帖数: 12463
41
用来写node.js?
c******n
发帖数: 16666
42
re
我现在主要就靠着2个混日子
n******7
发帖数: 12463
43
哪两个?
typescript 和 ??
n******7
发帖数: 12463
44
typescript 用来写新project? 基于node.js?
s***o
发帖数: 2191
45
纯兴趣的话,我觉得rust是个很好的选择
c******n
发帖数: 16666
46
有些猛糙块用nodejs
主要是前端spa+d3+webgl这块
e*******o
发帖数: 4654
47
终于出来个明白人。
啥clojure,scala的,都是扯淡。

project
w**z
发帖数: 8232
48
让人学clojure 这种属于毁人不倦,坑太少,基本没有大公司用。当然,你牛逼,自己
当老板没问题。但让新人学,不是害人吗?

:终于出来个明白人。
g****t
发帖数: 31659
49
Hci说的就是糙快猛吧?新人应该是轮不到又糙快猛的机会。多数是做填空题的。


: 让人学clojure 这种属于毁人不倦,坑太少,基本没有大公司用。当然,你牛逼
,自己

: 当老板没问题。但让新人学,不是害人吗?

: :终于出来个明白人。

: :

w**z
发帖数: 8232
50
真要糙快猛,就选自己最拿手的。
这也是为什么,startup的tech stack 都是选用founder 最懂的。 其实Hci也是这情况
。基本没有人会去选一个,自己不会的,但是“听说”,糙快猛的去做,一定是是在一
开始里的团队里有一个某方面的大拿专家选了一个自己拿手的。
我最近做的三个 startup, 一个PHP, 两个Python 都是这情况。
首页 上页 1 2 3 4 (共4页)