Redian新闻
>
欧洲的生物研究(2)---对奖学金说不
avatar
欧洲的生物研究(2)---对奖学金说不# Biology - 生物学
i*y
1
看的是90年代的房子,进门就很大一股烟味。是两个月前被投资公司先进买来,全部换
了新地毯,新painting,捣腾了一下拿出来卖的。
请问这个烟味如果是以前住的人抽烟造成的话,通风透气能彻底消散吗?
avatar
h*i
2
https://blog.golang.org/race-detector
Can easily get race conditions and data corruption.
这不是我说的, golang blog自己说的。
标准库随便就能找出几十个race conditions, 应用程序员写的代码里面会有多少?
These are solved problems in many other languages. How primitive!
avatar
o*u
3
留学论坛上常有人说生物去美国容易,因为有全额奖学金,去欧洲比较难,奖学金很少
。这是因为博士在英美仍然为视为研究生,但在欧洲文化中,博士并不是“读”学位的
学生,而是作为刚参加工作的青年科学家,最后得到的博士学位是对其工作的认可。博
士的申请也不是象英美一样对研究生院统一申请。而是和找工作一样,直接向雇主(通
常是手里有项目的教授)申请。文件上的雇主可以是大学,或者私立研究机构甚至商业
公司。由于博士拥有雇员身份,因此可以享受各种雇用福利,包括养老保险,失业保险
,产假,每年约2个半月的带薪假期,合同期内不能被雇主随意解雇等等。博士的收入,
除了德国以外, 其余欧洲国家大体情况差不多,大体与同龄的政府公务员相当, 仅略低
于商业公司。在绝对收入不算高的欧洲算是不错的收入。德国比较特殊,生物博士大部
分都只能拿所谓50%的位置。
近年来, 一些欧洲的科研机构在看到美国和英国使用少量的奖学金就吸引了大量的中印
学生后,也动起了歪主意。一些大学开始通过和国外合作培养博士的模式,开始招收国
际学生,如与中国的中科院的交换项目。更有甚者撕破脸皮,开始搞起了专门针对不明
真相的外国学生的所谓奖学金, 取一个很眩的名字,到处广告,除了每月仅一千多点欧
的奖学金外,没有其他任何的福利。由于那点可怜的奖学金不上税,研究所就把过来的
博士身份向移民局报成"student"而不是“employee"。钱少些还好说,这移民身份的差
别,对博士结束后找工作或者申请欧盟绿卡带来的麻烦就不是一点半点了。但是由于一
般的外国学生并不了解欧洲的科研体制,所以大量的外国学生也蜂拥而来, 一个位置能
扯来几百人申请。
幸而欧盟已经注意到这种研究所的奖学金制度和欧洲大量的中餐馆雇用廉价的非法移民
来节省开支在实质上是一样的。因此,此种行为正在被纠正。欧盟劳动委员会根据最新
的欧盟劳动法指出,博士是应该被保护的雇员,而不是大学的廉价劳动力。2010年,荷
兰博士工会发起对大学奖学金制度的诉讼。最终法庭裁定:博士主要是在从事 (研究)
工作,而不是学习。他们与导师的关系在工作环境中为上下级的关系,因此他们应该被
视作雇员,并享受法律赋予他们的一切权益。现已存在的针对博士的奖学金制度应该全
部取消。
avatar
i*d
4
Forget it. It is not going away.

【在 i****y 的大作中提到】
: 看的是90年代的房子,进门就很大一股烟味。是两个月前被投资公司先进买来,全部换
: 了新地毯,新painting,捣腾了一下拿出来卖的。
: 请问这个烟味如果是以前住的人抽烟造成的话,通风透气能彻底消散吗?

avatar
h*i
5
“反动”一个词还真当得起。

【在 h*i 的大作中提到】
: https://blog.golang.org/race-detector
: Can easily get race conditions and data corruption.
: 这不是我说的, golang blog自己说的。
: 标准库随便就能找出几十个race conditions, 应用程序员写的代码里面会有多少?
: These are solved problems in many other languages. How primitive!

avatar
h*8
6
补充一句,德国博士今年很多都改成了66%的全职职位,每周26.5个小时的工作时间。
这个也与强大的工会力量分不开的。
兄弟我今年修产假时才发现,我还有38天的假期没有修完,全作废了。

入,

【在 o****u 的大作中提到】
: 留学论坛上常有人说生物去美国容易,因为有全额奖学金,去欧洲比较难,奖学金很少
: 。这是因为博士在英美仍然为视为研究生,但在欧洲文化中,博士并不是“读”学位的
: 学生,而是作为刚参加工作的青年科学家,最后得到的博士学位是对其工作的认可。博
: 士的申请也不是象英美一样对研究生院统一申请。而是和找工作一样,直接向雇主(通
: 常是手里有项目的教授)申请。文件上的雇主可以是大学,或者私立研究机构甚至商业
: 公司。由于博士拥有雇员身份,因此可以享受各种雇用福利,包括养老保险,失业保险
: ,产假,每年约2个半月的带薪假期,合同期内不能被雇主随意解雇等等。博士的收入,
: 除了德国以外, 其余欧洲国家大体情况差不多,大体与同龄的政府公务员相当, 仅略低
: 于商业公司。在绝对收入不算高的欧洲算是不错的收入。德国比较特殊,生物博士大部
: 分都只能拿所谓50%的位置。

avatar
a*y
7
先搞清楚是烟味还是霉味, 我就分不太清楚两种味道的区别,可能是因为我家没人抽烟
的原因.
以前住公寓的时候,家里锅炉漏水坏了,请人来修(换)的时候,我还以为是那个工人烟瘾
很大,浑身都是烟味,后来才知道人根本不抽烟,那是霉味.

【在 i****y 的大作中提到】
: 看的是90年代的房子,进门就很大一股烟味。是两个月前被投资公司先进买来,全部换
: 了新地毯,新painting,捣腾了一下拿出来卖的。
: 请问这个烟味如果是以前住的人抽烟造成的话,通风透气能彻底消散吗?

avatar
h*i
8
根本的问题,是CSP不是concurrency的正确的抽象,就像大佬撕逼的时候actor model
大佬说的,CSP认为sequence是最根本的抽象,这其实是错误的,这不能保证正确性。
正确的concurrency解决的方案,实用的有这几个:
1. immutable data (Clojure, Haskell)
2. Ownership System (Rust)
3. Reference Capabilities (Pony)
4. The Actor Model (Erlang, Dart)
https://sites.google.com/a/athaydes.com/renato-athaydes/posts/
fearlessconcurrencyhowclojurerustponyerlanganddartletyouachievethat

【在 h*i 的大作中提到】
: https://blog.golang.org/race-detector
: Can easily get race conditions and data corruption.
: 这不是我说的, golang blog自己说的。
: 标准库随便就能找出几十个race conditions, 应用程序员写的代码里面会有多少?
: These are solved problems in many other languages. How primitive!

avatar
j*x
9
找老板商量一下,没休完的假期折算后算加班费吧

【在 h**********8 的大作中提到】
: 补充一句,德国博士今年很多都改成了66%的全职职位,每周26.5个小时的工作时间。
: 这个也与强大的工会力量分不开的。
: 兄弟我今年修产假时才发现,我还有38天的假期没有修完,全作废了。
:
: 入,

avatar
i*y
10
不知道房子inspection的时候这个能查出来吗?

【在 a*****y 的大作中提到】
: 先搞清楚是烟味还是霉味, 我就分不太清楚两种味道的区别,可能是因为我家没人抽烟
: 的原因.
: 以前住公寓的时候,家里锅炉漏水坏了,请人来修(换)的时候,我还以为是那个工人烟瘾
: 很大,浑身都是烟味,后来才知道人根本不抽烟,那是霉味.

avatar
g*t
11
因为库的线程安全上升到CPS模型的理论性质不合适吧。
就算你用纯函数,也挡不住第三方库连到别的库,别的库里面的cache什么的不是
线程安全的。这问题实际上是无解的。不是语言层面的问题。
只能一步一步来。
结合下老魏昨天说的随机数。假如有哪天有人发现java标准库的随机数的某个版本某个
情况不是线程安全的,我不会惊讶的。

model

【在 h*i 的大作中提到】
: 根本的问题,是CSP不是concurrency的正确的抽象,就像大佬撕逼的时候actor model
: 大佬说的,CSP认为sequence是最根本的抽象,这其实是错误的,这不能保证正确性。
: 正确的concurrency解决的方案,实用的有这几个:
: 1. immutable data (Clojure, Haskell)
: 2. Ownership System (Rust)
: 3. Reference Capabilities (Pony)
: 4. The Actor Model (Erlang, Dart)
: https://sites.google.com/a/athaydes.com/renato-athaydes/posts/
: fearlessconcurrencyhowclojurerustponyerlanganddartletyouachievethat

avatar
h*8
12
当时人事部的人说找老板谈判,给折算成下一年的假期。呵呵,其实没用,你要休假,
老板找理由不让休,还不是作废。反正他放羊,我不来,就说写论文呢,他也不管。

【在 j****x 的大作中提到】
: 找老板商量一下,没休完的假期折算后算加班费吧
avatar
m*y
13
很可能地毯没换?
avatar
h*i
14
这不是库的问题,是在说语言的问题。
go号称是用来解决concurrency的问题,但这个语言本身并没有解决concurrency最基本
的问题,就是race condition。
其他的方案,都是在语言层面解决问题。比如Clojure缺省就是immutable data,这样
在语言上就保证了不会有race condition and data corruption。其他的几个方案,也
都是在语言层面上解决问题。
CSP不是设计来解决concurrency问题的,而是一种编程的便利。CSP用sequence来作为
基本abstraction是错的,这也不是我说的,是actor model大佬说的。CSP大佬自己也
不能defend自己,只能说效率什么的。说明这是基本的问题。
https://www.erlang-solutions.com/blog/let-s-talkconcurrency-panel-discussion
-with-sir-tony-hoare-joe-armstrong-and-carl-hewitt.html
https://news.ycombinator.com/item?id=19206986

【在 g****t 的大作中提到】
: 因为库的线程安全上升到CPS模型的理论性质不合适吧。
: 就算你用纯函数,也挡不住第三方库连到别的库,别的库里面的cache什么的不是
: 线程安全的。这问题实际上是无解的。不是语言层面的问题。
: 只能一步一步来。
: 结合下老魏昨天说的随机数。假如有哪天有人发现java标准库的随机数的某个版本某个
: 情况不是线程安全的,我不会惊讶的。
:
: model

avatar
m*h
15
今天看了一个也这样
agent说it won't go away
房子不错,随便估计了一下要5W才能弄得能自己住

【在 i****y 的大作中提到】
: 看的是90年代的房子,进门就很大一股烟味。是两个月前被投资公司先进买来,全部换
: 了新地毯,新painting,捣腾了一下拿出来卖的。
: 请问这个烟味如果是以前住的人抽烟造成的话,通风透气能彻底消散吗?

avatar
g*t
16
你举的例子,我觉得是说标准库没有写好。有race。
CSP当然可以写成线程安全的,这点应该没啥疑问。
CSP本身好不好这个我也不了解。也许是劣势,也许是优势。
但就算是语言有缺点,上面包一层framework也就完事了。实际上几年前我已经看到也
有很多goroutine上面的东西了,出发点是方便写应用,防止几个容易出错的写法。这
就好比jvm上面也有csp写法的库。
Golang有比别的语言粒度更细的切换context的一层,这点我认为是它的主要突破。尤
其多核。搞内存就是专家来写,也是很麻烦的事。现实中应该没几个人知道arm多核内存
,intc多核内存是怎么个标准。
我理解的golang的主要风险是,它的schedule不知道会不会和os schedule发生冲突。


: 这不是库的问题,是在说语言的问题。

: go号称是用来解决concurrency的问题,但这个语言本身并没有解决
concurrency
最基本

: 的问题,就是race condition。

: 其他的方案,都是在语言层面解决问题。比如Clojure缺省就是immutable
data
,这样

: 在语言上就保证了不会有race condition and data corruption。其他的
几个方
案,也

: 都是在语言层面上解决问题。

: CSP不是设计来解决concurrency问题的,而是一种编程的便利。CSP用
sequence
来作为

: 基本abstraction是错的,这也不是我说的,是actor model大佬说的。
CSP大佬
自己也

