您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
为什么当 .NET宣布开源和支援跨平台时,一些人在喊Java去死?
豆奶,开源,都是为什么当 .NET宣布开源和支援跨平台时,一些人在喊Java去死?
发布时间:2019-02-08加入收藏来源:互联网点击:
为什么当 .NET宣布开源和支援跨平台时,一些人在喊Java去死?
问题补充: 因果关系何在?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
首先来说,.NET一直把Java当成竞争对手,而Java却从来不把.NET当成对手来看。
在编程界,.NET和Java都是优秀的开发语言,但是由于市场占有率的问题,.NET较于Java表现较差。
.NET由于早期微软的定位问题,将它和Windows系统强绑在一起,所以它是一款封闭不开源的开发语言。但是在国内来说,.NET从业人员和学习者人数还是有一定基数的,以前一直被人吐糟无法跨平台,众多.NET从业人员只能憋着不说话。直到.NET宣布支持跨平台时,.NET开发者觉得自己可以扬眉吐气了。
但是就目前情况来看,虽然.NET宣布开源且支持跨平台了,但由于.NET落后Java太多,发展得较慢。微软之所以选择开源和跨平台,究竟是它的无奈还是顺应潮流,不好说。官方之所以这样做恰恰也说明.NET不像以前那样站在顶端了,它也意识到自己的一些问题,所以需要去改进,也是利用此方法还挽留和吸引.NET开发者。
对于.NET开源和跨平台有人喊Java去死的这种现象,我觉得都是.NET开发者为了出气说的,即使他们内心清楚的明白Java领先于.NET,而且在未来很长一段时间,Java会持续引领技术发展,当然了,.NET相信也会越来越好。
回答于 2019-09-11 08:43:50
谢邀。显然,喊Java去死的大部分不会是Java程序员。作为Java程序员最怕的就是自己的碗没了。
.NET我这里简化叫豆奶,Java我这里简化叫加瓦。
加瓦和豆奶,学长和学弟的情感纠葛
豆奶和加瓦真是一对不折不扣的死对头,两个都是面向对象,两个都具有非常便利的开发上层应用的特性,但是豆奶这位中学生一直有一种自卑感,因为加瓦是不折不扣的大学生,加瓦的年龄比豆奶旧,开源的生态圈更是庞大无比,应用特别广泛,从web开发到安卓开发,从后端服务器到大数据,加瓦一定占有举足轻重的地位。
而反观豆奶,很多地方借鉴了加瓦甚至还进行了改进,有不少两个都用过的人会感叹,豆奶好像更好用。但是豆奶最大的阻碍之一就是不能跨平台,只能被关在Windows的牢笼里,当然,一旦被释放出来,那势头会很凶猛。因为即便还没有实现夸平台的时候,豆奶已经有市场需求了,而且人才的稀缺导致薪资比加瓦还高上一些。
在豆奶真的站了起来的时候,一直被加瓦大军人数碾压的豆奶程序员终于可以扬眉吐气了,抱怨一句加瓦去死也是情理之中。
关注“极客宇文氏”,有趣的灵魂带你趣看编程趣看科技
回答于 2019-09-11 08:43:50
今天的 Java 是编程领域的 lingua franca:作为一门语言,它比 C / C++ 学起来更容易,比 Perl / Lisp 读起来更正常,比 VB / PHP 用起来更专业。几乎没有人看不懂 Java,所以讲解个什么概念,用 Java 写出来大家都能明白。而作为平台的 Java,有无所不包的类库,极度优化的虚拟机,根深蒂固的开源项目,结果就是,无论你想做任何事情,理论上——乃至 99% 的实际上——都可以用 Java 实现。我写下这些文字的片刻,就又有几万行 Java 代码在世界上诞生了,所以如果以「不再有任何人使用」为一种技术的死亡界限,那 Java 显然活着,并且活得还不错;如果以「能找得到工作」作为一种技术的死亡界限,那 Java 更是生龙活虎,国内的状况我不清楚,但在欧美任何一个求职网站上以 Java 为关键字搜索职位,都可以很容易地看出它拳打 C++、脚踢 PHP 的霸主地位。没有人质疑它为什么活着,我们 take for granted 它活着,就像我从来不质疑明天去上班时还有没有活干一样,granted。
但如此一来,倒不如就说 Java 已获永生算了。因为,如果你按照上面的两个定义巡视一遍 TIOBE,就会发现没有什么稍微有点名气的编程语言(及其背后的技术)真的死去了。Visual Basic 还活着,Delphi 还活着,COBOL 活着,Fortran 活着,甚至连 FoxPro 都活着。至于比这些更小众的例子,你们听过 IBM AS/400 系统么?我的上个东家还在用,维护它的程序员刚入职的薪水就高得离谱,因为整个公司二十年核心业务逻辑都在里面,一损俱损。AS/400 也活着。
所以当我说「Java 去死 / 已死」的时候,「死」意味着什么呢?很简单:没人爱了。
本版同文那篇改写尼莫拉诗句的答案是对 Paul Graham 那句「of all the great programmers I can think of, I know of only one who would voluntarily program in Java」的完美呼应:十个写 Java 的人里面有九个是「因为工作需要」——剩下一个是因为不会别的。在所有我能想像到的写程序的动机里面,「因为工作需要」是最令人心如死灰的一个。牺牲着前列腺和脊椎的健康久坐在屏幕前忍受着用 Java 写程序只为混口饭吃,反正我觉得没意思。如果你还能笑出来,good for you。
而只要你不是刚从一九九五年穿越过来,就应该能看到现在的 Java 也的确并不可爱。语言特性方面,与其说它没有什么太大的问题,倒不如说它的那些问题已经有了很多成熟的 workaround,比如无法被 override 的静态方法,画蛇添足的 checked exceptions,还有半屁股的泛型。而真正令人难受的是那些它缺失的特性——我可以说 C# 里面的 struct、delegate、async / await、event handler、accessor、operator overloading 支持(好吧这个不一定是好事)乃至 type inference 之类都是 Java 所缺失(或者只有靠隔靴搔痒的第三方库才能实现)的,当然还有真正的运行时泛型。分开来看每一点你都会觉得没什么,但是当所有这些积累起来时,C# 就比 Java 可爱得多。这些功能有朝一日也许终归会在 Java 中出现,就像 Java 7 终于有了 switch on string 和 try with resource、Java 8 终于有了 lambda 一样,但是它们出现之前,你就得忍着,连同 Java EE 那堆臃肿庞杂、诘屈聱牙的技术迷宫一起忍着。而且感谢 Oracle,你还不知道要忍多久——作为一个参照值,Java 8 大概相当于 .NET Framework 3.0,而 .NET Framework 3.0 是二〇〇六年的事情,那时候手机市场的第一巨头是诺基亚。Oracle 以任何标准衡量都不是一个会为开发者着想去改进工具的公司,比 Microsoft 更令开发者厌恶,后者至少有组织良好、行文详尽的 MSDN 资料库,有虽然平庸但不断改善的 CodePlex 开源平台,还有个秃顶胖子汗湿了衬衫站在讲台上大喊过 developers developers developers。而 Oracle 做过什么?把 MySQL 留在路边喂狗。把 OpenOffice 的开发社群赶出家门。无厘头地起诉 Android。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |