如果微软20年前开发.net core,JAVA会不会和IE一样倒下了

可以跨平台,大量类库,微软亲自操刀,性能一流,因为没有做跨平台,.NET被 python,javascript等抢了一半以上市场。

如果微软早早的推出类似.net core这样的跨平台语言,.net程序猿还会出在这样的尴尬局面吗众所周知,现在好多大厂都从.net转到java,都认为.net是比较low的语言。很多主流的开源框架,开源项目大部分都是java做的,比如es等,,,,作为一个有三四年开发经验的.net程序猿,很想和大家讨论一下.net将何去何从

我觉得不会
java有今天的位置,很大程度上是巨头之间角力的结果,当老大的总是被其他势力攻击的对象,或明或暗。当时微软其实已经处于众矢之的了,而微软的态度是对抗而不是合作,你不让别人吃饭,别人肯定千方百计的想办法来拆你的台,linux的出现让其他企业看到了一丝希望,但单靠liunx和windows对抗实在是有些力不从心,但很快第二个机会来了,java出现了,你说,这些企业能放过这种机会吗,那可不得使劲儿扶持。
上面说的是以google为首的国外的这种大型互联网公司的心思,我们暂且将他们称为第一梯队。
那我们再来看看,以中国BAT为代表的第二梯队的互联网公司为什么更愿意用java而不是.net,有人可能要说是因为.net环境授权费太贵,也有人说是.net技术人员水平不如java的高,其实这都不是重点。重点在于,这些公司一方面也有和google这种超大互联网公司的顾虑,另一个最重要的原因就是一家有理想、有抱负的科技公司不可能让自己最重要的战略决策被其他公司牵着鼻子走或左右,至少要将这部分影响降到最低。.net最大的优势也是最大的缺点在于,它一家独大的生态圈,没有这类企业所需要的相对独立的小的生态圈。没有这种相对独立的小的生态圈也就意味着,你微软升级我就得跟着升级,你微软做技术转型,我也得跟着转,你微软说2003/xp过时了,我就得在一两年内把所有的服务器都换一遍,谁TM受得了。
这是.net最致命的缺点,别说大企业了,就是小企业甚至一些个人开发人员都经不起微软这样一次又一次的折腾的。其实.net刚推出时还是很火的,支持的用户也很多,但都在微软一次又一次的折腾中走掉了。对很多公司或开发人员来说,微软有时真的就是一坑货,nokia大家还记得吗?
综上,只要.net这种大生态不改变,即使.Net Core开源了,跨平台了也干不过java
有人可能要说,你如此看衰.net,为什么还在用.net开发而不转java呢?
首先,我只是一名技术,我不开公司,我没有开公司的这种种顾虑。
第二,我虽然在生活中不是喜欢折腾的人,但在技术上我还是非常喜欢折腾的。微软是一家非常有创新能力的公司,因为创新必然要不断折腾,技术本身就是一个不断试错的过程。有创新必然就会不断淘汰,也要在发现走偏了或错了的情况下突然急刹车,急转弯。
第三,我更喜欢微软的开发理念,我觉得微软是一家有格局、有野心的公司。
微软的目标客户从来都是瞄准全世界所有人,让全世界所有人都能用上微软的产品,这种不抛弃用户的行为是非常难得的。要服务所有人或让所有人都用能用上自己的产品,其中必然有相当大一部分人你在他身上是榨不出一丁点油水的,即使能榨出来一点儿也少得可怜,基本上可以说是无利可图的。但微软没有放弃这类客户,要知道这样做难度大,风险高,而且是很不讨好的,稍不注意还会被带上垄断的帽子。当然,不能因此就说微软就是一家良心企业,慈善机构,大公无私,全心全意为人类服务了,要知道资本还是逐利的,但起码可以称上是一家伟大的公司。要知道除了微软外,没有第二家公司不挑客户的,它们都有着明确的目标人群,针对的就是一类人或一群人,因为只有这样,利益才能最大化。正因为微软公司有着这种大的格局,所以微软的开发理念往往更加全面,更加先进。
可以肯定的是,未来软件开发的发展方向一定是朝着外部简单化,内部复杂化,覆盖全面化的方向发展。
什么意思呢,就是未来的软件开发的门槛会越来越低,简单化、傻瓜化甚至自动化,但是软件内部的逻辑会越来越复杂,语法糖那只是小KS,更多的代码逻辑可能还是AI化。最后一点,覆盖全面化并不说,我做一个软件产品一定要让所有人都能用,不是这样的,这里说的全面化是指以后的软件一定是更加细致化,那怕是一些很细微的很少很少情况能用到的功能都应该提供到(当你想明白这些的时候,你还会认为WinForms/WebForms这种拖控件的方式很low的行为么?恐怕更多的是遗憾吧,这东西太超前了有些生不逢时)。
当然,这样做也不是一点坏处都没有的,而且还非常明显,容易将简单的东西复杂化了,越复杂越容易出bug,用户体念也不能达到极致,而且会造成成本上升、性能下降。但是,这些新生事物发展过程中必然要经历的阶段,“不用马拉的马车”很有可能就是未来。
说了一大堆空话,套话,下面来说说最实在的东西,工资呢?
很遗憾,.net的开发人员真的处于技术人员鄙视链的最低层,我所了解的,所经历的公司.net开发人员基本上在公司的地位别说比Java、前端、安卓、IOS、设计这些热门职位了,就是搞php、ActionScript、Delphi、C++/C这种不那么热门的职位也只有仰视的份。在公司工资方面除了比前台小妹、普通行政人员工资高点外,其他的都比不上。
但是,我依然不会轻易转行,因为我工作不完全只是为了工资,更多的是我感兴趣,我喜欢,我愿意而已。我发现有很多开发其实对技术并不感兴趣,都是被迫来做或为了追求高工资而来的,对于这样的人,我不作评论,人各有志嘛,但我还是有一句良言相劝,出门左转有Java/安卓/IOS,右转有Javascript/nodejs,直行有python,那个赚得都比搞.net的多,在公司地位还高。
第四嘛,当初java和.net二选一时选.net其实是因为英文不好,.net的中文文档全面啊,后来嘛完全是习惯问题了,被Visual Studio绑架了,这才是开发工具该有的样子嘛,其他那些都是些什么玩意儿嘛,基本上都是一个半残品,还吹得神乎其神的。
最后再说一句,虽然我使用C#,但我并不认为java/C#这种语言就代表未来,未来流行的编程语言一定是另一种新的语言,一种混合型的语言,单纯的强调面向对象,一切皆对象完全是扯蛋。目前看来go语言已经初步具有了这种特征,但go要走向流行或能不能走向流行还不太确定,个人认为go语言最大的缺点可能也是有走极端的趋向。
哎呀,妈呀,一不小心码了这么多字,是不是放假太闲了

收获园豆:10

Adming | 初学一级 |园豆:119 | 2019-05-01 20:04

其他回答(6)

2

没什么区别.
.net的将来肯定会比java好.原因和中国现在快要赶上美国是一样的道理.
在初期阶段.确实民主的自由的环境会让发展速度特别快.
但到一定程度后.就会爆发出混乱的结果.后面的发展确是需要在强有力的中央控制下.才能持续.

吴瑞祥 | 园豆:29449 (高人七级) | 2019-04-28 22:49

0

以我在武汉的观察,现在招个高级.net贼难,本来人就少,一些牛逼点的还转了Java,所以你懂我的意思了趴。
现在core出来了,性能上已经不输,就差造轮子了。

凉冰Pro | 园豆:7169 (大侠五级) | 2019-04-29 09:00

1

.net和java都是面向对象语言只是个工具,两者非常类似,理解了框架常用的开发模式思路,花些时间就可以学习,有心学习就没有什么何去何从的心态

慧☆星 | 园豆:5566 (大侠五级) | 2019-04-29 09:43

0

NET CORE 完全是一个测试品, 大公司不敢用, 小公司可能会用, 但用的人不多, 主要是开发环境不好。

Java做大平台, 有很多熟悉的框架。 像阿里, 百度, 腾讯这些, 人家核心全是java, 你认为人家会推掉重来吗

别相信NET CORE能让你赚到大钱, 学习它还是要的,

主力还是放在Java上面吧, NET就算你是高手, 顶多就是二万块一个月, JAVA如果你是高手, 至少十万以上

风浪 | 园豆:2991 (老鸟四级) | 2019-04-29 09:45

0

我觉得还是环境导致的,就像大家都是说中文,你说英文肯定行不通啊,国内都在一窝蜂学java,而且专家也都是java的,那net就是小众了,个人觉得语言没有好坏(性能暂且不说),就看流不流行吧,我觉得微软要把net做到深入人心,必须下更大的功夫,不然就做到更好

刘下来 | 园豆:909 (小虾三级) | 2019-04-29 10:07

0

没有如果 接受现状
服务端这块java和go的天下

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

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

相关文章

Java基础-开发流程以及HelloWorld程序

