特斯拉为何使用.NET 技术栈?

b16f603e2277e1e6c5deee6f8dfafdd0.png【精选转载来源/知乎


在知乎上有一个帖子非常热闹:“为何特使拉使用.net core技术栈 而不用 java?”

1回答1:Kasim

作者:Kasim
链接:https://www.zhihu.com/question/496204534/answer/2269157872

这题我熟啊,现役Tesla员工(.net core full stack)来答一发。

先确定的是,Tesla内部虽然是.Net Core主流,但是Java,Golang,NodeJS,PHP都有在用。所以不存在“不用java/go等”情况

另外也不像某些答主猜的,我们只有很少的服务在用Azure,还有很多不是。所以跟强大的Azure没啥关系,不过Azure的确好用。

国内不用.net技术栈无非两个大原因,守旧的人会说“.Net技术栈的相关上下游软件收费太贵”,互联网相关的会说“.Net生态不好没轮子”。

关于收钱,.Net技术栈相关应用早就可以选择便宜的的Linux+MySQL方案了。IDE也有VSCode可以用。所以钱早就不是问题了,相对的有些地方花钱反而是为了省钱省时间,最直接的做.NET用VSCode有VS/Rider效率高?自己搭建管理机房和买云服务(阿里云/Azure/AWS)哪个成本高?

关于轮子,小公司才看轮子,大公司到一定程度就不用太关心轮子了,绝大多数基础业务的轮子(日志,RPC)一般都有,剩下的小众一点的轮子,让高级工程师、架构师来搞定,然后在企业内统一使用。

而关乎一个企业招什么人的一个很重要的因素,就是招聘成本,在国内圈子里一个合格的.Net太难招了,不是在国企抱着.Net Framework已经躺平了,就是刚入行每天CURD的菜鸟,再有一撮就是已经在大企业干的风声水起的。头部的要不起,底部的不想要,中间的人才稀缺流动性差,自然没人用。哪个部门的领导也不希望自己定了个技术栈,然后等了大半年招不上人,一直开不了工,这是不打算干的节奏了。而Tesla的软件研发中心,主要都是在美国和中国,美国的市场招.Net就容易多了,所以即使国内招不上来人,可以先让美国的研发中心顶着,最多就是沟通成本高点

以上。

2回答2:AlseinX

作者:AlseinX
链接:https://www.zhihu.com/question/496204534/answer/2213155471

很简单,用是因为好用,性能和语法表现力/开发速度都比java/go强,干嘛不用呢。

国内是国内,技术社区本来就比较闭锁,不愿意接受新的,更好的技术,能用就行,再加上国内大厂的带头,所以大都以Java为主。

加上培训班基本都是鼓吹Java Python的,现在加个Go,在言论权上遮天蔽日,弄得很多初学者甚至没听说过.NET,逢人就是什么“有Java就行了,为什么还要弄出各种其他的语言”“Python不是高级语言,是超级语言”之类的经典言论,然后这些速成出来的人大量涌入各大中小公司开卷,工资低,人好招,公司当然也喜欢。

而.NET呢,在国内黑微软是政治正确的前提下,不懂技术的油腻领导们也不喜欢听,也不懂什么叫开源,他们只会讲一句古话:“Java是开源的,.NET是闭源的”,“Linux好,.NET就只能Windows”,至于.NET开源跨平台好多年、github是微软的、Linus Torvalds因Microsoft的改变而公开宣称接纳Microsoft,他们根本不知道,也不愿意知道。

所以在问这些问题之前,先见见市面,看看外面的世界,不要把眼光局限于培训班和国内那些在油腻领导们手下烂掉的国企与传统中小型企业,多了解了解以下一些外资的,或者金融行业的之类的企业,把真正国际上主流的技术了解对比一番,知道了什么是真正有生产力的,什么是中国式人云亦云吹出来的。真搞明白了,你是不会问这个问题的。

下面放个展览柜,展览一下评论中出现的上古先贤。

4b7f053d8b02f2fbb5380c7d533f2002.png

444e40f4936d2a1a4ddf891e101f236c.png

ac215310077de59967103a95cd88943c.png

94119ebee1b7f1b2502a5013ebc9d591.png

da98070bc9b9af4153df39fd04b5ace3.png

15308047c032d35533971839950b47c1.png

『见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。” 』

3回答3:知乎用户

作者:知乎用户
链接:https://www.zhihu.com/question/496204534/answer/2237505764

外企选择这种东西没有太多顾虑地.net和java和go都能很随意的选择,有选择顾虑的是中国企业,国内企业不选择.net而已

特斯拉招.net core的人,还写清楚可以从java转到.net,人家没这么在乎。

有人说.net生态不行,那可能特斯拉要开发的东西对现有生态依赖少,有更多地原创性,用.net开发更快?

有的人说.net哪里哪里都要收费,那可能特斯拉有钱,就需要微软优质的服务?

有的人说打开VS都要半分钟,自己早就在记事本里做完了,那特斯拉可能需要员工长期开着VS,压根不需要关闭,然后用VS高效率的开发大量的代码,而不是打开个记事本写两行就能关掉了?

其实对于传统企业来说,能用sqlserver的基本都在用sqlserver,但凡是数据需要稳定性,需要有人帮忙负责的,sqlserver算很便宜了,oracle贵很多,你们别看现在国内数据库这么多,一旦到了数据审计重要的关键的地方,需要GMP的地方了,根本看不到国产数据库的,哪怕这种地方在想办法国产化,但是基本没有人会认国产的软件的。所以人家特斯拉哪怕真的用.net + windows + sqlserver,哪里都得花钱又如何?需要GMP的大药企和做疫苗的,还有各种关系到人生安全的制造业食品业,不也都是windows + sqlserver,他们可能c++多一点,C#也有一点,找微软负责比找甲骨文负责可便宜太多了。

而且现在车企用C#确实不算少,wpf在传统企业还是有不错的作用的,C#是少数做桌面靠谱的,做服务靠谱的,做内部系统靠谱的,java桌面没啥人用,go做内部系统没人用,nodejs做这些都没人用,怎么了?用C#不好么?

面对这种问题,都不需要提C#语法舒服效率高啥的,就凭微软能把一整套都给你负责好,伺候好你,就足够选择C#了。

4回答4:倪静风

作者:倪静风
链接:https://www.zhihu.com/question/496204534/answer/2371370499

.net core美国,欧洲那边用得多。

.net core是.net跨平台版本。

因为.net一直在企业使用很多(非互联网),像一些硬件通信使用.net技术也很方便。

以前也有很多写量化交易的用.net,主要是开发时速度,不用像java一样搞一层层的框架绑住了手脚。

还有很多游戏用的是开发语言用的是c#,里面用的是一个虚拟机可以调用c/c++的接口。

.net技术好的地方就是如何使用微软的IDE,可以快速写代码,代码的提示精确性很高。

java主要在电商领域,因为互联网需要水平扩展一类的程序,需要跨平台,需要免费,需要开源,需要定制,需要大数据组件。

不过随着学习人数的过多,现在也有饱和现象,也就是java的很多功能已经很成熟,都是套路化的,很多培训班也有教这些,过多的培训班也导致竞争过度。

很多做量化交易的python,其实用c#也挺好,因为开发速度快,很多代码不需要那么精细,比python不适合写大型工程有关。

特斯拉主要是服务于车主,相对于车主的互联网访问量不是太大,不像基础互联网应用一样需要极大量的高并发,主要以功能为主。

go语言现在主要用于写云计算基础服务,java主要用于linux服务器上用于业务系统语言,像java因为jvm的原因,可能在某些性能方面不如.net core,或者有类似像unity3d一样只是一种c#脚本语言,只是看上去看c#语言,实际执行时是c#脚本。

5回答5:知乎用户

作者:知乎用户
链接:https://www.zhihu.com/question/496204534/answer/2208988977

首先,.net在国外非常流行,不用怀疑。你可以用indeed搜一下国外主要城市的职位,非常多,比如facebook在伦敦都有很多.net职位,在国内是不是很难想象呀,这可是全球顶级的互联网公司。

其次,特斯拉是非常典型的汽车+制造业案例,其实全球大部分车厂都用.net(中国好像不一定,我知道上汽集团是用的),比如bmw、德国大众、Daimler AG等,所以tesla用.net我一点不奇怪。

据我通过内部渠道了解,目前tesla主要用.net core 3/.net 5来写warp drive erp,这玩意的背景很有趣,它是从spacex拷贝过来的,相当于一个branch,主要是为了替代SAP,musk可能一方面觉得SAP太贵了,另一方面musk喜欢啥系统都DIY,这样才能形成独特竞争力,且无法复制。所以呢,.net这下又多了个航空航天案例,还是全球唯一一家掌握可复用火箭技术的企业。当然据我的消息,我国的神舟也用.net,主要是测试程序,我大学的某教授就接了神舟的项目,具体怎么接的我就不知道了,反正他接项目能力一直很强,前几年他好像跟我提过一嘴,我当时还有点小惊讶。

再来,其实国外的厂并不太喜欢没事换语言换架构,这么干成本太高,很多时候在做无用功,一般一个系统维护十几年不换技术栈,这是常事。我待过的公司里,至少有2个外资厂的系统维护10年以上了,有个厂还是asp和http://asp.net一起用的系统,听上去是不是很古老,但业务能跑就行。也只有国内的某些CTO们喜欢拿技术栈来为业务债和项目管理债背锅,反正前CTO用的技术栈都是垃圾,换就行了。其实主要还是人的问题,和技术好坏无关。

总结,.net在制造业和传统行业一直处于领导地位,有些东西java无法替代,特别是和产线打交道的行业,上位机职位全是.net的。只是这行业没有互联网公司有钱,所以职位的薪资偏低一些,通常行业决定薪资,而不是技术本身。

=======更新=======

稍微澄清下,tesla其实用go的项目也很多,java项目也有,并不是只用.net。还是那句话,不同语言用于合适的场景和系统,没毛病

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Blazor University (6)组件 — 组件事件

原文链接&#xff1a;https://blazor-university.com/components/component-events/组件事件源代码[1]EventCallback<T> 类是一个特殊的 Blazor 类&#xff0c;可以作为参数公开&#xff0c;以便组件可以在发生感兴趣的事情时轻松通知使用者。一旦声明了 EventCallback&l…

Xamarin效果第十四篇之玩耍GIS

最近再次拾起Xamarin然后也实现了祖传PLC控制和弹窗配置;这不又一次勾起来我想基于他玩玩原来一直玩耍的GIS,毕竟咱前面一直玩耍二维和三维的GIS相关的知识点;有兴趣的小伙伴可以翻翻我的历史文章;趁着激情满满;来看看最终咱实现的加载高德平面地图效果(有水印):再者就是满足群…

PHP进程退出信号_一文吃透 PHP 进程信号处理

背景前两周老大给安排了一个任务&#xff0c;写一个监听信号的包。因为我司的项目是运行在容器里边的&#xff0c;每次上线&#xff0c;需要重新打包镜像&#xff0c;然后启动。在重新打包之前&#xff0c;Dokcer会先给容器发送一个信号&#xff0c;然后等待一段超时时间(默认1…

GitHub Copilot 现已登陆 Visual Studio!

激动人心的好消息来了&#xff0c;GitHub 在3月29日发布博客&#xff0c;宣布 Github Copilot 现在可以在 Visual Studio 中使用。我们知道 Visual Studio 的 IntelliCode 本身已经很智能了, 现在又迎来了 Copilot, 编程体验将进入新的篇章。如何安装? 首先&#xff0c;您…

iOS 9音频应用播放音频之音量设置与声道设置

iOS 9音频应用播放音频之音量设置与声道设置 iOS 9音频应用音量设置 音量又称响度、音强&#xff0c;是指人耳对所听到的声音大小强弱的主观感受&#xff0c;其客观评价尺度是声音的振幅大小。在iOS 9音频应用的应用中&#xff0c;经常会出现播放的音乐音量过大或者过小。此时i…

php fpm工作原理,什么是phpfpm的工作原理?

什么是phpfpm的工作原理&#xff1f;发布时间&#xff1a;2020-07-13 15:12:53来源&#xff1a;亿速云阅读&#xff1a;181作者&#xff1a;Leah什么是phpfpm的工作原理&#xff1f;针对这个问题&#xff0c;这篇文章详细介绍了相对应的分析和解答&#xff0c;希望可以帮助更多…

C#对象映射器之Mapster

简介Mapster是一个快&#xff0c;小巧&#xff0c;功能强大的对象映射.Net框架例子我有两个Model类且他们的属性一致&#xff0c;我们将 SourceObjectTest赋值给DestObjectTest该怎么做&#xff1f;SourceObjectTest sourceObject new SourceObjectTest(); sourceObject.Name …

如何关闭Struts2的webconsole.html

出于安全目的&#xff0c;在禁用了devMode之后&#xff0c;仍然不希望其他人员看到webconsole.html页面&#xff0c;则可以直接删除webconsole.html 的源文件&#xff0c; 它的位置存在于&#xff1a; 我们手工删除 struts2-core-*.jar\org\apache\struts2\interceptor\debuggi…

UIView 的基础

