如何看待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公司收取高昂授權費,否則禁止其使用。


分享到:


相關文章: