为什么.NET感觉上比Java差一点
其实,我本人很喜欢.NET技术。工作经历中,大部分时间也在使用.NET开发。
这几年,由于工作的原因,开始进入Java+Linux世界。
今年,开始学习Python和Scala。
使用.NET时,有种什么都准备好了的感觉。而使用Java,什么都需要自己找。
C#的语言特性比Java,可以说是先进多了。而且,我觉得微软的SDK的质量更好。
Java似乎发展的比较慢。(不知道是不是内部政治斗争的原因。看来,大教堂也有比集市跑得快的时候。)
微软CEO纳德拉上任后,拥抱Linux的策略,并开源许多微软的项目。我觉得微软终于走到了正确的道路上了。虽然晚了点。
但是,现在.NET比起Java,感觉上还是差一些。
什么样的语言更具有统治地位?
被更多人使用的语言:
首先通用性要比较强。
这个比较容易让人理解,什么地方都可以用,自然更好。谁知道过几年会干什么,学习通用性更强的语言,适应能力也会更高。
C#在这方面,其实稍微差一下。主要原因是微软以前总是只考虑Windows系统。
Java在OS上的适应能力,明显更强。
有很好的社区支持。
这是python成功的主要原因之一。社区支持不尽可以降低学习门槛,而且开发大量的类库,可以增强其通用性。
开放性和自由行
尽管.NET一直鼓吹自己比Java更开放。(按照License来说,似乎是实事。Oracle告Google也让人心寒。)
但是,问题不在License上,而是在文化上。
微软以前,总有种,自己是大哥,带一群小弟的样子。就像梵蒂冈的教会。
Java的文化,更接近于自由软件的文化。
所以,Java上,有各种各样的技术从各个角落里冒出来,比如Struts, Spring, hadoop, Spark, Scala等等。
而微软方面,就很难想象,她会允许别的公司在.NET上,拥有比她更高的地位。
对未来的适应性
新公司崛起的一个主要原因,是技术上突破,满足了未来市场的需求,领导了发展方向。
这本身具有很大的随机性。
大公司一个手段是通过收购来追赶潮流。
收购有个局限性是:最好和公司有一定的融合性。
微软的问题在于:用微软技术的公司不够强大(微软压迫的?),强大的公司又不用微软的技术。
对微软的建议
反正不负责任,就随便说吧。
- 取消C#和.NET的绑定,拥抱Java, C, C++, JavaScript,你能抱上谁,就抱吧!
其实Scala提供了一个很好的灵感。Scala是基于Java上的一种语言。它可以编译成JVM的byte code,可以让Java调用,也可以调用Java。
微软完完全全可以将C#语言(或者开发一种新语言)做类似的事情。
允许C#绑定其它的Framework,比如:Java,C,JavaScript, Python等等。
允许C#可以是强类型语言,或者是弱类型语言。
比如:开发人员可以选择一个平台(比如Java),之后,开发的程序可以编译成JVM的byte code。
用户也可以选择其它的Framework: C, python, JS等等。
其主要思想是:- 让C#(或者新语言)作为程序员的开发接口。
- 降低程序员学习语言的成本。(现在冒出来的语言实在是太多了)
- 新的语言可以方便的使用任何社区提供的现有类库。
- 增强语言的适应性。
- 培养社区开发出多种新的开发工具。
可以开发基于Eclipse,Intellij的,或者一种全新的开发工具。
为什么.NET感觉上比Java差一点的更多相关文章
- 最大化 AIX 上的 Java 性能,第 4 部分: 监视流量
http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf4.html 最大化 AIX 上的 Java 性能,第 ...
- Java mac 上编写Java代码
看视频学JAVA,不想下载 notepad++之类的,虽然知道mac有内嵌的JAVA sdk ,但是还是不知道怎么编写,今天终于编写了我的第一个JAVA程序,还是以 Hello World 开始吧 1 ...
- 最大化 AIX 上的 Java 性能,第 5 部分: 参考资料和结论
http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf5.html 最大化 AIX 上的 Java 性能,第 ...
- 最大化 AIX 上的 Java 性能,第 3 部分: 更多就是更好
http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf3.html 最大化 AIX 上的 Java 性能,第 ...
- 最大化 AIX 上的 Java 性能,第 2 部分: 速度需求
http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf2.html 最大化 AIX 上的 Java 性能,第 ...
- 最大化 AIX 上的 Java 性能,第 1 部分: 基础
http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf1.html 最大化 AIX 上的 Java 性能,第 ...
- visualvm 监控 远程 机器上的 Java 程序
JDK里面本身就带了很多的监控工具,如JConsole等. 我们今天要讲的这款工具visualvm,就是其中的一款.但是这款工具是在JDK1.6.07及以上才有的.它能够对JAVA程序的JVM堆.线程 ...
- Azure 网站上的 Java
编辑人员注释:本文章由Windows Azure 网站团队的项目经理Chris Compy 撰写. Microsoft 已推出针对 Azure 网站上基于 Java 的网站的支持.此功能旨在通过 ...
- VisualVM监控远程主机上的JAVA应用程序
使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可 ...
随机推荐
- WeifenLuo组件中如何设置停靠窗体的宽度
在项目中使用了WeifenLuo.WinFormsUI.Docking组件,窗体停靠效果非常棒. 现在项目出现了这样的需求,希望可以控制停靠窗体的宽度,因为默认的宽度往往会造成停靠窗体的内容显示不完全 ...
- [Under the hood]---Matt Pietrek October 1996 MSJ
Matt Pietrek October 1996 MSJ Matt Pietrek is the author of Windows 95 System Programming Secrets (I ...
- eclipse 编译出错(java.io.ObjectInputStream)的解决办法
Multiple markers at this line - The type java.io.ObjectInputStream cannot be resolved. It is indirec ...
- Eplan转载
引言:标准化工程设计理念成功实施后之后,清晰透明的管理流程将水到渠成,过往繁复无比的流程得以简化,管理与被管理者皆愿欣然承受. 市场竞争日趋激烈的今天,对用户需求.市场的快速响应,尽量地控制成本是企业 ...
- MFC下调用控制台和控制台下MFC库的支持
1.MFC下调用控制台 在CWinApp的InitInstance中对话框的DoModal之前加入 AllocConsole(); // 开辟控制台 SetConsoleTitle(_T(" ...
- IOS 使用SDWebImage实现仿新浪微博照片浏览器
使用第三方库SDWebImage实现仿新浪微博照片浏览器,可以下载图片缓存,点击之后滚动查看相片,具体效果如下: 代码如下: WeiboImageView.h: #import <UIKit/U ...
- SQL1159 Initialization error with DB2 .NET Data Provider, reason code 7(问题补充)
SQL1159 Initialization error with DB2 .NET Data Provider, reason code 7 需要注册GAC,修改注册表 IBM官方方案: http: ...
- 使用Doxygen生成net帮助文档
一. 什么是Doxygen? Doxygen 是一个程序的文件产生工具,可将程序中的特定批注转换成为说明文件.通常我们在写程序时,或多或少都会写上批注,但是对于其它人而言,要直接探索程序里的批注,与打 ...
- 树莓派 HC-SRO4超声波测距模块的使用
先上个图 这个模块的针脚跟之前玩的那三个有所区别,除了VCC和GND两个针脚,还多了两个Trig和Echo针脚,分别是输出和输入,Trig我接的是20针脚,Echo是21 该模块的工作原理为,先向TR ...
- 回归 从注释开始 appledoc
好久没有管理这个blog了,些许空虚.不知道今天的回归能否坚持.简单介绍一个第三方注释 -- appledoc appledoc http://gentlebytes.com/appledoc/ 安装 ...