特斯拉為何使用.NET 技術棧?
【精選轉載】| 來源/知乎在知乎上有一個帖子非常熱鬧:“為何特使拉使用.net core技術棧 而不用 java?”
作者:Kasim
鏈接:https://www.zhihu.com/question/496204534/answer/2269157872
這題我熟啊,現(xiàn)役Tesla員工(.net core full stack)來答一發(fā)。
先確定的是,Tesla內部雖然是.Net Core主流,但是Java,Golang,NodeJS,PHP都有在用。所以不存在“不用java/go等”情況。
另外也不像某些答主猜的,我們只有很少的服務在用Azure,還有很多不是。所以跟強大的Azure沒啥關系,不過Azure的確好用。
國內不用.net技術棧無非兩個大原因,守舊的人會說“.Net技術棧的相關上下游軟件收費太貴”,互聯(lián)網(wǎng)相關的會說“.Net生態(tài)不好沒輪子”。
關于收錢,.Net技術棧相關應用早就可以選擇便宜的的Linux+MySQL方案了。IDE也有VSCode可以用。所以錢早就不是問題了,相對的有些地方花錢反而是為了省錢省時間,最直接的做.NET用VSCode有VS/Rider效率高?自己搭建管理機房和買云服務(阿里云/Azure/AWS)哪個成本高?
關于輪子,小公司才看輪子,大公司到一定程度就不用太關心輪子了,絕大多數(shù)基礎業(yè)務的輪子(日志,RPC)一般都有,剩下的小眾一點的輪子,讓高級工程師、架構師來搞定,然后在企業(yè)內統(tǒng)一使用。
而關乎一個企業(yè)招什么人的一個很重要的因素,就是招聘成本,在國內圈子里一個合格的.Net太難招了,不是在國企抱著.Net Framework已經(jīng)躺平了,就是剛入行每天CURD的菜鳥,再有一撮就是已經(jīng)在大企業(yè)干的風聲水起的。頭部的要不起,底部的不想要,中間的人才稀缺流動性差,自然沒人用。哪個部門的領導也不希望自己定了個技術棧,然后等了大半年招不上人,一直開不了工,這是不打算干的節(jié)奏了。而Tesla的軟件研發(fā)中心,主要都是在美國和中國,美國的市場招.Net就容易多了,所以即使國內招不上來人,可以先讓美國的研發(fā)中心頂著,最多就是溝通成本高點。
以上。
作者:AlseinX
鏈接:https://www.zhihu.com/question/496204534/answer/2213155471
很簡單,用是因為好用,性能和語法表現(xiàn)力/開發(fā)速度都比java/go強,干嘛不用呢。
國內是國內,技術社區(qū)本來就比較閉鎖,不愿意接受新的,更好的技術,能用就行,再加上國內大廠的帶頭,所以大都以Java為主。
加上培訓班基本都是鼓吹Java Python的,現(xiàn)在加個Go,在言論權上遮天蔽日,弄得很多初學者甚至沒聽說過.NET,逢人就是什么“有Java就行了,為什么還要弄出各種其他的語言”“Python不是高級語言,是超級語言”之類的經(jīng)典言論,然后這些速成出來的人大量涌入各大中小公司開卷,工資低,人好招,公司當然也喜歡。
而.NET呢,在國內黑微軟是政治正確的前提下,不懂技術的油膩領導們也不喜歡聽,也不懂什么叫開源,他們只會講一句古話:“Java是開源的,.NET是閉源的”,“Linux好,.NET就只能Windows”,至于.NET開源跨平臺好多年、github是微軟的、Linus Torvalds因Microsoft的改變而公開宣稱接納Microsoft,他們根本不知道,也不愿意知道。
所以在問這些問題之前,先見見市面,看看外面的世界,不要把眼光局限于培訓班和國內那些在油膩領導們手下爛掉的國企與傳統(tǒng)中小型企業(yè),多了解了解以下一些外資的,或者金融行業(yè)的之類的企業(yè),把真正國際上主流的技術了解對比一番,知道了什么是真正有生產力的,什么是中國式人云亦云吹出來的。真搞明白了,你是不會問這個問題的。






作者:知乎用戶
鏈接:https://www.zhihu.com/question/496204534/answer/2237505764
外企選擇這種東西沒有太多顧慮地.net和java和go都能很隨意的選擇,有選擇顧慮的是中國企業(yè),國內企業(yè)不選擇.net而已
特斯拉招.net core的人,還寫清楚可以從java轉到.net,人家沒這么在乎。
有人說.net生態(tài)不行,那可能特斯拉要開發(fā)的東西對現(xiàn)有生態(tài)依賴少,有更多地原創(chuàng)性,用.net開發(fā)更快?
有的人說.net哪里哪里都要收費,那可能特斯拉有錢,就需要微軟優(yōu)質的服務?
有的人說打開VS都要半分鐘,自己早就在記事本里做完了,那特斯拉可能需要員工長期開著VS,壓根不需要關閉,然后用VS高效率的開發(fā)大量的代碼,而不是打開個記事本寫兩行就能關掉了?
其實對于傳統(tǒng)企業(yè)來說,能用sqlserver的基本都在用sqlserver,但凡是數(shù)據(jù)需要穩(wěn)定性,需要有人幫忙負責的,sqlserver算很便宜了,oracle貴很多,你們別看現(xiàn)在國內數(shù)據(jù)庫這么多,一旦到了數(shù)據(jù)審計重要的關鍵的地方,需要GMP的地方了,根本看不到國產數(shù)據(jù)庫的,哪怕這種地方在想辦法國產化,但是基本沒有人會認國產的軟件的。所以人家特斯拉哪怕真的用.net + windows + sqlserver,哪里都得花錢又如何?需要GMP的大藥企和做疫苗的,還有各種關系到人生安全的制造業(yè)食品業(yè),不也都是windows + sqlserver,他們可能c++多一點,C#也有一點,找微軟負責比找甲骨文負責可便宜太多了。
而且現(xiàn)在車企用C#確實不算少,wpf在傳統(tǒng)企業(yè)還是有不錯的作用的,C#是少數(shù)做桌面靠譜的,做服務靠譜的,做內部系統(tǒng)靠譜的,java桌面沒啥人用,go做內部系統(tǒng)沒人用,nodejs做這些都沒人用,怎么了?用C#不好么?
面對這種問題,都不需要提C#語法舒服效率高啥的,就憑微軟能把一整套都給你負責好,伺候好你,就足夠選擇C#了。
作者:倪靜風
鏈接:https://www.zhihu.com/question/496204534/answer/2371370499
.net core美國,歐洲那邊用得多。
.net core是.net跨平臺版本。
因為.net一直在企業(yè)使用很多(非互聯(lián)網(wǎng)),像一些硬件通信使用.net技術也很方便。
以前也有很多寫量化交易的用.net,主要是開發(fā)時速度,不用像java一樣搞一層層的框架綁住了手腳。
還有很多游戲用的是開發(fā)語言用的是c#,里面用的是一個虛擬機可以調用c/c++的接口。
.net技術好的地方就是如何使用微軟的IDE,可以快速寫代碼,代碼的提示精確性很高。
java主要在電商領域,因為互聯(lián)網(wǎng)需要水平擴展一類的程序,需要跨平臺,需要免費,需要開源,需要定制,需要大數(shù)據(jù)組件。
不過隨著學習人數(shù)的過多,現(xiàn)在也有飽和現(xiàn)象,也就是java的很多功能已經(jīng)很成熟,都是套路化的,很多培訓班也有教這些,過多的培訓班也導致競爭過度。
很多做量化交易的python,其實用c#也挺好,因為開發(fā)速度快,很多代碼不需要那么精細,比python不適合寫大型工程有關。
特斯拉主要是服務于車主,相對于車主的互聯(lián)網(wǎng)訪問量不是太大,不像基礎互聯(lián)網(wǎng)應用一樣需要極大量的高并發(fā),主要以功能為主。
go語言現(xiàn)在主要用于寫云計算基礎服務,java主要用于linux服務器上用于業(yè)務系統(tǒng)語言,像java因為jvm的原因,可能在某些性能方面不如.net core,或者有類似像unity3d一樣只是一種c#腳本語言,只是看上去看c#語言,實際執(zhí)行時是c#腳本。
作者:知乎用戶
鏈接:https://www.zhihu.com/question/496204534/answer/2208988977
首先,.net在國外非常流行,不用懷疑。你可以用indeed搜一下國外主要城市的職位,非常多,比如facebook在倫敦都有很多.net職位,在國內是不是很難想象呀,這可是全球頂級的互聯(lián)網(wǎng)公司。
其次,特斯拉是非常典型的汽車+制造業(yè)案例,其實全球大部分車廠都用.net(中國好像不一定,我知道上汽集團是用的),比如bmw、德國大眾、Daimler AG等,所以tesla用.net我一點不奇怪。
據(jù)我通過內部渠道了解,目前tesla主要用.net core 3/.net 5來寫warp drive erp,這玩意的背景很有趣,它是從spacex拷貝過來的,相當于一個branch,主要是為了替代SAP,musk可能一方面覺得SAP太貴了,另一方面musk喜歡啥系統(tǒng)都DIY,這樣才能形成獨特競爭力,且無法復制。所以呢,.net這下又多了個航空航天案例,還是全球唯一一家掌握可復用火箭技術的企業(yè)。當然據(jù)我的消息,我國的神舟也用.net,主要是測試程序,我大學的某教授就接了神舟的項目,具體怎么接的我就不知道了,反正他接項目能力一直很強,前幾年他好像跟我提過一嘴,我當時還有點小驚訝。
再來,其實國外的廠并不太喜歡沒事?lián)Q語言換架構,這么干成本太高,很多時候在做無用功,一般一個系統(tǒng)維護十幾年不換技術棧,這是常事。我待過的公司里,至少有2個外資廠的系統(tǒng)維護10年以上了,有個廠還是asp和http://asp.net一起用的系統(tǒng),聽上去是不是很古老,但業(yè)務能跑就行。也只有國內的某些CTO們喜歡拿技術棧來為業(yè)務債和項目管理債背鍋,反正前CTO用的技術棧都是垃圾,換就行了。其實主要還是人的問題,和技術好壞無關。
總結,.net在制造業(yè)和傳統(tǒng)行業(yè)一直處于領導地位,有些東西java無法替代,特別是和產線打交道的行業(yè),上位機職位全是.net的。只是這行業(yè)沒有互聯(lián)網(wǎng)公司有錢,所以職位的薪資偏低一些,通常行業(yè)決定薪資,而不是技術本身。
=======更新=======
稍微澄清下,tesla其實用go的項目也很多,java項目也有,并不是只用.net。還是那句話,不同語言用于合適的場景和系統(tǒng),沒毛病。
