当前位置:编程学习 > C#/ASP.NET >>

我为什么从.NET转向Java

我为什么从.NET转向Java

自从开始学习计算机以来,所接触的软件基本上都是Microsoft的产品,记得最开始使用的操作系统是MS-DOS 3.1,开发工具是基本DOS的Turbo Pascal、Turbo C、MASM、Borland C++等,进入Windows和.NET平台后,便是清一色的Microsoft工具:Visual Basic和Visual C++,直到现在最新的Visual Studio 2005。一转眼10多年过去了,有时想想自己究竟学会了哪些东西,仔细想了以后,感觉很惊讶也吓了一跳,因为感觉最为熟悉的竟然是DOS和Windows平台的API以及VB、MFC,我记得当时在学的时候把这些奉若神明,认为这就是软件。但现在我觉得自己当初的想法完全是错了,真的错了!

我无意说Microsoft的坏话,也无意贬低Microsoft的产品,相反我认为Microsoft的产品是非常好的,我只是想反思这么多年来的想法。也许是自己不够聪明吧,认为Windows就代表了软件,GUI就是当时的发展方向,Microsoft当然领导了是软件的发展潮流,所以完全跟着MS向前走,想当年MS的许多RAD工具都被熟练地使用,感觉自己完全是站在了时代的前端,不无得意之感。

有一次,不经意地看了看Java的Struts框架,看到了传说中的MVC的真真正正的实现,心里最大的感觉就是一种悲凉!自己以前引以为豪的东西,例如RAD开发工具,与之相比根本就不值一提,从Java那儿,我看到了真正的OO,看到了软件的架构和设计,而不是大量重复的代码。我明白了,以前做的东西是多么的可笑啊!

现在网上有很多人都在骂Microsoft,但我在想:这是Microsoft的错吗?当然不是!这都是自己的无知所造成的,怪就怪自己当初没有一双“慧眼”。而且在真正遇到问题的时候,也没能认真去思考,比如在学习设计模式的时候,发现很难在项目中使用的时候,也没真正去想问题出在哪儿。现在明白了,从Microsoft的工具中,真的不容易找到设计模式、框架、架构这些东西的影子,大量的鼠标操作和相似的事件处理代码占用了最多的工作时间。也许另一个原因是自己的悟性不高吧,没有看到实实在在的这些例子就不能理解这些概念。和Java真的有一种相见恨晚的感觉,但我想,只要遇到了,就还不算太晚。

回想起前两年网上流行的.NET与Java的口水仗,我当时对Java基本上没多少了解,确实也看不懂双方到底争论的是什么,其实到现在我也没看明白。我感受到的.NET与Java的区别如下:

1、我感觉语言和平台本身的区别真是微乎其微。也许是我“视力”不好吧,真没看出多少区别来(废话)。

2、因为Java以及许多开发工具是免费或公开的,而Microsoft的东东基本上都是要收钱和,所以使用的人数完全一样。这个区别在国内可能没起什么作用,因为大家早已习惯用盗版了,但在国外,比如USA,作用肯定就大了。

3、Java社区和.NET社区的数量和质量完全不同。由于Java是Open的,用的人多,而且有不少的高手都在使用,并且组成了许多免费的开发社区,产品也当然是免费,所以就会有越来越多的人加入进来,大家在一起开发的结果就是水平都得到了提高。 .NET的免费项目真的不多,用.NET基本都出于商业目的,真没见过有多少人用.NET进行学术研究,所以圈子相对比较封闭,大家能够敞开交流的机会也不多,跟Java社区完全是两个概念。

其实,Java与.NET的区别不在它们的本身,最大的区别在于他们背后的力量,相信大家都能感觉得到,我就不多说。

我转用Java的原因就是出于上面的理由,希望能够在Java的社区里面学到关于框架、模式等东东。再次郑重声明:绝没有认为Microsoft的东东没有Java的好,也没有劝说他人转投Java的想法。以上都是自己的理解,仅供参考与讨论。

--------------------编程问答-------------------- 楼主,请不要用个人经验来代替社会经验,谢谢.... --------------------编程问答-------------------- 有一次,不经意地看了看Java的Struts框架,看到了传说中的MVC的真真正正的实现,心里最大的感觉就是一种悲凉!自己以前引以为豪的东西,例如RAD开发工具,与之相比根本就不值一提,从Java那儿,我看到了真正的OO,

-------------
不要为了OO就OO,能赚钱就是好东东,IT行打拼10年,如此感概,可悲啊可悲! --------------------编程问答-------------------- 以偏概全 --------------------编程问答-------------------- 楼主是一个封闭的人,鉴定完毕 --------------------编程问答-------------------- 真正的OO,.NET完全可以做到
你自己不行,怪开发工具,谁也没有让你写“大量重复的代码”
不是看不起你,即使你转了Java,未必比现在强
Java垃圾代码照样遍地都是

//因为Java以及许多开发工具是免费或公开的
BEA IBM Oracle的软件比微软的贵得多!

两个字:可笑 --------------------编程问答-------------------- J2EE笨重、性能低下、入门难、开发效率低(晦涩难懂)
软硬件成本高,各厂商各自为政,互相不兼容

一次开发,到处运行
实际上是一次开发,到处调试

你不是说设计模式吗,
我们举个最简单的单例模式的例子吧

//单例模式Java实现
class Singleton
{
    private static Singleton _instance = null;
    protected Singleton() {}
    public static Singleton Instance()
    {
        if (_instance  == null)
        {
            synchronized (Class.forName("Singleton"))
            {
                if (_instance==null)
                {
                    _instance = new Singleton ();
                }
            }
        }
        return _instance;
    }
}

//C#的单例模式实现:
sealed Class Singleton
{
    public static readonly Singleton Instance = new Singleton();
    private Singleton() {}
}
.NET框架保证了以上实现与Java中一样,是lazy load而且线程安全的 --------------------编程问答-------------------- Naive,如果真正工作这么多年,又是高手的话,不可能还在计较什么语言好坏,没有语言的好坏,只有某个语言适合某个项目.


有一次,不经意地看了看Java的Struts框架,看到了传说中的MVC的真真正正的实现,心里最大的感觉就是一种悲凉!自己以前引以为豪的东西,例如RAD开发工具,与之相比根本就不值一提,从Java那儿,我看到了真正的OO,
---------------------------------------------------------------------------

初级代码员才会发表如此感慨,我绝对不相信帖子原作者会是高手.
--------------------编程问答-------------------- 原帖作者应该去用SmallTalk和Pascal...

因为最早的那些经典的设计模式,算法都是用这两种语言描述的.. --------------------编程问答-------------------- 我只想说,楼主用了10年的时间终于悟到一个真理,投奔了一个自己原来没有打算投奔的领域;
欢迎楼主在投奔过去10年后,再次发现另外一个真理而回来到原来的地方,只是一个人大约没有多少个20年可以花在感悟这个上面了!


当你在一个领域觉得郁闷时--毫无疑问,所有地方,所有人都或多或少有郁闷的地方,而你发现另外一个领域可以消除这种郁闷时,会以为很高兴,但是很快发现不过是把一种郁闷变成另外一种郁闷~~~~~如此而已。


我是1989年开始我的Helloworld~~~, 1994年投奔微软领域,13年了,还没楼主那么觉悟~~~~ 当我看见J2EE时,不知道为什么,只有感叹,而没有任何要投奔过去的冲动,我唯一想的是怎么把那些东西拿过来这边~~~~~ --------------------编程问答-------------------- syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) 
我也是1989年开始我的Helloworld的 --------------------编程问答-------------------- 楼主,你真会感悟啊,等你下一个感悟,10++ --------------------编程问答-------------------- 89年就开始Helloworld,强
那时候用286吧,恐怕一台要好几万~ --------------------编程问答-------------------- 我第一次helloworld是在差不多97年的时候... --------------------编程问答-------------------- 用的QBasic... --------------------编程问答-------------------- 个人觉得,做技术只有2种人:

  1.天生爱技术,研发类型.
  2.为了生活,并不把技术当唯一出路.
  注:不是一时的结论,也许现在lz觉得对技术很有兴趣,在你工作4年后再给自己定下位.
  
  本人属于第二种,鉴于中国国情,Microsoft在企业,政府的影响,感觉这条路在国内比较好走,以后自己单干,组建公司都可以积累一些东西.


 : ) --------------------编程问答-------------------- .................... --------------------编程问答-------------------- 搬板凳,看上面的牛人。mark --------------------编程问答-------------------- 碰巧路过!我跟楼主的学习过程差不多  清一色的MS工具,不过只是接触过JAVA的东西 不太了解,看了楼主的经历之后还真打算考虑去了解一下J2EE呢  看到跟贴的牛人们  我决定了坚持就是胜利 --------------------编程问答-------------------- louise135(Ю猪哥孔明┡) 
你能不能有点自己的主见阿;


真正的武林高手用树叶都能杀人,并非要用刀剑之类 --------------------编程问答-------------------- 我的感悟是,勤修内功才是王道.
完毕! --------------------编程问答-------------------- 10年还在语言种选择,太什么了把..

在.net 的很多架构都是抄java的.如:aop,orm,soa等.

但是又如何呢?人都是要从发展的阳光看世界的,而且在中国太专注技术不行. --------------------编程问答-------------------- 在.net 区说.net好的人多.在JAVA区说JAVA好的人多. --------------------编程问答-------------------- 我永远支持.net --------------------编程问答-------------------- 我第一次helloworld是在2005年的春天 --------------------编程问答-------------------- 悲哀啊.十年了还在为技术痛苦.在中国稀少吧.
.Net完全可以实现各种设计模式.但是不能否认.Net的开发效率基本高于Java. --------------------编程问答-------------------- 说什么呢?我咋就听不懂呢 --------------------编程问答-------------------- 呵呵,java的机制暴露,语法单一,各个公司接口难统一协调,除了免费,说真的还真想不出有什么优点,问题多了,解决的人就多了,这个就是楼主说的背后的力量吧。学java的虽然很多,那是因为code而code,记得那时候听别人说java的网络编程效率多高,我拿过来写Socket程序的时候,发现java的思路真的很清晰,线程池调用,不过效率不高,后来用dotnet重写的时候,发现了异步这个东东,效率比线程池高出不少,为它所折服,更别提完成端口了(不知道Java仙现在有没有实现异步或者完成端口)。
  不过话说回来了,楼主说的有道理,java的确适合学习模式和框架,但是模式和框架最终也是为人所用。 --------------------编程问答-------------------- 框架、模式无关语言,不过从现实来看,java程序员比.net程序员更关注这些东西,不过这不是语言的问题,是程序员本身的问题
--------------------编程问答-------------------- 进来看看,到底那个好啊?我刚学~ --------------------编程问答-------------------- 我学过一段Java,估计有机会还会继续学下去.感觉Java把很多精力很多时候都浪费在一些工具的使用上,很多很小的功能都很烦琐.除了号称的跨平台,和Java比没多大的优势.不过弄Java的工资高 --------------------编程问答-------------------- 晕倒,看了这么多评论,不知道学什么好了 !
--------------------编程问答-------------------- 呵呵,术业有专攻...

俺曾经看到过有的 BAT文件那写得叫一个强悍... --------------------编程问答-------------------- ... --------------------编程问答-------------------- 学精哪门都一样. --------------------编程问答-------------------- 我也不得不转Java,公司项目需要……
但是没有楼上那种领悟,我还是觉得VS下写代码比Eclipse爽的多! --------------------编程问答-------------------- 平台不是问题,语言不是问题,只是工具而已,提高生产效率的东西
关键是想法,国内关系也重要
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,