UIView•什么是控件&#xff1f;-屏幕上的所有UI元素都叫做控件&#xff0c;也有人叫做视图、组件-按钮&#xff08;UIButton&#xff09;、文本&#xff08;UILabel&#xff09;都是控件•控件的共同属性有哪些&#xff1f;-尺寸-位置-背景色-......-•苹果将控件的共同属性都…

JS

为什么80%的码农都做不了架构师&#xff1f;>>> function getQueryString(name) {var reg new RegExp("(^|&)" name "([^&]*)(&|$)"),r window.location.search.substr(1).match(reg);if(r ! null) {return unescape(r[2]); }r…

ssh公钥免密码登录

2019独角兽企业重金招聘Python工程师标准>>> ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对&#xff0c;下面我以CentOS为例。 有机器A(192.168.1.155)&#xff0c;B(192.168.1.181)。现想A通过ssh免密码登录到B。 首先以root账户登陆…

Spring4Shell的漏洞原理分析

Spring框架最新的PoC这两天出来的一个RCE漏洞&#xff0c;但是有以下的条件限制才行&#xff1a;必须是jdk9及以上必须是部署在tomcat的应用是springmvc的或者webflux的应用具体的可以查看spring官方&#xff1a;https://spring.io/blog/2022/03/31/spring-framework-rce-early…

php 点对点,浅析点对点(End-to-End)的场景文字识别

一、背景随着智能手机的广泛普及和移动互联网的迅速发展&#xff0c;通过手机等移动终端的摄像头获取、检索和分享资讯已经逐步成为一种生活方式。基于摄像头的(Camera-based)的应用更加强调对拍摄场景的理解。通常&#xff0c;在文字和其他物体并存的场景&#xff0c;用户往往…

【ArcGIS遇上Python】Python实现Modis NDVI批量化月最大合成

「 刘一哥GIS」CSDN专业技术博文专栏目录索引https://geostorm.blog.csdn.net/article/details/113732454 最大合成法(MVC)可以在Envi中的Band Math中进行,式子是B1>B2,但是无法批量化;本文实现在ArcGIS中利用Python代码批量进行,如下: 用到的Modis NDVI数据是在MRT…

cad2016中选择全图字体怎么操作_打开CAD图纸字体丢失、重新选择怎么办?这样设置,一辈子用的到...

AutoCAD图纸本身就有着比较特殊的个性&#xff0c;难编辑难打开&#xff0c;时不时的还会来个乱码、字体缺失&#xff0c;甚至有的时候还提示我们进行字体的重新选择&#xff0c;应该怎么解决呢&#xff1f;虽然是个很经常遇见的问题&#xff0c;很多的小伙伴还是不知道如何解决…

MassTransit - .NET Core 的分布式应用程序框架

简介MassTransit 是一个免费的、开源的.NET 分布式应用程序框架。MassTransit 使创建应用程序和服务变得容易&#xff0c;这些应用程序和服务利用基于消息的松散耦合异步通信来实现更高的可用性、可靠性和可扩展性特点•易于使用和理解的 API&#xff0c;让您专注于解决业务问题…

mongo学习笔记(二):聚合,游标

一、聚合 <1> Count 1.db.person.count() 2.db.person.count({"age":20}) <2> Distinct db.person.distinct("age")//指定了谁&#xff0c;谁就不能重复 <3> Group key&#xff1a;这个就是分组的key&#xff0c;我们这里是对年龄分组。…

Java实验二猜数字游戏,JAVA-第2周实验-猜数字游戏

JAVA--第2周实验--猜数字游戏/* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生* All rights reserved.* 文件名称&#xff1a;猜数字游戏* 作 者&#xff1a; 雷恒鑫* 完成日期&#xff1a; 2012 年 09 月 07 日* 版 本 号&#…

Xamarin效果第十五篇之自定义CheckBox

在上一篇中使用Xamarin玩耍了GIS加载高德和百度;这不这两天又抽空完善了一下;自定义了一下CheckBox;来看看最终效果:关于实现咱就是直接自定义ContentView:后台无非就是一堆的依赖属性(和WPF真像):后台定义的Command为了支持选中状态:‍再来看看具体使用:<CustomViews:Image…

java爬虫工具xpath提取,2020-07-16--爬虫数据提取--xpath

xpath全称 XML Path Language 是一门在XML文档中 查找信息的语言 最初是用来搜寻XML文档的 但是它同样适用于HTML文档的搜索XPath 的选择功能十分强大&#xff0c;它提供了非常简洁的路径选择表达式&#xff0c;另外还提供了超过100个内置函数&#xff0c;用于字符串&#xff0…