GitHub的中國亂象:刷星、高仿、罵街和版聊
歡迎關注“創事記”的微信訂閱號:sinachuangshiji
文/光譜
來源:矽星人(guixingren123)
不守規矩的玩家,汙染的是整個環境,以及中國人的集體聲譽。
大家好,矽星人又來揭黑打假了。
今天,我們關注一下人稱全球最大程式員交友社群的 GitHub 。
這兩天有朋友問我:你有關注前端圈最近的娛樂大新聞嗎?然後扔給我一個網站,名叫前端娛樂圈:
點進去看了下,是另一個程式設計師社群“掘金”的頁面。ID名為“花褲衩”的使用者放了一張截圖:
https://juejin.im/post/5b8c9310f265da4361530560
雖然矽星人自己不是程式設計師,倒也還是對GitHub稍有了解的。
這個Trending是統計專案每日增加的星數(Star)得來的,而在GitHub上,星就和別處的收藏、按讚的意思差不多。
而截圖顯示,這個專案kui-vue的星數高達1,100多個,而且是在一天內就增加了超過1,000個星。
相信矽星人的工程師朋友們都知道:能登上GitHubTrending的專案,肯定都是很厲害的專案。
比如,某個行業從來沒有人做過的重要功能元件,或者比之前最佳方案顯著優秀的“輪子”*,抑或大公司開發的影響力比較大的專案開源,都有可能登上GitHubTrending。
比如Google的深度學習框架TensorFlow開源的時候,就上過Trending:
問題在於,這個kui-vue前端專案,並沒有很厲害。不但PR和Issue**很少,也並不是來自什麼大公司。
就跟微信公眾號閱讀量太高,贊數&留言太少一樣,GitHub專案星數很多PR&Issue不成比例,也很蹊蹺。
使用者“花褲衩”沒用多久就發現了kui-vue的問題所在:給這個專案按星的大量使用者,都有明顯的共同特徵:
1.沒有頭像
2.都按星了相同的幾個專案
誰都不傻:這不很明顯的機器人嗎!
現在基本可以確定,kui-vue是靠刷星在9月2日衝上的Trending。
(是的,我也是頭一回知道,原來GitHub也可以刷…)
真的有很多使用者(不少都是中國使用者)上刷星。
多到有人在GitHub上專門做了個黑名單,記錄有作弊行為的使用者和專案:
https://github.com/cheathub/cheats
矽星人發現,很多舉報刷星專案的朋友都提到過,在淘寶上有店鋪專門做這種生意……
不是說說而已,下面這些截圖顯示,淘寶上還真有做這行生意的:
真是萬能的淘寶……
這些截圖也透露了幾個比較重要的訊息:
首先:使用者刷星,違反GitHub的使用者協議是淘寶商家或者提供這種服務的人,並不是使用者本人。嚴格來講,使用者只是有不誠信行為而已;
其次,最後一張截圖展示了很多使用者刷星的動機所在:想讓自己的努力更容易被別人看到。
和大部分職業一樣,軟體工程師入職前也得面試。
對於他們,GitHub就是簡歷。他們的企圖很簡單:當面試官看到庫裡有星數很高的專案,通常代表這個程式設計師有能力開發高質量的專案,在圈內有一定的影響力或者潛力。
招來這個人,不僅能讓開發變快讓業務更順,還能讓公司在開發者社群裡提高存在感和地位,說出去都是“我們公司有GitHub上高星數的程式設計師”,挺有面子的。
然而問題在於: 大部分程式設計師都是真的刻苦開發鑽研技術,做出優秀的專案,卻總是有人選擇走捷徑、耍小聰明。
最近幾年來,隨著中國科技網際網路創新的加速,中國程式設計師也越來越多。需求也提高了,也就有了GitHub刷星這回事。
當然,也別全都當面試官是傻子嘛……
“感覺就是一點老鼠屎壞了一鍋湯,”矽谷程式設計師小陳告訴矽星人,
“面試官以前會用星數來判斷面試者的能力。現在知道原來這些也能買,就不考慮了。 這樣對真正有技術實力、靠自己本領攢了很多星的朋友很不公平。”
刷星只是GitHub上“中國亂象”的一小部分。
為了寫這篇,矽星人查了查資料也問了身邊的程式設計師朋友,發現中國人在GitHub上亂搞的能力遠不止於刷星。
來,我們一起看看這些神奇的玩法:
1高仿
高仿是最近幾年GitHub上特別猖狂的一種造假/不誠信行為。具體有這麼幾種體現形式:
1)使用者高仿
使用者高仿就是某些壞蛋把別的(通常比較優秀的)GitHub使用者完全照搬過來,頭像、地區、組織等使用者資訊和抄襲物件完全一樣。
以下截圖來自V2EXhttps://www.v2ex.com/t/342137
原主:
高仿:
這樣做的效果就是高仿者自己的專案得到了很多使用者關注、按星和PR;與此相對,正牌作者專案的關注、技術討論和支援,甚至捐助都被分流走了。
這裡面還有細節。觀察了很多高仿者,發現他們repo裡的專案都是差不多的……莫非都是一個地方出來的?
2)產品高仿
產品高仿就是完全仿照某些知名的移動網際網路產品的外觀開發一個專案。
去GitHub上搜一圈,你應該能找到一大堆高仿微信、高仿美團、高仿餓了麼、高仿知乎之類的專案。
這種專案大多直接亮明瞭是高仿身份。
一位在掘金工作的朋友表示,GitHub上的高仿專案,大多都是社會上的軟體開發培訓班產物。
他說,有些培訓班的學員還會去抄襲掘金上別人的文章,在簡歷裡說是自己寫的;最不要臉的是發了高仿的專案到掘金上,然後截圖說被社群推薦,還說掘金跟這些培訓機構有合作。
“我們之前是收到很多高仿的投稿,例如使用vue高仿餓了麼,高仿美團,都是培訓班搞的么蛾子。”
2、垃圾專案刷版
培訓班除了喜歡做高仿之外,還特別喜歡做一件事:讓學員把GitHub當網盤,把作業——通常都是垃圾專案——放到GitHub上刷版。
截圖來自掘金:
專案基本就是貪吃蛇、象棋、京東之類的:
我終於知道淘寶上消失的那些“GitHub代練”都跑哪兒去了。
現在,培訓班都把這些業務託管了:從建立個人網站,到包裝GitHub賬號,包括刷星、關注、優先客戶的PR等,應有盡有,一站解決……
培訓班為什麼這麼做,就是因為現在的科技公司招人都很看重候選人在GitHub這樣的程式設計師社群裡面的表現。
3、版聊
本質上,GitHub是個使用Git技術進行版本控制的軟體原始碼託管服務。
GitHub同時也代表一個開源的社群。 但在一切之前,它本身應該是一個嚴格的、沒有bullshit的工具。
然而如果你把GitHub只看作是一個社群的話,就很容易濫用它的一些功能。
下面這幾張截圖,出自前端圈一個比較有名的事件。今年,Node之父RyanDahl(ry)開發了一個新專案deno,在GitHub上開了源。
結果,有大量中文使用者跑到這個專案上版聊:
版聊裡甚至出現了下面這種神奇的中式英文:
這些版聊,是通過專案的Issue形式釋出的,然而Issue的本來作用是讓使用者舉報bug、對專案提交技術上的建議和意見用的。
遺憾的是,這些中國使用者根本沒有掌握GitHub的正確用法,還以為它是天涯……
4、明哥事件
如果ry/denoIssue版聊把GitHub變成了天涯,那麼明哥已經把GitHub變成了QQ空間。
明哥(MingGe)以專案描述README文風囂張,和專案實際程式碼質量極低,在GitHub上特別出名……
讓我們看一下明哥的專案MingGeJS的專案描述:
“
繼優秀作品shearphoto截圖外掛,本人又再推出國產山寨JQUERY,為什麼我要開發一個山寨JQUERY?老實說我從來沒用過JQUERY,正因為我反感JQUERY。
為什麼我反感,因為我完全有開發JQUERY的能力,JQUERY的底層我都瞭如指掌。
它的名字叫MingGeJs,MingGe就是我的大名,一看到外掛名字,就知道作者是我,知道它是國產的,讓別人知道國產類庫一樣做得很出色,出眾
本人文化程度不高,初中畢業!半句英文都不會,但是我相信只要肯努力一樣可以實現自己的夢想。
MingGeJS的夢想有點大膽,就是在全球範圍內,佔據jQuery百分之50以上的使用者份額。
(千真萬確都是他自己寫的)
是不是特別的霸氣!
然而知乎網友魯小夫看了程式碼發現,明哥的這個專案程式碼質量是真的差,不但裡面英文拼寫有一大堆錯,還把抄襲物件JQuery裡面很多好的地方全都改的更爛了……
https://www.zhihu.com/question/38537088/answer/76997255
就是這樣一個神奇的專案,在GitHubTrending上一度追趕蘋果Swift:
明哥就這樣出名了。在專案的一個更新文件裡,他分享了自己的經歷:
怎麼講,明哥你贏了!
這些中國亂象,已經在GitHub上引起了公憤。
deno專案Issue被中文刷屏,導致作者ry苦不堪言。他不得不自己也寫了一條Issue,告訴所有人:如果沒有正經事,請保持安靜。
其他英文使用者也看不下去了,紛紛要求ry關掉無意義的Issue:
事情大到了ry一度不得不關掉Issue功能(後來打開了)。
當然,最看不下去的,還是中國自己的開發者。
因為這些亂象雖然猖狂,總體上GitHub的大部分中國使用者,還是很遵守這個開源社群的規矩的。
這也是為什麼在知乎、V2EX、掘金和其他平臺上,能夠看到大量對高仿、刷星和版聊的聲討。
一位矽谷程式設計師小魏也關注過GitHub上的中國亂象,他表示,這些行為極大地影響了使用者使用GitHub的效率,擾亂視聽。
他說的沒錯:高仿專案分流了真實專案的關注度;刷星的專案容易導致新手使用者誤入歧途;使用Issue版聊嚴重干擾了專案作者的工作和生活。
不守規矩的玩家,汙染的是整個環境,以及中國使用者的集體聲譽。
還GitHub一片淨土吧。
*輪子:梗來自“重複發明輪子”,可以指程式、工具、庫、之類的實現方式。很多GitHub使用者熱衷造輪子,但這並不是錯誤,因為新的輪子可能比舊輪子更好用。
**PR:PullRequest,即其他使用者向原專案提交自己的修改,要求專案所有者批准。由於GitHub的開源專案庫屬性,PR是專案改進的實現方式,是GitHub的重要功能之一;Issue:允許其他使用者向專案所有者提交自己發現的bug以及改進的意見和建議等,也是GitHub的重要功能之一。