: 不能defend自己,只能说效率什么的。说明这是基本的问题。

: https://www.erlang-solutions.com/blog/let-s-talkconcurrency-
panel-
discussion



【在 h*i 的大作中提到】
: 这不是库的问题,是在说语言的问题。
: go号称是用来解决concurrency的问题,但这个语言本身并没有解决concurrency最基本
: 的问题,就是race condition。
: 其他的方案,都是在语言层面解决问题。比如Clojure缺省就是immutable data,这样
: 在语言上就保证了不会有race condition and data corruption。其他的几个方案,也
: 都是在语言层面上解决问题。
: CSP不是设计来解决concurrency问题的,而是一种编程的便利。CSP用sequence来作为
: 基本abstraction是错的,这也不是我说的,是actor model大佬说的。CSP大佬自己也
: 不能defend自己,只能说效率什么的。说明这是基本的问题。
: https://www.erlang-solutions.com/blog/let-s-talkconcurrency-panel-discussion

avatar
b*r
17
查下what happened to the house before sold to 投资公司
//本来网上看上一房,碰巧打听到那之前房主是drug dealer,又是火灾又是水灾的

【在 i****y 的大作中提到】
: 看的是90年代的房子,进门就很大一股烟味。是两个月前被投资公司先进买来,全部换
: 了新地毯,新painting,捣腾了一下拿出来卖的。
: 请问这个烟味如果是以前住的人抽烟造成的话,通风透气能彻底消散吗?

avatar
w*m
18
发明race detector,就是专门干这个工作的。
如果标准库可以看到跑不过race detector的,可以直接file ticket。
avatar
i*y
19
it's new.

【在 m***y 的大作中提到】
: 很可能地毯没换?
avatar
g*t
20
Btw,这几位专家的讨论里面,频频讲到
哪个模型的 快,慢,比较。效率高低比较.
我认为有强词夺理的嫌疑。快慢,效率那都是随着硬件产业格局变化的。这种抽象比较
不说可不可以,起码得给个参考平台吧。
我给个最具体的例子。假如两年后协处理器风行天下。CPu架构不走多个通用CPU内核,
而是分成几个专用核,和一个通用核呢?这些讨论不就成了纯粹闲聊吗


: 这不是库的问题,是在说语言的问题。

: go号称是用来解决concurrency的问题,但这个语言本身并没有解决
concurrency
最基本

: 的问题,就是race condition。

: 其他的方案,都是在语言层面解决问题。比如Clojure缺省就是immutable
data
,这样

: 在语言上就保证了不会有race condition and data corruption。其他的
几个方
案,也

: 都是在语言层面上解决问题。

: CSP不是设计来解决concurrency问题的,而是一种编程的便利。CSP用
sequence
来作为

: 基本abstraction是错的,这也不是我说的,是actor model大佬说的。
CSP大佬
自己也

: 不能defend自己,只能说效率什么的。说明这是基本的问题。

: https://www.erlang-solutions.com/blog/let-s-talkconcurrency-
panel-
discussion



【在 h*i 的大作中提到】
: 这不是库的问题,是在说语言的问题。
: go号称是用来解决concurrency的问题,但这个语言本身并没有解决concurrency最基本
: 的问题,就是race condition。
: 其他的方案,都是在语言层面解决问题。比如Clojure缺省就是immutable data,这样
: 在语言上就保证了不会有race condition and data corruption。其他的几个方案,也
: 都是在语言层面上解决问题。
: CSP不是设计来解决concurrency问题的,而是一种编程的便利。CSP用sequence来作为
: 基本abstraction是错的,这也不是我说的,是actor model大佬说的。CSP大佬自己也
: 不能defend自己,只能说效率什么的。说明这是基本的问题。
: https://www.erlang-solutions.com/blog/let-s-talkconcurrency-panel-discussion

avatar
m*y
21
You mean, newly washed?

【在 i****y 的大作中提到】
: it's new.
avatar
h*i
22
最基本的问题是是这个:
对大多数人来说,go的卖点,是让不会写concurrent code的程序员也能来写
concurrent code。 但是,如果go没有解决concurrent code最难写对的地方,就是对
付race condition的问题, 那么,go的宣传其实是false advertisement.
不在语言层面解决问题的语言,都需要程序猿自己能写对,但这是最难的。你看go自己
的标准库都写不对,普通程序猿如何能写对?
Clojure最早宣传的也是要解决同样的问题,但Clojure是真的解决了:用了两个方案,
1. immutable 2. STM, 现在2用的人少,因为有了1, 其实2不太需要了。