目录 1. Java的开发流程2. HelloWorld 1. Java的开发流程 开发Java程序,需要三个步骤:编写代码,编译代码,运行代码 2. HelloWorld 编写代码 public class HelloWorld {public static void main(String[] args) {System.out.pri…

Ribbon 饥饿加载

Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载: 一、懒加载 Ribbon 默认为懒加载即在首次启动Application…

代码随想录二刷 |二叉树 | 二叉树的层序遍历

代码随想录二刷 |二叉树 | 二叉树的层序遍历 题目描述解题思路代码实现 题目描述 102.二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例…

Flask 最佳实践(一)

Flask是一个轻量级而强大的Python Web框架,它的简洁性和灵活性使其成为许多开发者的首选。然而,为了确保项目的可维护性和可扩展性,我们需要遵循一些最佳实践。本文将探讨Flask中一些关键的最佳实践。 1. 项目结构 构建一个清晰的项目结构是…

Java实现Socket聊天室

一、网络编程是什么? 在网络通信协议下,不同计算机上运行的程序,进行数据传输。 应用场景:即时通讯、网游对战、金融证券、国际贸易、邮件、等等。 不管是什么场景,都是计算机与计算机之间通过网络进行数据传输。 …

软件测试之接口测试自动化(详解版)

本着以和大家交流如何实现高效的接口测试为出发点,本文包含了我在接口测试领域的一些方法和心得,希望大家一起讨论和分享,内容包括但不仅限于: 服务端接口测试介绍接口测试自动化介绍接口测试自动化实践关于接口测试自动化的思考…

质量工程化,交付快速化

质量和速度之间权衡让人很难取舍,而通过推进质量工程,以系统化的方式识别和优化系统痛点,可以帮助团队构建既快又好的精益软件生产系统。原文: Quality Engineered, Speed Delivered 所有人都想要更快的速度。 但需要解决复杂问题: 权衡质量会…

Kotlin(十四) 扩展函数和运算符重载

目录 扩展函数 语法结构 代码示例 运算符重载 语法结构 一元操作符 二元操作符 数值类型操作符 等于和不等于操作符 比较操作符 调用操作符 扩展函数 语法结构 对于扩张函数的语法结构其实很简单,你想在那个类中添加扩张函数,那么你就用该类…

6. Zigzag Conversion

按照下标找规律注意leetcode的运行输出,如果其中一组用例出现死循环,输出结果会在一个文件,即部分测试用例正确,部分错误且出现死循环,则需辨别输出结果属于哪一份测试用例 class Solution { public:string convert(s…

(二)五种最新算法(SWO、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法(SWO、COA、LSO、GRO、LO)简介 1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为&…

w3school学习笔记3(NumPy)

系列文章目录 文章目录 系列文章目录前言一、NumPy简介二、NumPy入门三、NumPy创建四、NumPy数组索引五、NumPy数组裁切六、NumPy数据类型七、NumPy副本/视图八、NumPy数据形状九、NumPy数组重塑十、NumPy数组迭代总结 前言 一、NumPy简介 1、什么是Numpy? NumPy是…

线上盲盒小程序,开启互联网盲盒时代

近年来,盲盒经济在国内非常火爆,各类盲盒品牌层出不穷,深受国内外年轻人、消费者的喜爱。 目前,根据数据显示,盲盒市场不仅在线下异常火热,线上盲盒也是成为了大众的新选择。各类电商平台中盲盒的成交额更…

Esxi7Esxi8设置VMFSL虚拟闪存的大小

Esxi7Esxi8设置VMFSL虚拟闪存的大小 ESXi7,8 默认安装会分配一个 VMFSL(VMFS-L)(Local VMFS)很大空间(120G), 感觉很浪费, 实际给 8G 就可以了, 最少 6G , 经实验,给2G没法安装 . Esxi7是虚拟闪存的 修改的方法是: 在安装时修改 设置 autoPartitionOSDataSize8192 在cdromBoo…

快捷切换raw页面到repo页面-Raw2Repo插件

Raw2Repo By Rick 📖快捷切换代码托管平台raw页面到repo页面 🔗github链接 https://github.com/rickhqh/Raw2Repo ✨Features 功能: ✅单击 Raw2Repo 插件按钮,即可跳转到相应的代码仓库页面。✅支持 GitHub、Gitee、GitCode …

spring boot整合mybatis进行部门管理管理的增删改查

部门列表查询: 功能实现: 需求:查询数据库表中的所有部门数据,展示在页面上。 准备工作: 准备数据库表dept(部门表),实体类Dept。在项目中引入mybatis的起步依赖,mysql的…

【ET8】1.ET8入门-运行指南

主要学习网址 论坛地址为:https://et-framework.cn Git地址为:GitHub - egametang/ET: Unity3D Client And C# Server Framework 官方QQ群 : 474643097 项目检出 检出项目切换到release8.0分支 GitHub地址:GitHub - egametang/ET: Unity…

[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-5Laplace Transform of Convolution卷积的拉普拉斯变换

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-数学基础Ch0-5Laplace Transform of Convolution卷积的拉普拉斯变换 Laplace Transform : X ( s ) L [ x ( t ) ] ∫ 0 ∞ x ( t ) e − s t d t X\left( s \right) \mathcal{L} \left[ x\lef…

基于Swin_Transformer的图像超分辨率系统

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着科技的不断发展,图像超分辨率技术在计算机视觉领域中变得越来越重要。图像超分辨率是指通过使用计算机算法将低分辨率图像转换为高分辨率图像的过…

AI:91-基于深度学习的手写数学表达式识别

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的核心代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新…

51单片机的时钟电路与时序以及 复位电路和电源模式

51单片机的时钟电路与时序以及 复位电路和电源模式 本文主要涉及51单片机的时钟电路以及相关时序的知识,也讲解了了51单片机的复位电路以及电源模式。 文章目录 51单片机的时钟电路与时序以及 复位电路和电源模式一、时钟电路与时序1、 时钟电路设计1.1 内部时钟方式…