特斯拉为何使用.NET 技术栈?
【精選轉(zhuǎn)載】|?來(lái)源/知乎
在知乎上有一個(gè)帖子非常熱鬧:“為何特使拉使用.net core技術(shù)棧 而不用 java?”
1回答1:Kasim
作者:Kasim
鏈接:https://www.zhihu.com/question/496204534/answer/2269157872
這題我熟啊,現(xiàn)役Tesla員工(.net core full stack)來(lái)答一發(fā)。
先確定的是,Tesla內(nèi)部雖然是.Net Core主流,但是Java,Golang,NodeJS,PHP都有在用。所以不存在“不用java/go等”情況。
另外也不像某些答主猜的,我們只有很少的服務(wù)在用Azure,還有很多不是。所以跟強(qiáng)大的Azure沒(méi)啥關(guān)系,不過(guò)Azure的確好用。
國(guó)內(nèi)不用.net技術(shù)棧無(wú)非兩個(gè)大原因,守舊的人會(huì)說(shuō)“.Net技術(shù)棧的相關(guān)上下游軟件收費(fèi)太貴”,互聯(lián)網(wǎng)相關(guān)的會(huì)說(shuō)“.Net生態(tài)不好沒(méi)輪子”。
關(guān)于收錢,.Net技術(shù)棧相關(guān)應(yīng)用早就可以選擇便宜的的Linux+MySQL方案了。IDE也有VSCode可以用。所以錢早就不是問(wèn)題了,相對(duì)的有些地方花錢反而是為了省錢省時(shí)間,最直接的做.NET用VSCode有VS/Rider效率高?自己搭建管理機(jī)房和買云服務(wù)(阿里云/Azure/AWS)哪個(gè)成本高?
關(guān)于輪子,小公司才看輪子,大公司到一定程度就不用太關(guān)心輪子了,絕大多數(shù)基礎(chǔ)業(yè)務(wù)的輪子(日志,RPC)一般都有,剩下的小眾一點(diǎn)的輪子,讓高級(jí)工程師、架構(gòu)師來(lái)搞定,然后在企業(yè)內(nèi)統(tǒng)一使用。
而關(guān)乎一個(gè)企業(yè)招什么人的一個(gè)很重要的因素,就是招聘成本,在國(guó)內(nèi)圈子里一個(gè)合格的.Net太難招了,不是在國(guó)企抱著.Net Framework已經(jīng)躺平了,就是剛?cè)胄忻刻霤URD的菜鳥,再有一撮就是已經(jīng)在大企業(yè)干的風(fēng)聲水起的。頭部的要不起,底部的不想要,中間的人才稀缺流動(dòng)性差,自然沒(méi)人用。哪個(gè)部門的領(lǐng)導(dǎo)也不希望自己定了個(gè)技術(shù)棧,然后等了大半年招不上人,一直開不了工,這是不打算干的節(jié)奏了。而Tesla的軟件研發(fā)中心,主要都是在美國(guó)和中國(guó),美國(guó)的市場(chǎng)招.Net就容易多了,所以即使國(guó)內(nèi)招不上來(lái)人,可以先讓美國(guó)的研發(fā)中心頂著,最多就是溝通成本高點(diǎn)。
以上。
2回答2:AlseinX
作者:AlseinX
鏈接:https://www.zhihu.com/question/496204534/answer/2213155471
很簡(jiǎn)單,用是因?yàn)楹糜?#xff0c;性能和語(yǔ)法表現(xiàn)力/開發(fā)速度都比java/go強(qiáng),干嘛不用呢。
國(guó)內(nèi)是國(guó)內(nèi),技術(shù)社區(qū)本來(lái)就比較閉鎖,不愿意接受新的,更好的技術(shù),能用就行,再加上國(guó)內(nèi)大廠的帶頭,所以大都以Java為主。
加上培訓(xùn)班基本都是鼓吹Java Python的,現(xiàn)在加個(gè)Go,在言論權(quán)上遮天蔽日,弄得很多初學(xué)者甚至沒(méi)聽(tīng)說(shuō)過(guò).NET,逢人就是什么“有Java就行了,為什么還要弄出各種其他的語(yǔ)言”“Python不是高級(jí)語(yǔ)言,是超級(jí)語(yǔ)言”之類的經(jīng)典言論,然后這些速成出來(lái)的人大量涌入各大中小公司開卷,工資低,人好招,公司當(dāng)然也喜歡。
而.NET呢,在國(guó)內(nèi)黑微軟是政治正確的前提下,不懂技術(shù)的油膩領(lǐng)導(dǎo)們也不喜歡聽(tīng),也不懂什么叫開源,他們只會(huì)講一句古話:“Java是開源的,.NET是閉源的”,“Linux好,.NET就只能Windows”,至于.NET開源跨平臺(tái)好多年、github是微軟的、Linus Torvalds因Microsoft的改變而公開宣稱接納Microsoft,他們根本不知道,也不愿意知道。
所以在問(wèn)這些問(wèn)題之前,先見(jiàn)見(jiàn)市面,看看外面的世界,不要把眼光局限于培訓(xùn)班和國(guó)內(nèi)那些在油膩領(lǐng)導(dǎo)們手下?tīng)€掉的國(guó)企與傳統(tǒng)中小型企業(yè),多了解了解以下一些外資的,或者金融行業(yè)的之類的企業(yè),把真正國(guó)際上主流的技術(shù)了解對(duì)比一番,知道了什么是真正有生產(chǎn)力的,什么是中國(guó)式人云亦云吹出來(lái)的。真搞明白了,你是不會(huì)問(wèn)這個(gè)問(wèn)題的。
下面放個(gè)展覽柜,展覽一下評(píng)論中出現(xiàn)的上古先賢。
『見(jiàn)漁人,乃大驚,問(wèn)所從來(lái)。具答之。便要還家,設(shè)酒殺雞作食。村中聞?dòng)写巳?#xff0c;咸來(lái)問(wèn)訊。自云先世避秦時(shí)亂,率妻子邑人來(lái)此絕境,不復(fù)出焉,遂與外人間隔。問(wèn)今是何世,乃不知有漢,無(wú)論魏晉。此人一一為具言所聞,皆嘆惋。余人各復(fù)延至其家,皆出酒食。停數(shù)日,辭去。此中人語(yǔ)云:“不足為外人道也。” 』
3回答3:知乎用戶
作者:知乎用戶
鏈接:https://www.zhihu.com/question/496204534/answer/2237505764
外企選擇這種東西沒(méi)有太多顧慮地.net和java和go都能很隨意的選擇,有選擇顧慮的是中國(guó)企業(yè),國(guó)內(nèi)企業(yè)不選擇.net而已
特斯拉招.net core的人,還寫清楚可以從java轉(zhuǎn)到.net,人家沒(méi)這么在乎。
有人說(shuō).net生態(tài)不行,那可能特斯拉要開發(fā)的東西對(duì)現(xiàn)有生態(tài)依賴少,有更多地原創(chuàng)性,用.net開發(fā)更快?
有的人說(shuō).net哪里哪里都要收費(fèi),那可能特斯拉有錢,就需要微軟優(yōu)質(zhì)的服務(wù)?
有的人說(shuō)打開VS都要半分鐘,自己早就在記事本里做完了,那特斯拉可能需要員工長(zhǎng)期開著VS,壓根不需要關(guān)閉,然后用VS高效率的開發(fā)大量的代碼,而不是打開個(gè)記事本寫兩行就能關(guān)掉了?
其實(shí)對(duì)于傳統(tǒng)企業(yè)來(lái)說(shuō),能用sqlserver的基本都在用sqlserver,但凡是數(shù)據(jù)需要穩(wěn)定性,需要有人幫忙負(fù)責(zé)的,sqlserver算很便宜了,oracle貴很多,你們別看現(xiàn)在國(guó)內(nèi)數(shù)據(jù)庫(kù)這么多,一旦到了數(shù)據(jù)審計(jì)重要的關(guān)鍵的地方,需要GMP的地方了,根本看不到國(guó)產(chǎn)數(shù)據(jù)庫(kù)的,哪怕這種地方在想辦法國(guó)產(chǎn)化,但是基本沒(méi)有人會(huì)認(rèn)國(guó)產(chǎn)的軟件的。所以人家特斯拉哪怕真的用.net + windows + sqlserver,哪里都得花錢又如何?需要GMP的大藥企和做疫苗的,還有各種關(guān)系到人生安全的制造業(yè)食品業(yè),不也都是windows + sqlserver,他們可能c++多一點(diǎn),C#也有一點(diǎn),找微軟負(fù)責(zé)比找甲骨文負(fù)責(zé)可便宜太多了。
而且現(xiàn)在車企用C#確實(shí)不算少,wpf在傳統(tǒng)企業(yè)還是有不錯(cuò)的作用的,C#是少數(shù)做桌面靠譜的,做服務(wù)靠譜的,做內(nèi)部系統(tǒng)靠譜的,java桌面沒(méi)啥人用,go做內(nèi)部系統(tǒng)沒(méi)人用,nodejs做這些都沒(méi)人用,怎么了?用C#不好么?
面對(duì)這種問(wèn)題,都不需要提C#語(yǔ)法舒服效率高啥的,就憑微軟能把一整套都給你負(fù)責(zé)好,伺候好你,就足夠選擇C#了。
4回答4:倪靜風(fēng)
作者:倪靜風(fēng)
鏈接:https://www.zhihu.com/question/496204534/answer/2371370499
.net core美國(guó),歐洲那邊用得多。
.net core是.net跨平臺(tái)版本。
因?yàn)?net一直在企業(yè)使用很多(非互聯(lián)網(wǎng)),像一些硬件通信使用.net技術(shù)也很方便。
以前也有很多寫量化交易的用.net,主要是開發(fā)時(shí)速度,不用像java一樣搞一層層的框架綁住了手腳。
還有很多游戲用的是開發(fā)語(yǔ)言用的是c#,里面用的是一個(gè)虛擬機(jī)可以調(diào)用c/c++的接口。
.net技術(shù)好的地方就是如何使用微軟的IDE,可以快速寫代碼,代碼的提示精確性很高。
java主要在電商領(lǐng)域,因?yàn)榛ヂ?lián)網(wǎng)需要水平擴(kuò)展一類的程序,需要跨平臺(tái),需要免費(fèi),需要開源,需要定制,需要大數(shù)據(jù)組件。
不過(guò)隨著學(xué)習(xí)人數(shù)的過(guò)多,現(xiàn)在也有飽和現(xiàn)象,也就是java的很多功能已經(jīng)很成熟,都是套路化的,很多培訓(xùn)班也有教這些,過(guò)多的培訓(xùn)班也導(dǎo)致競(jìng)爭(zhēng)過(guò)度。
很多做量化交易的python,其實(shí)用c#也挺好,因?yàn)殚_發(fā)速度快,很多代碼不需要那么精細(xì),比python不適合寫大型工程有關(guān)。
特斯拉主要是服務(wù)于車主,相對(duì)于車主的互聯(lián)網(wǎng)訪問(wèn)量不是太大,不像基礎(chǔ)互聯(lián)網(wǎng)應(yīng)用一樣需要極大量的高并發(fā),主要以功能為主。
go語(yǔ)言現(xiàn)在主要用于寫云計(jì)算基礎(chǔ)服務(wù),java主要用于linux服務(wù)器上用于業(yè)務(wù)系統(tǒng)語(yǔ)言,像java因?yàn)閖vm的原因,可能在某些性能方面不如.net core,或者有類似像unity3d一樣只是一種c#腳本語(yǔ)言,只是看上去看c#語(yǔ)言,實(shí)際執(zhí)行時(shí)是c#腳本。
5回答5:知乎用戶
作者:知乎用戶
鏈接:https://www.zhihu.com/question/496204534/answer/2208988977
首先,.net在國(guó)外非常流行,不用懷疑。你可以用indeed搜一下國(guó)外主要城市的職位,非常多,比如facebook在倫敦都有很多.net職位,在國(guó)內(nèi)是不是很難想象呀,這可是全球頂級(jí)的互聯(lián)網(wǎng)公司。
其次,特斯拉是非常典型的汽車+制造業(yè)案例,其實(shí)全球大部分車廠都用.net(中國(guó)好像不一定,我知道上汽集團(tuán)是用的),比如bmw、德國(guó)大眾、Daimler AG等,所以tesla用.net我一點(diǎn)不奇怪。
據(jù)我通過(guò)內(nèi)部渠道了解,目前tesla主要用.net?core 3/.net 5來(lái)寫warp drive erp,這玩意的背景很有趣,它是從spacex拷貝過(guò)來(lái)的,相當(dāng)于一個(gè)branch,主要是為了替代SAP,musk可能一方面覺(jué)得SAP太貴了,另一方面musk喜歡啥系統(tǒng)都DIY,這樣才能形成獨(dú)特競(jìng)爭(zhēng)力,且無(wú)法復(fù)制。所以呢,.net這下又多了個(gè)航空航天案例,還是全球唯一一家掌握可復(fù)用火箭技術(shù)的企業(yè)。當(dāng)然據(jù)我的消息,我國(guó)的神舟也用.net,主要是測(cè)試程序,我大學(xué)的某教授就接了神舟的項(xiàng)目,具體怎么接的我就不知道了,反正他接項(xiàng)目能力一直很強(qiáng),前幾年他好像跟我提過(guò)一嘴,我當(dāng)時(shí)還有點(diǎn)小驚訝。
再來(lái),其實(shí)國(guó)外的廠并不太喜歡沒(méi)事?lián)Q語(yǔ)言換架構(gòu),這么干成本太高,很多時(shí)候在做無(wú)用功,一般一個(gè)系統(tǒng)維護(hù)十幾年不換技術(shù)棧,這是常事。我待過(guò)的公司里,至少有2個(gè)外資廠的系統(tǒng)維護(hù)10年以上了,有個(gè)廠還是asp和http://asp.net一起用的系統(tǒng),聽(tīng)上去是不是很古老,但業(yè)務(wù)能跑就行。也只有國(guó)內(nèi)的某些CTO們喜歡拿技術(shù)棧來(lái)為業(yè)務(wù)債和項(xiàng)目管理債背鍋,反正前CTO用的技術(shù)棧都是垃圾,換就行了。其實(shí)主要還是人的問(wèn)題,和技術(shù)好壞無(wú)關(guān)。
總結(jié),.net在制造業(yè)和傳統(tǒng)行業(yè)一直處于領(lǐng)導(dǎo)地位,有些東西java無(wú)法替代,特別是和產(chǎn)線打交道的行業(yè),上位機(jī)職位全是.net的。只是這行業(yè)沒(méi)有互聯(lián)網(wǎng)公司有錢,所以職位的薪資偏低一些,通常行業(yè)決定薪資,而不是技術(shù)本身。
=======更新=======
稍微澄清下,tesla其實(shí)用go的項(xiàng)目也很多,java項(xiàng)目也有,并不是只用.net。還是那句話,不同語(yǔ)言用于合適的場(chǎng)景和系統(tǒng),沒(méi)毛病。
總結(jié)
以上是生活随笔為你收集整理的特斯拉为何使用.NET 技术栈?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C# 线程问题之争用条件
- 下一篇: MassTransit - .NET C