内存

【在 g****t 的大作中提到】
: 你举的例子,我觉得是说标准库没有写好。有race。
: CSP当然可以写成线程安全的,这点应该没啥疑问。
: CSP本身好不好这个我也不了解。也许是劣势,也许是优势。
: 但就算是语言有缺点,上面包一层framework也就完事了。实际上几年前我已经看到也
: 有很多goroutine上面的东西了,出发点是方便写应用,防止几个容易出错的写法。这
: 就好比jvm上面也有csp写法的库。
: Golang有比别的语言粒度更细的切换context的一层,这点我认为是它的主要突破。尤
: 其多核。搞内存就是专家来写,也是很麻烦的事。现实中应该没几个人知道arm多核内存
: ,intc多核内存是怎么个标准。
: 我理解的golang的主要风险是,它的schedule不知道会不会和os schedule发生冲突。

avatar
g*2
23
pass

【在 i****y 的大作中提到】
: 看的是90年代的房子,进门就很大一股烟味。是两个月前被投资公司先进买来,全部换
: 了新地毯,新painting,捣腾了一下拿出来卖的。
: 请问这个烟味如果是以前住的人抽烟造成的话,通风透气能彻底消散吗?

avatar
h*i
24
我同意。
但也可以看到,编程的模式,其实被硬件推动的。

【在 g****t 的大作中提到】
: Btw,这几位专家的讨论里面,频频讲到
: 哪个模型的 快,慢,比较。效率高低比较.
: 我认为有强词夺理的嫌疑。快慢,效率那都是随着硬件产业格局变化的。这种抽象比较
: 不说可不可以,起码得给个参考平台吧。
: 我给个最具体的例子。假如两年后协处理器风行天下。CPu架构不走多个通用CPU内核,
: 而是分成几个专用核,和一个通用核呢?这些讨论不就成了纯粹闲聊吗
:
:
: 这不是库的问题,是在说语言的问题。
:
: go号称是用来解决concurrency的问题,但这个语言本身并没有解决
: concurrency

avatar
i*y
25
不是,是新换的。

【在 m***y 的大作中提到】
: You mean, newly washed?
avatar
h*i
26
有race detector,说明语言不行。
上面提到的很多语言不需要这个,因为语言被设计来让你很难写出有race condition的代
码。

【在 w********m 的大作中提到】
: 发明race detector,就是专门干这个工作的。
: 如果标准库可以看到跑不过race detector的,可以直接file ticket。

avatar
i*y
27
此话怎讲?
是说去除烟味要5W吗?
我们有个不到一岁的小宝,很担心对宝宝不好。

【在 m*****h 的大作中提到】
: 今天看了一个也这样
: agent说it won't go away
: 房子不错,随便估计了一下要5W才能弄得能自己住

avatar
g*t
28
语言不仅是语法,还有它的实现,runtime库,标准库什么的。
语法这个层面,golang我个人认为是落后的。

【在 h*i 的大作中提到】
: 最基本的问题是是这个:
: 对大多数人来说,go的卖点,是让不会写concurrent code的程序员也能来写
: concurrent code。 但是,如果go没有解决concurrent code最难写对的地方,就是对
: 付race condition的问题, 那么,go的宣传其实是false advertisement.
: 不在语言层面解决问题的语言,都需要程序猿自己能写对,但这是最难的。你看go自己
: 的标准库都写不对,普通程序猿如何能写对?
: Clojure最早宣传的也是要解决同样的问题,但Clojure是真的解决了:用了两个方案,
: 1. immutable 2. STM, 现在2用的人少,因为有了1, 其实2不太需要了。
:
: 内存

avatar
s*a
29
还是别买了。因为我住了一个apt有烟味,两年都没去掉,用尽了所有可以想到的办法
。最后搬出来什么上面都有烟味,非常恶心。
avatar
n*p
30
STM不是因为1而不需要,主要是真需要用到STM的case比较少

