论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代。
2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁。
2013年他与微软做了最后的道别。
2013年以后,我才真正看到了微软的变化。尤其是它的“云优先,移动优先”的战略,这才是符合新时代潮流的大势。
今天,既然我们重点是来讨论Java与.NET领域的,那关于微软的是是非非且放置脑后。我说.NET看起来更新很快,目前只是在弥补曾经犯下的错。
那.NET之前究竟错在哪里。.NET既然是微软实现跨平台与Java竞争的利器,那么它在Java兴起多少年之后,才渐渐的崭露头角。可谓后起之秀,它在吸取了C、C++和Java等语言的优点后,加入一些.NET自己的设计理念,形成了一个多语言、多平台的.NET Framework框架。如果一定要拿.NET和Java做对比的话,我认为,至少要从两个方面来看。
第一、设计理念:
1>Java不言而喻,了解Java历史的人,都应该清楚。致力于打造一款可以一处编写、到处运行的开发利器。像它的名字一样,使你在开发的过程中,领略到咖啡质地的苦味和醇厚的香气,其中的酸苦香甜总是
耐人寻味。它作为中间语言,总要依赖于JVM,这也是无可厚非的。Sun的光辉已经不复存在,Oracle的步伐略显迟钝。Andriod的兴起,给Java注入了新的活力,使其在世界编程语言榜上独站鳌头。
2>.NET与Java的很大不同之处,在于,.NET是一个致力于打造一个多语言多平台的软件框架。.NET设想能把不同语言、不同习惯的开发者,都聚集起来,使他们能共同参与到一个项目里来,于是,就会有了C++、
C#、VB、F#等语言的开发者,用其所长,共同来完成一件事情,岂不壮哉。是软件领域,首次超越了语言的界限,进入软件开发领域的“国际化”。.NET与Windows与生俱来的先天优势,借助于Windows全球的市场
占有率,很快的推广开来。道家言“福之祸所依”,正是.NET这种先天优势,使.NET与Windows相生相克。为什么这么说呢,因为.NET依赖Windows而生存,Windows须借助.NET强大的功能来赢得市场份额,或者说是
稳定PC市场。.NET要发展壮大,必须脱离Windows而独在,可在2013年之前,处于市场战略考虑,.NET不得不臣服于Windows,受其平台束缚。这犹如森林的猛虎,被猎人(MS)绑住了四脚,眼看前方的羊群,即使它有再锋利的爪牙,再怎么的饥饿难耐,也只能为自己的目前的处境,哀婉叹息,望穿了山林。我说.NET Core是弥补曾经犯下的错,这也不为过,.NET的跨平台,曾经常被人们拿来炒作,这是.NET的痛,现在用.NET Core来医治这个伤口。
.NET框架组成:(Winform、WPF、Silverlight、WCF、WebForm、ASP.NET(MVC、WebApi))
3>Java也好,.NET也罢,其作为中间语言,都需要依赖于某种框架。Java有JVM,.NET有.NET Framework。都是面向对象的语言。Java可以实现的,.NET照样可以移植过来。
第二、市场概况
1、成熟度:很多大的企业都是运用Java语言来进行产品研发的。很多开源的项目,都是Java来编写的。原因有很多。Java毕竟比.NET早兴起了很多年。它们有许多优秀的案例和成熟的框架。
市场氛围:在中国,有种怪现象,很多开发者,对微软是存在或多或少的偏见的,可能是因为微软总是喜欢问他们要钱,中国人最不喜欢谈“钱”字哈。是存在利益冲突的。这样一群人,只要听说微软的什么什么,第一个想到
的不是先去了解,而是极力的斥责反对,还鼓动身边的人,不要听微软瞎摆豁。难道都忘了,不了解就没有发言权这句话了吗?我曾在一篇博客的评论中,斥责评论中的一些人,他们每天都用着微软的东西,嘴里却总数落着微软的
不是,这岂不是自己在打自己的脸嘛。我觉得,我们应该客观的看待事情,不要带有感性的色彩,最后误人误己,何苦呢?
2、安卓的兴起:随着Andriod的兴起,国内,又一批类似DN这样的IT培训机构,又借此,以IT人才匮乏为由,大肆吹嘘,夸大其市场就业率。高昂的培训费用,使多少盲目从事的新人,在面临一次又一次的失业中,悔不当初。
3、另外,linux的风行,给之前封闭的.NET家族不少冲击。阿里曾称:“我们的所有服务和平台都运行于Linux。”。听起来,多么高大上啊。京东的技术架构、淘宝这十年等这些经验,都在警告.NET,你不拥抱linux,我们就放弃你。
.NET的开源,振奋了整个.NET领域。有一群,或者很多群,开发者正积极参与.NET的开源事业中,他们勇于创新和实践,将.NET领域的最新技术,应用与实践。或许,已经有很多公司已经在默默使用微软这些技术了。
《StackOverflow的最新架构:.NET技术+25台服务器怎样支撑世界第53大网站》,它的成功,更加鼓舞了.NET开发者的信心。微软对Docker技术的支持,正象征着微软这头沉睡的狮子,依然觉醒了,它依然威武雄壮。
每一个开发者,都应该有自己的信仰,这也是IT文化的一种传承吧。那有人会问,Java开发者的信仰来自哪里?Java开发者的信仰,自然是Java语言自身。我认为,它来源于对Java语言的自信,它有广阔的前景市场,有丰富的框架资源,有令人满意的待遇收入。
.NET开发者自然也有自己的信仰,那就是.NET平台。相信.NET的觉醒,会使更多的企业和开发者,投入到.NET的怀抱。
既然从事Java和.NET的人,都是有信仰的,那我们又何况用自己的信仰去嘲笑另一种信仰呢?中国几千年了,道教和佛教,依然和平相处着。春秋时,诸子百家争鸣,也未尝听说有互相攻击的事件发生,他们可以通过自己的信仰学识,
向当政者,阐述自己学派的主张。我们也可以通过我们的信仰,在不同的领域共存,很有可能,会在未来某个时间,Java和.NET会一较高下。平台有了,接下来,要看的,就是我们这些来自Java .NET不同学派的学子们,如何在中国这片
锦绣山河中,各领风骚,崭露头角了!
所以,在以后的生活里、社区里、博客里、论坛里,我不希望听到有“.NET不行”、“我们都用Java”、“以后要换成Java”、“大公司都用Java”、“我要转行学Java”等这样的话了。
最后,想说的是,Java和.NET,亦师亦友,抛开学派的偏见,以合作的精神,共同去完成一件事情,岂不快哉!也顺应了这个时代的发展,创造更多的价值!也恳请,企业同仁们,不要受少数偏执派的影响,勇于去接受新生的事物,“海纳百川,有容乃大。沟壑千里,无欲则刚。”。在这里,我倡导,“天下IT是一家”!
论:开发者信仰之“天下IT是一家“(Java .NET篇)的更多相关文章
- 北京一家JAVA开发公司面试题(留给后人)
1.jsp有哪些内置对象?作用分别是什么? 2.描述一下servlet的生命周期和基本架构. 3.多线程有几种实现方法,都是什么? 同步有几种实现方法,都是什么? 4.作用域public priv ...
- Chrome开发者工具不完全指南(二、进阶篇)
上篇向大家介绍完了基础功能篇,这次分享的是Chrome开发工具中最有用的面板Sources. Sources面板几乎是我最常用到的Chrome功能面板,也是在我看来决解一般问题的主要功能面板.通常只 ...
- Chrome开发者工具不完全指南(五、移动篇)
前面介绍了Chrome开发者工具的大部分内容工具,现在介绍最后两块功能Audits和Console面板.一.Audits Audits面板会针对目前网页提出若干条优化的建议,这些建议分为两大类,一类是 ...
- Chrome开发者工具不完全指南(六、插件篇)
本篇是Chrome开发者工具的结尾篇,最后为大家介绍几款功能强大的插件.在chrome商店里面有很多插件,没事建议大家去逛逛.不过需要FQ,所以诸位请自备神器.一.皮肤插件 首先是大家期盼已久,翘首以 ...
- 开发者应该避免使用的6个Java功能(转)
本文作者是一名拥有多年Java开发经验的程序员,他从经验中得出,并不是所有的Java SE功能/API都值得程序员去使用,比如本文列举的这6个,大家在使用前得慎重对待.以下是对原文的摘译. 多年的Ja ...
- Java匹马行天下之JavaSE核心技术——Java基础语法
Java基础语法 一. 认识Java 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java ...
- 【开发者笔记】插入排序过程呈现之java内置GUI表示
先给代码,再给过程视频: package com.dyi.wyb.sort; import java.awt.Color; import java.awt.Graphics; import java. ...
- 【开发者笔记】冒泡排序过程呈现之java内置GUI表示
自己玩玩写写,排序的过程多么有趣,特别是把看着电脑吧一堆乱七八糟的数据排成有序组合的时候,看起来贼舒服,特别是强迫症患者.好了,话不多说上代码,也算是自己记录一下吧,没有什么技术含量但个人感觉比较有趣 ...
- 【开发者笔记】归并排序过程呈现之java内置GUI表示
在网上看到一个视频将各种排序用视频表示出来,配上音乐,挺好玩的样子,就算是不会编程的人看到也会觉得很舒服,碰巧我也正在写归并算法,于是就用java的GUI实现一个. 归并排序的时间复杂度是T(n)=O ...
随机推荐
- NoSql数据库使用半年后在设计上面的一些心得
NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...
- .NET 基础 一步步 一幕幕[面向对象之构造函数、析构函数]
构造函数.析构函数 构造函数: 语法: //无参的构造函数 [访问修饰符] 函数名() :函数名必须与类名相同. //有参的构造函数 [访问修饰符] 函数名(参数列表):函数名必须与类名相同. 作用: ...
- 前端学HTTP之Web主机托管
前面的话 对内容资源的存储.协调以及管理的职责统称为Web主机托管.主机托管是Web服务器的主要功能之一.保存并提供内容,记录对内容的访问以及管理内容都离不开服务器.如果不想自行管理服务器所需的软硬件 ...
- [C#] 简单的 Helper 封装 -- CookieHelper
using System; using System.Web; namespace ConsoleApplication5 { /// <summary> /// Cookie 助手 // ...
- 基于window7+caffe实现图像艺术风格转换style-transfer
这个是在去年微博里面非常流行的,在git_hub上的代码是https://github.com/fzliu/style-transfer 比如这是梵高的画 这是你自己的照片 然后你想生成这样 怎么实现 ...
- Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题
现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...
- H3 BPM让天下没有难用的流程之功能介绍
H3 BPM10.0功能地图如下: 图:H3 BPM 功能地图 一.流程引擎 H3 BPM 流程引擎遵循WFMC 标准的工作流引擎技术,设计可运行的流程和表单,实现工作任务在人与人.人与系统.系统 ...
- Mysql - 数据库操作
之前介绍了数据库的增删改查, 发现忘记了数据库的一些基本操作, 比如建库, 建表, 改表等等. 那这里就来小结一下数据库sql形式的基本操作. 一.库操作 1. 建库 在建库之前, 可能需要看一下, ...
- TCP的数据传输小结
TCP的交互数据流 交互式输入 通常每一个交互按键都会产生一个数据分组,也就是说,每次从客户传到服务器的是一个字节的按键(而不是每次一行) 经受时延的确认 通常TCP在接受到数据时并不立即发送ACK: ...
- 分布式服务注册和发现consul 简要介绍
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,Consul的方案更"一站式",内置了服务注册与发现框 架 ...