為什么中國(guó)程序員工資那么高,連一個(gè) MATLAB 的替代品都開發(fā)不出來?
鏈接:https://www.zhihu.com/question/402837414 編輯:深度學(xué)習(xí)與計(jì)算機(jī)視覺 聲明:僅做學(xué)術(shù)分享,侵刪
問題是Matlab的核心競(jìng)爭(zhēng)力是它集成的那些計(jì)算,這個(gè)和程序員沒關(guān)系,你需要一批真正優(yōu)秀的phd來寫這個(gè)算法需求,和能理解這套東西的程序員(最好是計(jì)算機(jī)系phd中途退學(xué)的那種)來實(shí)現(xiàn)和測(cè)試這些算法和集成。正常來說這個(gè)世界上99%的編程是不需要啥智商就能干的,但Matlab的算法實(shí)現(xiàn)還是略有一點(diǎn)門檻。如果你有預(yù)算找一堆程序員,開發(fā)一個(gè)wps是不難的,但是Matlab是另外一個(gè)難度量級(jí)的東西。因?yàn)殛P(guān)鍵的瓶頸需要真的不是程序員。
如果你只是找一堆程序員來開發(fā)的話,大概率會(huì)得到一個(gè)有Matlab 5%功能,能滿足90%客戶需求,很可惜的是這90%客戶都是白嫖的需求(真會(huì)付費(fèi)的10%用戶需要的不僅僅這5%功能)。所以最后你就會(huì)真的得到一個(gè):“我們中國(guó)真是太厲害了”的產(chǎn)品。
https://www.zhihu.com/question/402837414/answer/1298220759
其次搞不清楚高工資是怎么來的,是來源于「賣方市場(chǎng)的稀缺性+買方市場(chǎng)的資金供給」,兩者缺一不可,說白了就是供需關(guān)系決定了工資高低,matlab 就不屬于這種類型,開發(fā)周期長(zhǎng)、變現(xiàn)效率低、人才需求高,在投資的角度看,做中國(guó) matlab 是純粹賠錢的生意,項(xiàng)目不賺錢、投資人不看好就不可能有高工資,抖音、快手的盈利模式來源于信息流廣告+直播打賞抽成,是在商業(yè)上被驗(yàn)證過的可持續(xù)盈利模式。
還有搞不清楚「中國(guó) matlab」應(yīng)該由誰來負(fù)責(zé),題主上來就把矛頭指向抖音、快手這種商業(yè)公司應(yīng)用,似乎他們要為matlab被卡脖子背鍋,這種研發(fā)周期長(zhǎng)、人才需求高、變現(xiàn)效率低的項(xiàng)目不可能有商業(yè)公司來開發(fā),因?yàn)榫退阕龀鰜砹艘膊蝗纭刚?matlab」好用,最后就是死路一條,企業(yè)的目的是盈利不是做慈善(當(dāng)然,現(xiàn)代社會(huì)的慈善本身就是門生意),所以需要政府下場(chǎng)用有形的手來扶持這種從商業(yè)上看起來非常差但是又是對(duì)中國(guó)產(chǎn)、研具有重大意義的項(xiàng)目,然而事實(shí)是這類軟件長(zhǎng)期的扶持力度都不夠。
https://www.zhihu.com/question/402837414/answer/1299440292
要做,都是能做的。
所以再開發(fā)一個(gè)Matlab沒有意義。
一個(gè)軟件有足夠多的用戶或者足夠高的盈利才能分?jǐn)偟粞邪l(fā)的開銷。就是這樣。而在很多細(xì)分領(lǐng)域其實(shí)承擔(dān)不起資源的浪費(fèi)。
https://www.zhihu.com/question/402837414/answer/1301944285
Matlab受中國(guó)主流的市場(chǎng)歡迎嗎?它只是一款研究工具,受眾是很小的,也沒有那么多人喜歡研究物理、化學(xué)、生物學(xué)和醫(yī)學(xué),中國(guó)人喜歡追星、喜歡賺錢,卻沒有人和學(xué)校愿意為一款科學(xué)研究軟件付費(fèi),十分慚愧的是,我在數(shù)學(xué)建模時(shí)用的Matlab軟件也是破解版的,我愿意花幾百塊去購(gòu)物和消費(fèi),卻不愿意為我的生產(chǎn)力工具花錢,我也是個(gè)普通而世俗的人。
那么,中國(guó)沒有matlab真的可以責(zé)怪程序員嗎?為什么不責(zé)怪明星呢?他們明明最受民眾歡迎,而且賺錢最多?那么誰捧著明星上天的呢?如果我們國(guó)家全是樂于科學(xué)研究的人,愿意花錢在科學(xué)研究的軟件上,中國(guó)何愁不能把世界上全部最牛逼的軟件研發(fā)出來?
所以,最后我們只能信任國(guó)家了,國(guó)家如果愿意給這種十幾年都賺不到一分錢的軟件托底,我相信我們一定能研發(fā)出比matlab還好的軟件。當(dāng)然,你一定會(huì)反駁,中國(guó)不是最近有個(gè)Truffer了嗎?去看看它的源代碼吧,我是不相信這點(diǎn)源代碼的體積能有什么驚世駭俗的功能,資本的市場(chǎng)就是,完成了百分之一就能拿出來賣了,這對(duì)科研軟件百害而無一利。
所以,這么憤怒有什么用呢?中國(guó)有個(gè)求伯君,獨(dú)身一人寫出了WPS,但WPS賺到什么大錢了嗎?捫心自問一下,中國(guó)沒有matlab難道不是全體中國(guó)人的問題嗎?
我們喜歡抖音,所以程序員拼了命地完善抖音軟件,可是你不知道,那些寫抖音軟件的程序員可能一輩子都不用抖音,他們內(nèi)心也是鄙夷的,他們可都是清北名校的學(xué)生??!你說憑借他們的能力,什么軟件研發(fā)不出來?
最后提一下,Matlab一開始只是一個(gè)老師用業(yè)余時(shí)間開發(fā)的,只是為了提高教學(xué)質(zhì)量,一篇論文都沒發(fā)。試問中國(guó)的老師,忙著評(píng)職稱忙著升官,還有人惦記著學(xué)生的教學(xué)質(zhì)量嗎?有老師愿意花幾十年開發(fā)一款發(fā)不了論文的軟件?
https://www.zhihu.com/question/402837414/answer/1300751365
我碰巧接觸過的東西,數(shù)值計(jì)算有 octave/numpy/R 甚至 tf/pytorch(不完全是開玩笑),統(tǒng)計(jì)學(xué)有 scipy/SAS/R,流體力學(xué)仿真有 OpenFOAM,計(jì)算生物學(xué)有它自己的一堆開源庫(kù)。碰巧都不(完全)是 matlab 一家獨(dú)大的局面。
如果你所在的行業(yè)現(xiàn)狀就是 “自己行業(yè)的核心算法居然主要活在一個(gè)商業(yè)軟件的 toolbox 里”,那么不管有沒有貿(mào)易戰(zhàn),有沒有封鎖,你都應(yīng)該居安思危。人的命運(yùn)本來就不應(yīng)該被一個(gè)商業(yè)軟件所掌控。
https://www.zhihu.com/question/402837414/answer/1299341619
至于Simulink這樣現(xiàn)在無法替代的Matlab組件,也是92年左右和Matlab4.0一起出現(xiàn)的,也有快30年了。
中國(guó)程序員工資高應(yīng)該是2008年以后的事,而且2012年以前,軟件自主化正版化的潮流還都沒起來。就用這幾年時(shí)間去和別人30年打下的基礎(chǔ)硬拼,還是很不容易的吧。
而且,工資高的程序員大多就職于在風(fēng)口上、靠風(fēng)投吃飯的那些互聯(lián)網(wǎng)公司。其他地方的程序員,同一條件下的工資不比其他白領(lǐng)高出多少。Matlab這樣的軟件本身就是應(yīng)用數(shù)學(xué)學(xué)科領(lǐng)域出來的,開發(fā)起來對(duì)程序員、產(chǎn)品甚至測(cè)試等各崗位人員的要求都相當(dāng)高;有這種能力的程序員,在當(dāng)今市場(chǎng)形勢(shì)下, 更容易被互聯(lián)網(wǎng)公司的高工資所吸引過去。
Matlab屬于專業(yè)軟件,面向的是已經(jīng)高度細(xì)分的特定市場(chǎng),潛在用戶數(shù)有限,不好做成SaaS(很多應(yīng)用場(chǎng)景下不能或者不總能連接外網(wǎng)),對(duì)性能和穩(wěn)定性要求較高。這樣的軟件,在風(fēng)投眼里不屬于能長(zhǎng)期帶來大量熱錢的產(chǎn)品。因此,他們對(duì)這種軟件的替代品進(jìn)行投資的欲望應(yīng)該十分有限。
https://www.zhihu.com/question/402837414/answer/1301902986
背景
首先想要理解這個(gè)問題,我們需要先了解以MATLAB為代表的科學(xué)計(jì)算軟件的市場(chǎng),它們的開發(fā)需求,以及技術(shù)需求。
以最為常用的線性代數(shù)算法庫(kù)為例,這些算法實(shí)現(xiàn)不僅需要理解前沿的應(yīng)用數(shù)學(xué)知識(shí),此外還需要開發(fā)者對(duì)計(jì)算機(jī)體系結(jié)構(gòu),編譯原理有比較好的理解,從而使得開發(fā)出來的求解器不僅僅在算法上快,也在實(shí)現(xiàn)上快。也只有這樣才能解決非常實(shí)際的生產(chǎn)/應(yīng)用/科研問題。比如你知道雖然QR分解,SVD分解等算法原理似乎沒有那么的難,但是想把一個(gè)實(shí)現(xiàn)做到在小尺寸和大尺寸下都非常高效,并且提供硬件加速(比如GPU)和分布式計(jì)算,并且能夠支持一些非標(biāo)準(zhǔn)類型(非IEEE標(biāo)準(zhǔn)的浮點(diǎn)數(shù))其實(shí)是一個(gè)很難的事情。它對(duì)程序員的要求會(huì)很高,比如有時(shí)候函數(shù)遞歸實(shí)現(xiàn)一些算法比for循環(huán)有更好的cache locality,而有時(shí)候一些算法對(duì)GPU又更加優(yōu)化等等等等。并且在特定的硬件限制下還有可能會(huì)對(duì)算法進(jìn)行修改,比如arnoldi分解在GPU上實(shí)現(xiàn)需要在CPU上維護(hù)一個(gè)小矩陣等等。這些技術(shù)知識(shí)放在全世界的任何國(guó)家都不是多數(shù)程序員會(huì)愿意學(xué)習(xí)并且思考的,因?yàn)樗鼈儾粌H很雜,而且可以很難。
而要知道線性代數(shù)只是眾多功能里最簡(jiǎn)單的一環(huán)。
這一類軟件的大部分應(yīng)用場(chǎng)景都是做原型,算法開發(fā)等。所以往往是跑出結(jié)果就行,這也決定了它們對(duì)相關(guān)生態(tài)環(huán)境有著很大要求。所以實(shí)際上在已經(jīng)成熟的應(yīng)用里完全替代其中的任何一個(gè)都幾乎不可能:它們已經(jīng)成為了各個(gè)行業(yè)里的標(biāo)準(zhǔn),它們的應(yīng)用領(lǐng)域也往往并不完全交叉,僅有少量重疊。我常常會(huì)在各種地方說應(yīng)當(dāng)去使用Julia來代替MATLAB,但是我也要承認(rèn)simulink的生態(tài)依然是很難替代的。
實(shí)際上因?yàn)镸ATLAB的商業(yè)特性,以及很多缺點(diǎn)(我們也要承認(rèn)它是有缺點(diǎn)的),前前后后,從Octave,Python到Julia,開源社區(qū)已經(jīng)出現(xiàn)了很多嘗試替代MATLAB的努力。這些努力長(zhǎng)則有三四十年,短則也有像Julia開發(fā)了十年的工作。即便如此,MATLAB也依然沒有被完全替代。足見想要做出一個(gè)替代品是非常困難的。
這些特性決定了這類軟件的誕生往往開始于某個(gè)行業(yè)的從業(yè)者的個(gè)人需要,而之后慢慢演變成一個(gè)在一些領(lǐng)域里主要的工具箱。這些項(xiàng)目的發(fā)起人以及早起開發(fā)者本身都是非常珍貴的人才資源,他們不僅熟悉相關(guān)的專業(yè)知識(shí),也同時(shí)熟悉軟件開發(fā),高性能計(jì)算等技術(shù)知識(shí)。而實(shí)際上我們是非常匱乏這類人才的。甚至在全世界的范圍里,這樣的人才都很匱乏。以至于別說中國(guó)了,美國(guó)的公司也不一定能找到多少。
原因
首先當(dāng)然要考慮到歷史的進(jìn)程,中國(guó)的整體科研實(shí)力才剛剛起步,我們不能指望在十年或者二十年前去填這個(gè)坑,那個(gè)時(shí)候有更重要的事情要優(yōu)先去發(fā)展。而我們的博士學(xué)位在人口中占有的比例也依然是不夠高的。
其次是需求,一方面,雖然都是程序員,但是寫前端,網(wǎng)絡(luò),數(shù)據(jù)庫(kù),編譯器都是非常不同的技能樹。而科學(xué)計(jì)算類的軟件則和之前這些傳統(tǒng)計(jì)算機(jī)行業(yè)有著更加不同的技能點(diǎn)。實(shí)際上如果不是深度學(xué)習(xí)的大規(guī)模應(yīng)用,計(jì)算機(jī)行業(yè)可能都不會(huì)這么關(guān)注線性代數(shù)和微分方程等以浮點(diǎn)為主的實(shí)現(xiàn)。所以一方面,做淘寶,做數(shù)據(jù)庫(kù)的程序員在技能上并不容易轉(zhuǎn)向科學(xué)計(jì)算領(lǐng)域,畢竟隔行隔座山,另一方面,解決大眾問題的軟件需求更大,短時(shí)間內(nèi)的收益更高,選擇去做這類軟件也是大部分人很自然的選擇。我在上一個(gè)部分說過:這類軟件往往源自于從業(yè)者解決自己?jiǎn)栴}的代碼。
匱乏支持,這也是很重要的一個(gè)點(diǎn)。這類軟件的開發(fā)一直在國(guó)內(nèi)得不到比較有效的支持。一方面是科研的導(dǎo)向是以論文為主的。另一方面,我們完全沒有支持這方面開發(fā)的基金。而實(shí)際上頻繁使用此類開源軟件的朋友想必一定聽說過NumFocus吧?NumFocus這個(gè)基金會(huì)支持了我們今天耳熟能詳?shù)拇蟛糠挚茖W(xué)計(jì)算軟件,例如已經(jīng)成為了幾乎所有人標(biāo)配的兩個(gè):numpy和matplotlib。
而我這里所說的支持,并不只是錢,錢很重要,但不能解決所有的問題。而是從社區(qū)的運(yùn)營(yíng),軟件的宣傳,組織開發(fā)者之間的合作以及法律援助等一系列支持。而這種支持是需要有目標(biāo)的,而不是簡(jiǎn)單的設(shè)立一個(gè)獎(jiǎng)項(xiàng)發(fā)了錢了事的。這是我們?cè)趪?guó)內(nèi)做的不夠好的地方,也是急需改進(jìn)的地方。
去年我嘗試為Julia中文社區(qū)以及我們自己的軟件尋找一些國(guó)內(nèi)的支持,但是最后發(fā)現(xiàn)各方面的手續(xù),流程對(duì)這些特定領(lǐng)域的小項(xiàng)目都很不友好。比如如果Julia中文社區(qū)去收取企業(yè)/個(gè)人捐款,并且按照正規(guī)流程做帳,稅收會(huì)占掉整個(gè)捐助的大約20%,而申請(qǐng)非盈利組織則需要掛靠政府部門。而作為對(duì)比的是,我來到加拿大以后立刻有開源基金愿意資助我們的開源項(xiàng)目。
我們國(guó)內(nèi)現(xiàn)在只有企業(yè)在做和業(yè)務(wù)相關(guān)的開源項(xiàng)目,但是對(duì)于這些科學(xué)軟件的支持,真的非常匱乏。而這些科學(xué)軟件是完全不可能靠著短期的商業(yè)變現(xiàn)活下去的。因?yàn)榧幢闶穷I(lǐng)域內(nèi)非常重要的軟件,其用戶數(shù)量可能也并不是很多。其中一個(gè)例子就是qutip,這是一個(gè)幾乎所有做量子物理實(shí)驗(yàn)的組都用過的軟件,但是它在GitHub上的star也不過800多。我在上一周和它的核心開發(fā)者Nathan交流的過程里了解到,它也是靠著日本RIKEN等實(shí)驗(yàn)室和開源基金提供的支持活下來的。
還有很重要的一點(diǎn)是我們國(guó)家很多公司的996制度。996制度實(shí)際上破壞了大部分程序員的創(chuàng)新性,把他們變成了所謂的“社畜”。。我相信很多已經(jīng)在上班的同學(xué)都有一個(gè)感受就是身體被榨干。那就算工資很高,怎么還會(huì)有心思去學(xué)習(xí)和挑戰(zhàn)這些更難的東西?
開源運(yùn)動(dòng)還有待發(fā)展,MATLAB的模式已經(jīng)是上個(gè)世紀(jì)遺留的模式了,想要做新的科學(xué)計(jì)算軟件,不可避免地需要開源。因?yàn)樾枨鬀Q定了招一整個(gè)團(tuán)隊(duì)把所有的東西都做出來是不現(xiàn)實(shí)的。而開源不僅能夠提供更好的生態(tài),更新的算法,也更加方便為整個(gè)社會(huì)積累人才。但是我們現(xiàn)在的開源運(yùn)動(dòng)還不夠普及,我們支持開源運(yùn)動(dòng)的基礎(chǔ)設(shè)施還不夠完善,我們對(duì)知識(shí)的獲取也還不夠開放。這些都是很大的障礙。
解決問題
如果我們能夠堅(jiān)持這樣的努力十年,我相信十年以后,有沒有替代品這個(gè)問題就變得沒有那么重要了。
其次是需求,我想既然最近這個(gè)問題已經(jīng)被很多人關(guān)注了,想必需求已經(jīng)在產(chǎn)業(yè)升級(jí)的過程里開始擴(kuò)大了。所以這也許已經(jīng)不再是問題了。
技術(shù)層面,我不看好任何嘗試用類似模式替代MATLAB的產(chǎn)品,因?yàn)橄胍?020年復(fù)制MATLAB的商業(yè)模式是非常困難的。MATLAB實(shí)際上也是通過它在一些領(lǐng)域的生態(tài)霸權(quán)來把軟件賣給別人,而想要實(shí)現(xiàn)這樣的生態(tài)壁壘不是一朝一夕就能夠形成的。并且在學(xué)術(shù)界開源共享也是趨勢(shì),與其被商業(yè)軟件牽制,不如做出有我們自己影響力的開源軟件,擁抱開源社區(qū),看看Python,Julia,R等開源軟件里的功能缺什么,把開源的軟件做到更好,讓全世界都加入進(jìn)來 -- 美國(guó)政府想要閉關(guān)鎖國(guó),那么我們就應(yīng)該做那個(gè)更加開放的。MATLAB的繁榮不是靠一個(gè)國(guó)家,一個(gè)公司的人去完成的,而是作為一個(gè)有先發(fā)優(yōu)勢(shì)的軟件,在過去幾十年的時(shí)間里,全世界的人去貢獻(xiàn)生態(tài)而做到的。
然后就是支持了。我嘗試聯(lián)系過集智俱樂部的朋友去幫忙推進(jìn)一個(gè)用于資助科學(xué)計(jì)算的開源基金的事情。但是進(jìn)度非常緩慢,尤其是今年遭遇了疫情之后,打斷了很多事情,也許有渠道的朋友可以幫幫我們。亦或者有公司,個(gè)人愿意牽頭去做一個(gè)支持中國(guó)開源的科學(xué)計(jì)算軟件發(fā)展的基金都會(huì)是非常好的開始。
另外一個(gè)方面,我其實(shí)有注意到大佬@賈揚(yáng)清在之前一個(gè)回答里提到的阿里巴巴的開源運(yùn)動(dòng)。現(xiàn)在每年阿里巴巴也有一個(gè)編程之夏的活動(dòng)。如果我們能有更多這樣的支持,以及更多孵化開源的科學(xué)計(jì)算軟件的支持,我相信下一個(gè)十年我們就能用上更多更好的科學(xué)計(jì)算基礎(chǔ)設(shè)施。
https://www.zhihu.com/question/402837414/answer/1300914215
要么我們從頭做起開始建模CDL和TDL,要么使用Matlab現(xiàn)成的。區(qū)別在哪里呢?建模CDL和TDL會(huì)涉及到很多編程內(nèi)部邏輯bug問題(并非編程報(bào)錯(cuò)),我們大概率要耗費(fèi)掉一個(gè)碩士畢設(shè)的時(shí)間(大概6個(gè)月)讓她他研究這兩種建模以及3GPP文件里的參數(shù)。
我們不想做的工作是因?yàn)橐呀?jīng)有某位或某幾位專業(yè)人士把這個(gè)CDL和TDL寫好了,并且我們相信他們應(yīng)該已經(jīng)盡可能地debug了。
稍遠(yuǎn)一些,phased array庫(kù),我相信在座的不少是MIMO,beamforming研究人員,各種MRC,ZF還有dirty paper可能已經(jīng)聊熟于心了, 但是你們?cè)敢馔绞炙阋幌?6*16URA給定steering angle后的directivity嗎?如果天線單元不是isotropic呢?甚至不夸張的說,很多人都不愿意費(fèi)時(shí)費(fèi)力的去寫一個(gè)通用性很好的計(jì)算directivity的程序,比如適應(yīng)不同的array pattern,不同的inter-element spacing等等吧。
Matlab究竟是什么呢?單從無線通信領(lǐng)域來說,這叫做站在巨人的肩上。無數(shù)同行貢獻(xiàn)了classic或state-of-the-art的程序,使得我們不用沒完沒了地重復(fù)0到1,更多的用時(shí)間來實(shí)現(xiàn)1到∞。
https://www.zhihu.com/question/402837414/answer/1301820579
2.先發(fā)企業(yè)或者國(guó)家耍流氓。為了打擊對(duì)手,突然采取這個(gè)手段,打擊對(duì)手,同樣的事情在IT行業(yè)內(nèi)和其他行業(yè)也屢見不鮮??纯碔T發(fā)展史 ,很多。特別是中興和華為的事情。國(guó)外總說我們專制,其實(shí)無論歐美還是日韓對(duì)我國(guó)的企業(yè)都是這樣。
3.國(guó)家其實(shí)有很多研究項(xiàng)目,就是做這些軟件的,因?yàn)槭袌?chǎng)等問題,這些研究成果被束之高閣。隨著時(shí)間的流失,產(chǎn)品失效,人員流失。
4.這類軟件,從單純技術(shù)角度不難開發(fā),但如何形成有效的市場(chǎng)機(jī)制是需要研究的,否則類似問題會(huì)層出不窮。應(yīng)該對(duì)相應(yīng)的國(guó)外企業(yè)給予一定的懲罰。
5.目前的軟件開發(fā)和行業(yè)結(jié)合會(huì)越來越密切。專業(yè)軟件公司會(huì)越來越多。如何讓這些細(xì)分的專業(yè)領(lǐng)域軟件公司得以生存和發(fā)展。是面臨的一個(gè)難題。
