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