如何看待Python之父再发声:我们能为中国的“996”程序员做什么?

魜溣


" Python is an exeriment in how much freedom programmers

need.Too

much freedom and nobody can read another's code; too little and expressiveness is endangered.

- Guido Van Rossum"

首先,我反对996

正如我上次回答这个问题几周前了,Guido Van Rossum 站出来发声是最近几天的事,我不意外他出来讲话,甚至当时写文章时第一感觉他会反对,至于是否公开观点,确实没有把握预测。

提到了python之父发明python语言的初心,上图是著名的python slogan:“人生苦短、我用python” 的完美解释。

英文意思是:

“Python是考验和锻炼程序员在编码的时候,考虑自由度的问题。过多的自由,就没有人能读懂别人的代码;而自由太少又会威胁到表达能力。

-吉多·范·罗森”

简单讲,python出现之前,有两个问题困扰程序员。

1、重复造轮子的问题。这个不多解释,比如,已经有大神发明了许多算法,运行效率都很好,就没有必要再自己琢磨,拿来用即可。实现这点需要新的语言设计之初就要考虑如何实现有丰富的库并且灵活方便的调用import,这需要做很多底层的改变。


讲一个 Oracle, Google和Timbot之间的趣闻:

sorted和list, sort背后的排序算法是Timsort,,它是一种自适应算法、会根据原始数

据的顺序特点交替使用插入排序和归并排序,以达到最佳效率。这样的算法被证明是

很有效的,因为来自真实世界的数据通常是有一定的顺序特点的。维基百科上有一个

条目是关于这个算法的(

https://en.wikipedia.org/wiki/Timsort)


Timsont在2002年的时候首次用在CPython中; 自2009年起, Java和Android也开始

使用这个算法。后面这个时间点如此广为人知,是因为在Google对Sun的侵权案中,

Oracle把Timsort中的一些相关代码当作了呈堂证供。详见"Oracle v. Google-Day

14 Filings"—(http://www.groklaw.net/articlbasic.php?story=201205 10205659643)。

Timsort的创始人是Tim Peters,他同时也是一位高产的Python核心开发者。由于他贡

献了太多代码,以至于很多人都说他其实是人工智能,他也就有了"Timbot"这一绰

号。在"Python Humor" (https://www.python.org/doc/humor/id49)里可以读到相关的

故事。 Tim 也是“Python 之禅” (import this) 的作者.


2、把握灵活和规范之间的矛盾。正如上面所言,编码的时候要考虑到其他人可以轻松读懂代码,便于维护。做到这一点,不仅需要有python这样的语言出现,还需要运用python的时候,领悟python如此设计的目的,不仅是为了方便,更考虑到可读性。数据结构中,key参数就很妙,字典非常强大和灵活,读起来也直观易懂。

举两个例子就知道了:


list. sort, sorted, max和min函数的key参数是一个很棒的设计。其他语言里的

排序函数需要用户提供一个接收两个参数的比较函数作为参数,像是Python 2里的

cmp(a, b)。用key参数能把事情变得简单且高效。说它更简单,是因为只需要提供一

个单参数函数来提取或者计算一个值作为比较大小的标准即可,而Python 2的这种设

计则需要用户写一个返回值是-1、0或者1的双参数函数。说它更高效,是因为在每

个元素上, key函数只会被调用一次。而双参数比较函数则在每一次两两比较的时候

都会被调用。诚然,在排序的时候, Python总会比较两个键(key),但是那一阶段的

计算会发生在C语言那一层,这样会比调用用户自定义的Python 比较函数更快。

另外, key参数也能让你对一个混有数字字符和数值的列表进行排序。你只需要决定

到底是把字符看作数值, 还是把数值看作字符:>>

>> l = [28, 14, 128, 5,'9', 1, 0, 6, 123, 19]

>> sorted(l, key=int))


[0, 1, 5, 6, '9', 14, 19, 28, 123, 128]

>> sorted(l, key=str))

[0, 1, 123, 128, 14, 19, 28, 5, 6, '9']


>> ls = ['a','x','b','d','1',1,'A']

print(sorted(ls, key=str))

['1', 1, 'A', 'a', 'b', 'd', 'x']


Geraldo Cohen 曾经说过, Pyhon 的特,点是“简单而正确”.

dict类型正是这一特点的完美体现—对它的优化只为一个目标:更好地实现对随机键的读取。而优化的结果非常好,由于速度快而且够健壮,它大量地应用于Python 的解释器当中。如果对排序有要求,那么还可以选择orderedoict,然而对于映射类型来说,保持元素的顺序并不是一个常用需求,因此会把它排除在核心功能之外,而以标准库的形式提供其他衍生的类型。


与之形成鲜明对比的是PHP。

在PHP手册中,数组的描述如下(http//hp.netmanual/en/language.types.aray.php) :

PHP中的数组实际上是一个有序的映射--映射类型存放的是键值对。这个映射类型被优化为可充当不同的角色。它可以当作数组、列表(向量)、散列表(映射类型的一种实现)、字典、集合类型、栈、队列或其他可能的数据类型。

单凭这段话、我无法想象PHP把list和orderedDict混合实现的成本有多大。


光有技术观点不够,我回答问题的目的:

其一 努力尝试找到造成996的根源,

其二 尝试找到办法避免996

当然,这绝不是一个技术问题,技术问题有明确的边界条件,掌握变量因素的先决条件。

逻辑严谨的好处是帮助我们分清楚什么是自己可以改变的,什么是自己不可改变的。

可改变的是什么?

提高生产效率,只有编码效率提高了,才是码农们可以改变自己的事情。


不可改变的是什么?

是资本时代的运行规则。公司之间的竞争已经陷入无可避免的底限竞赛。B公司的员工加班了,A公司的老板怎么能做到熟视无睹呢?因为产品要更快的迭代才能应对竞争。

但万事遵从物极必反,讲一个福特汽车老板和工会之间的段子


亨利 • 福特二世(Henry Ford II,福特汽车公司创始人亨利 • 福特的孙子)向汽车工人工会领袖沃尔特 • 鲁瑟(Walter Reuther)展示刚刚建成的全自动化汽车工厂。福特汽车公司的老板挖苦道: “沃尔特,这工厂里全都是机器人,你要怎么让 ‘它们’ 交工会会费?”

鲁瑟指着忙碌的机器人, 连想都没想就回敬了他:

“亨利,你怎么让它们买你的汽车呢?


现在国家拉动内需,老板总要让员工有时间花钱吧

再者,还有不需要加班的公司琢磨如何提高效率,可以跳槽去这些公司。

所以,感谢git,感谢开源社区的贡献者们,让我们早点下班而又不耽误工作


丁丁猫聊编程


python之父说:996工作制是没有人性的。

近日闹得沸沸扬扬的GitHub上的996ICU项目带来了全社会对996工作制的思考。

大部分程序员表示看热闹虽然也没有抱什么断绝996的期望,而非996员工尤其是不是程序员的表示“又想高薪又不想加班,哪有这么好的事情”。

这也不无道理,作为Java程序员,本人最近很少加班,工资也不高,而那些大厂比如华为阿里,加班强度非常大但是钱也给到位了。

前阵子看见有人在职言上说三月份连续加了二十多天班,加班工资14000,并表示四月份不想加班了。

网友纷纷表示:这加班工资都已经比我全部工资高了。

所以我们要怎么拯救“996”程序员呢?

这是很纠结的事情,处在领导位置管理层位置的人,他们是喜欢让员工加班的,这样可以压缩时间,赶项目进度,有人说不喜欢996的一般都是普通程序员。这也是话糙理不糙,但是你要想想初级程序员上班只是为了工资,又不是那些技术管理层有股份有分红,一个是为了打工一个是为了自己的事业。对待加班的态度也不能一起比较了。

宇文氏提议:

996加班可以,请给足加班工资,平时加班也算钱。并且需要有部门监管劳动法上的条例是否这些公司的强度都符合,即使是996也不能强制,只能偶尔出现。这个不是普通程序员可以去干预的,需要被上面重视方可。

关注“极客宇文氏”,一名热心有料的软件工程师。

极客宇文氏


如何看待Python之父再发声:我们能为中国的“996”程序员做什么?看来国内某些公司“996”的做法引起了全球程序员的关注,连Python之父也跑来发声支援。个人认为他的声援虽然也起不了多大的作用,不过也可能引起某些公司或部门的重视,尽量能够回归较为理性的工作制度。

"996"的工作制国外可能也有,但那并不是多普遍的现象。而在国内某些行业,比如互联网、软件等,可能已经把“996”工作制当成了理所当然。此事在去年某公司的年会上,宣布每天的工作时间调整为9:30~21:00,紧急项目一周要上六天或者更晚。一石激起千层浪,有员工把此事放到网上竟然引来了包括众多知名互联网等公司员工的大量支持。

如今国内的这种“996”工作制的名声,已经走出国门冲向了世界。连Python之父Guido也出来发声,认为“996”工作制是不人道的,而且再度飙升看能够为中国的“996”工作制程序员做些什么?而CPython核心开发者Senthil也出来发表自己的看法,提出可以做的事情:

a)让大家都知道存在这种“剥削”劳动力的现象,并在听到这些事时能表现出同理心。

b)列出执行这种工作制的公司,拒绝与他们开展业务合作,这是施加压力的最有效方式。

c)拒绝接受这些公司对 Python 的赞助。

然而这样的发声,对于国内实行996工作制的企业来说,没有什么能够触动他们的。也就是程序员们能够获得一点儿心里安慰而已。996工作制不好甚至反人道,可以说不只是程序员,连企业管理者或老板都知道这工作制对员工来说不好。

然而还有更好的办法能够让企业充满更强劲的竞争力、活力面临竞争,让企业节约更多成本赚更多钱的办法,让企业能够更快速更能满足客户期望提交成果物吗?基本没有!于是只有从现有员工身上获取到尽量多的价值就成为了最佳选项。作为企业,追求最大的利润是天然正确的。有些企业甚至把这些归纳为所谓的“企业文化”、“价值观”等,员工与这些企业文化或价值观不符吗?那就请改变自己符合,否则干脆走人滚蛋吧。


当然如果项目周期紧张偶尔实行996,无可厚非需要赶进度。但如果天天都这样确实员工也承受不了,而且还把到晚上9点下班时间定为了制度。要么钱给到位了员工就忍,否则也只有走人自己找个不实行996的单位了。能够让企业改变的,估计不是所谓的程序员能行。



东风高扬


支持使用开源语言必须遵守996协议



胡子攻城狮阿斌


公然违反劳动法,政府在看戏吗?


科考队员1


一个人能力有大小,但只要有这点精神,就是一个高尚的人,一个纯粹的人,一个有道德的人,一个脱离了低级趣味的人,一个有益于人民的人。


世外桃源79804


禁止996公司使用python,并利用个人影响力为处在996工作环境中的程序员发生,呼吁java,go,c#等语言向996公司收取高昂授权费,否则禁止其使用。