【在 h*i 的大作中提到】
: 最基本的问题是是这个:
: 对大多数人来说,go的卖点,是让不会写concurrent code的程序员也能来写
: concurrent code。 但是,如果go没有解决concurrent code最难写对的地方,就是对
: 付race condition的问题, 那么,go的宣传其实是false advertisement.
: 不在语言层面解决问题的语言,都需要程序猿自己能写对,但这是最难的。你看go自己
: 的标准库都写不对,普通程序猿如何能写对?
: Clojure最早宣传的也是要解决同样的问题,但Clojure是真的解决了:用了两个方案,
: 1. immutable 2. STM, 现在2用的人少,因为有了1, 其实2不太需要了。
:
: 内存

avatar
i*y
31
那请问你们apt的烟味很明显吗?
我们这个第一次去看的时候感觉特别明显,第二次我们agent提前10多分钟去看,开门
窗透气了,我们再去的时候就没那么明显。agent是说可能是contractor在里面油漆和
装地毯时抽烟的原因。
如果只是短暂时间有人在里面抽烟,会不会容易散掉些呢?还是也吸到木头里了?

【在 s*********a 的大作中提到】
: 还是别买了。因为我住了一个apt有烟味,两年都没去掉,用尽了所有可以想到的办法
: 。最后搬出来什么上面都有烟味,非常恶心。

avatar
n*t
32

~~~~~~~~~~~~~~~~~~~~~~~
我覺得這句話本來就是扯淡的。go的好處是讓C++程序員有個能用std:string..lol

【在 h*i 的大作中提到】
: 最基本的问题是是这个:
: 对大多数人来说,go的卖点,是让不会写concurrent code的程序员也能来写
: concurrent code。 但是,如果go没有解决concurrent code最难写对的地方,就是对
: 付race condition的问题, 那么,go的宣传其实是false advertisement.
: 不在语言层面解决问题的语言,都需要程序猿自己能写对,但这是最难的。你看go自己
: 的标准库都写不对,普通程序猿如何能写对?
: Clojure最早宣传的也是要解决同样的问题,但Clojure是真的解决了:用了两个方案,
: 1. immutable 2. STM, 现在2用的人少,因为有了1, 其实2不太需要了。
:
: 内存

avatar
g*2
33
pass

【在 i****y 的大作中提到】
: 那请问你们apt的烟味很明显吗?
: 我们这个第一次去看的时候感觉特别明显,第二次我们agent提前10多分钟去看,开门
: 窗透气了,我们再去的时候就没那么明显。agent是说可能是contractor在里面油漆和
: 装地毯时抽烟的原因。
: 如果只是短暂时间有人在里面抽烟,会不会容易散掉些呢?还是也吸到木头里了?

avatar
h*c
34
https://news.ycombinator.com/item?id=19280927

【在 h*i 的大作中提到】
: https://blog.golang.org/race-detector
: Can easily get race conditions and data corruption.
: 这不是我说的, golang blog自己说的。
: 标准库随便就能找出几十个race conditions, 应用程序员写的代码里面会有多少?
: These are solved problems in many other languages. How primitive!

avatar
i*y
35
可否具体说说原因呢?

【在 g*******2 的大作中提到】
: pass
avatar
h*i
36
I am glad more people realize the mistake of go is to build CSP into the
language.
閵嗭拷 閸︼拷 hnpc(閻栬鲸鍘遍幏鍡氬悋鐎涙劮鐒筋煋鐒戒粐鐒斤拷) 閻ㄥ嫬銇囨担
婊厬閹绘劕鍩 閵嗭拷

:
https://news.ycombinator.com/item?id=19280927

avatar
g*2
37
有烟味
很难去掉啊。

【在 i****y 的大作中提到】
: 可否具体说说原因呢?
avatar
S*n
38
你说的语言没一个进入排行榜前20的,很现实

model

【在 h*i 的大作中提到】
: 根本的问题,是CSP不是concurrency的正确的抽象,就像大佬撕逼的时候actor model
: 大佬说的,CSP认为sequence是最根本的抽象,这其实是错误的,这不能保证正确性。
: 正确的concurrency解决的方案,实用的有这几个:
: 1. immutable data (Clojure, Haskell)
: 2. Ownership System (Rust)
: 3. Reference Capabilities (Pony)
: 4. The Actor Model (Erlang, Dart)
: https://sites.google.com/a/athaydes.com/renato-athaydes/posts/
: fearlessconcurrencyhowclojurerustponyerlanganddartletyouachievethat

avatar
s*a
39
明显就感觉你还是想买了。那么多人劝你别买,你还老问为什么。。你要那么想买就买
吧, 别后悔就是了。

【在 i****y 的大作中提到】
: 那请问你们apt的烟味很明显吗?
: 我们这个第一次去看的时候感觉特别明显,第二次我们agent提前10多分钟去看,开门
: 窗透气了,我们再去的时候就没那么明显。agent是说可能是contractor在里面油漆和
: 装地毯时抽烟的原因。
: 如果只是短暂时间有人在里面抽烟,会不会容易散掉些呢?还是也吸到木头里了?

avatar
B*e
41
Change the air filter. Turn the air on for a while (1 or 2 days)

【在 i****y 的大作中提到】
: 看的是90年代的房子,进门就很大一股烟味。是两个月前被投资公司先进买来,全部换
: 了新地毯,新painting,捣腾了一下拿出来卖的。
: 请问这个烟味如果是以前住的人抽烟造成的话,通风透气能彻底消散吗?

avatar
h*i
42
What does this have to do with anything?


: 你说的语言没一个进入排行榜前20的,很现实

: model



【在 S*******n 的大作中提到】
: 你说的语言没一个进入排行榜前20的,很现实
:
: model

avatar
h*i
43
文章发现,主要有两类goroutine编程错误:对共享内存的保护, 和对异常的处理。
前者是和go的宣传和大家的普遍认识不一致,其实goroutine并不能让cocurrent编程更
不易犯错,其实是更容易错。
这个问题Clojure的CSP实现,core.async,大致上是避免了,因为Clojure是数据是
immutable的。
第二个问题,所有CSP实现都有,无解。现实编程中,是一个pain in the ass. 我深受
其害。
所以Clojure里面,对core.async的建议是,能不用就不用。
銆� 鍦� chunjuan(馃憤鏄ュ嵎馃惐鏇村鏄ュ嵎馃憤) 鐨勫ぇ浣滀腑
鎻愬埌: 銆�

>: 鎬庝箞鐪嬪緟缂栫▼璇█Go涓殑骞跺彂绋嬪簭bug锛坈oncurrency bug锛夛紵 -
linhai song鐨勫洖绛� -

: 鐭ヤ箮

: https://www.zhihu.com/question/314329049/answer/612471305

avatar
g*t
44
鎺ㄥ箍涓笅effective GO锛宐est practice in GO浠箞鐨勫氨鍙互浜嗐鎴戜笉
璁や负鏄粈涔堝ぇ闂銆br />
銆鍦chunjuan(馃憤鏄ュ嵎馃惐鏇村鏄ュ嵎馃憤) 鐨勫ぇ浣滀腑鎻愬埌: 銆br />

>: 鎬庝箞鐪嬪緟缂栫▼璇█Go涓殑骞跺彂绋嬪簭bug锛坈oncurrency bug锛夛紵 -
linhai song鐨勫洖绛-

: 鐭ヤ箮

: https://www.zhihu.com/question/314329049/answer/612471305

avatar
f*t
46
这篇文章的质量有问题。其中一个例子:
1 vargroup sync.WaitGroup
2 group.Add(len(pm.plugins))
3 for_, p :=rangepm.plugins {
4 go func(p *plugin) {
5 defer group.Done()
6 }
7- group.Wait()
8 }
9+group.Wait()
这也能怪Go?
avatar
f*t
47
接下来的Figure 6也有问题。
Go的文档https://golang.org/pkg/context/明确提到了一定要cancel否则有leak:
The WithCancel, WithDeadline, and WithTimeout functions take a Context (the
parent) and return a derived Context (the child) and a CancelFunc. Calling
the CancelFunc cancels the child and its children, removes the parent's
reference to the child, and stops any associated timers. Failing to call the
CancelFunc leaks the child and its children until the parent is canceled or
the timer fires. The go vet tool checks that CancelFuncs are used on all
control-flow paths.
不知道有什么语言可以不读清楚文档就随便写,还不会导致bug。
懒得读下去了,前边Figure 1是真正的问题,但我觉得是GC逻辑没写好。
avatar
h*i
48
这个,C++也一样啊。遵循文档都不该错的啊。写错了当然是程序员的错。
但是,但是,golang不是号称容易写对么?
现在实证数据来了,golang实际上让程序员更容易写不对,这个怨不得程序员吧?程序
员没说自己用了golang水平就提高了啊。
哈哈。

the
the
or

【在 f*******t 的大作中提到】
: 接下来的Figure 6也有问题。
: Go的文档https://golang.org/pkg/context/明确提到了一定要cancel否则有leak:
: The WithCancel, WithDeadline, and WithTimeout functions take a Context (the
: parent) and return a derived Context (the child) and a CancelFunc. Calling
: the CancelFunc cancels the child and its children, removes the parent's
: reference to the child, and stops any associated timers. Failing to call the
: CancelFunc leaks the child and its children until the parent is canceled or
: the timer fires. The go vet tool checks that CancelFuncs are used on all
: control-flow paths.
: 不知道有什么语言可以不读清楚文档就随便写,还不会导致bug。

avatar
f*t
49
抬杠有意思么,context和waitgroup的文档才几句话,跟C++比?
avatar
h*i
50
这不是抬杠。golang号称更容易的东西,实证不容易,这是个事实。
文档用的篇幅越少,说明问题更大啊,不是加分的。几句话的文档就写明白的事,程序
员都要写错,说明这个问题更大,不直观啊。
对不对?
语言最忌讳的就是怪程序员。
golang没用过,不了解,只是道听途说过golang社区比较defensive,貌似所言不虚哦。

【在 f*******t 的大作中提到】
: 抬杠有意思么,context和waitgroup的文档才几句话,跟C++比?
avatar
f*t
51
golang让程序员尽量少跟concurrency纠缠,实证是容易了,业界有越来越多的公司在
新项目中使用它,而号称“事实”的指控已被我指出至少有两个不成立的地方。
现代程序员写代码主要有两种,要不copy-pasta,要不老老实实读下文档再用某个函数
。简单几句话已经说明白了程序员非要因为不读而写错,难道不是程序员的问题?
waitgroup那个例子非常典型,程序员自己逻辑混乱,就算Wait()设计成等一个Done()
就能继续,这循环也变成了synchronous的。
没用过golang就坚持不懈地喷,实在要佩服。虽然论文作者看上去不熟悉go,但人家至
少花了时间去搜集和分析数据。举出的例子虽然不合适,但我相信只是由于经验不足而
不能分清用户程序员逻辑错误、语言实现错误和语言设计错误。拿着鸡毛当令箭就纯粹
是抬杠了。

哦。

【在 h*i 的大作中提到】
: 这不是抬杠。golang号称更容易的东西,实证不容易,这是个事实。
: 文档用的篇幅越少,说明问题更大啊,不是加分的。几句话的文档就写明白的事,程序
: 员都要写错,说明这个问题更大,不直观啊。
: 对不对?
: 语言最忌讳的就是怪程序员。
: golang没用过,不了解,只是道听途说过golang社区比较defensive,貌似所言不虚哦。

avatar
S*n
52
“In fact, message passing is the main cause of blocking bugs. “
“Message passing causes less non- blocking bugs than shared memory
synchronization and surprisingly, was even used to fix bugs that are caused
by wrong shared memory synchronization”
“We believe that message passing offers a clean form of inter-thread
communication and can be useful in passing data and signals. But they are
only useful if used correctly, which requires programmers to not only
understand message passing mechanisms well but also other synchronization
mechanisms of Go.”
avatar
S*n
53
文章还是挺有意思的。但用同一个go程序里面,不同地方使用shared memory和使用
message passing 的数量和bug量来对比谁好谁坏,感觉还是有点问题啊。
我觉得应该是:比较用shared memory和message passing 分别实现的相同逻辑/
feature,然后比较看谁更容易产生问题,才比较客观。
ps: 我不是golang死忠,我啥语言都用
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。