当前位置: 技术问答>java相关
一个JAVA程序员在学习C#中的体会
来源: 互联网 发布时间:2015-10-04
本文导语: 我是一个JAVA程序员,我喜欢JAVA的开放性,JAVA的接口,尤其是许多JAVA API中设计优美的程序模式。然而,最近由于工作需要我不得不学习.net(c#),说实话,刚开始我是带着挑刺的目光学习他的,“一切都是跟着JAVA偷学...
我是一个JAVA程序员,我喜欢JAVA的开放性,JAVA的接口,尤其是许多JAVA API中设计优美的程序模式。然而,最近由于工作需要我不得不学习.net(c#),说实话,刚开始我是带着挑刺的目光学习他的,“一切都是跟着JAVA偷学的嘛”,接口是JAVA的、asp.net的编译后再执行是JSP的、CLR不就是换了形式的JVM?、统一的API。......
但是,一步一步的学习后,我的目光从藐视、到惊异、最后简直是震惊了。不得不承认,MS真是一个伟大的学习者,因为他并不仅仅是简单的模仿,而是超越(历史已经无数次证明过了,DOS,OFFICES,IE,SQLSERVER?)。接口是个好东西,所以他拿过来,他还为C#加上指向函数的指针,加上ref,out;JSP第一次访问后的编译很好,是的,所以asp.net中他也这样做,他还加个cache,让你访问的速度更快,他还可以将html 和程序代码完全分开;java在语言和系统中间加了个JVM,他也做个CLR,而且他还为他做个JIT编译器,把所有转换后的中间语言都编译成机器的本地语言;java跨平台,他还跨语言(我想以MS的实力应该可以把.net平台移植到UNIX等操作系统上,只不过为windows考虑而没那么做罢了,但等MS把C#、CLI“标准化”后,任何人都可以开发.net的编译器和平台了)。
语言和框架的技术优劣还在其次(这需要时间的检验,而且短时间很难比出高低),真正令我震惊的还是.net的开发工具visual studio.net.我以前一直是做WEB开发的,一直还比较适应这种编程将数据库的数据提取出来在由页面的脚本语言显示出来(复杂的处理封装在非可视化组件中),不过许多用惯rad开发工具(VB,DELPHI,PB)的程序员却很不习惯,他们认为这种编程方式是往回走,什么都要用写语言来完成(他们已经习惯对组件进行设置来编程),Anders Hejlsberg(turbo pascal编译器的作者,delphi的创始人之一,VJ++的开发者,C#语言的主要作者,.net的架构师)果然是个奇才(从.net的编译速度上我们就可以体会到他的功力),他将这一切变为了现实,vs.net就可以采用RAD的开发方式,对属性设置,对可视化的组件编程,通过数据绑定很容易就可以实现对数据库的操作(虽然现在提供的组件还不多)。同时代码和html显示基本上实现了分离(我记得前一段时间在JAVA论坛里有人说他开发了一个这样的JSP工具,不知道比起来如何?),总的来说,他的确是相当强大的开发工具。
那么,JAVA的优势还有什么呢?
1.我想首先是跨平台(MS短时间从占略上不想,从技术上还无法做到);
2.是客户端的Applet(但是速度,哎);
3.J2EE在企业级应用上已经比较成熟(这多少沾了unix的光),而.net还尚需时日;
4.就是JAVA的开放思想和众多的JAVA爱好者以及众多反MS公司的支持。
5.手持设备,PDA,嵌入式系统。
然而,面对MS追赶的脚步,这些优势正在慢慢消失。
1.只要MS想,他就可以做到而且很快。
2.ms有ActiveX,而且大多数的客户端都是windows
3.如果.net移植到unix上(或其它平台上),谁能保证.net不如J2EE
4.难道MS的支持者少么?vb,vc的程序员少么?
5.ms与winCE的支持,或许他也会推出类似j2me的.net
要想打赢这场战争,JAVA阵营的众多厂商只能联合起来,加快JAVA的发展,在编译技术上,我认为也应该走JIT这条路,因为速度是JAVA最大的内伤。而开发工具,除了borland,我们还能指望谁?如果JAVA不加快发展而优势丧失,你还会选择JAVA吗?
注:由于对JAVA和C#(.net)的学习水平问题,这写看法肯定有错误,还希望大家能指出和探讨,但是,不接受辱骂和恐吓。
但是,一步一步的学习后,我的目光从藐视、到惊异、最后简直是震惊了。不得不承认,MS真是一个伟大的学习者,因为他并不仅仅是简单的模仿,而是超越(历史已经无数次证明过了,DOS,OFFICES,IE,SQLSERVER?)。接口是个好东西,所以他拿过来,他还为C#加上指向函数的指针,加上ref,out;JSP第一次访问后的编译很好,是的,所以asp.net中他也这样做,他还加个cache,让你访问的速度更快,他还可以将html 和程序代码完全分开;java在语言和系统中间加了个JVM,他也做个CLR,而且他还为他做个JIT编译器,把所有转换后的中间语言都编译成机器的本地语言;java跨平台,他还跨语言(我想以MS的实力应该可以把.net平台移植到UNIX等操作系统上,只不过为windows考虑而没那么做罢了,但等MS把C#、CLI“标准化”后,任何人都可以开发.net的编译器和平台了)。
语言和框架的技术优劣还在其次(这需要时间的检验,而且短时间很难比出高低),真正令我震惊的还是.net的开发工具visual studio.net.我以前一直是做WEB开发的,一直还比较适应这种编程将数据库的数据提取出来在由页面的脚本语言显示出来(复杂的处理封装在非可视化组件中),不过许多用惯rad开发工具(VB,DELPHI,PB)的程序员却很不习惯,他们认为这种编程方式是往回走,什么都要用写语言来完成(他们已经习惯对组件进行设置来编程),Anders Hejlsberg(turbo pascal编译器的作者,delphi的创始人之一,VJ++的开发者,C#语言的主要作者,.net的架构师)果然是个奇才(从.net的编译速度上我们就可以体会到他的功力),他将这一切变为了现实,vs.net就可以采用RAD的开发方式,对属性设置,对可视化的组件编程,通过数据绑定很容易就可以实现对数据库的操作(虽然现在提供的组件还不多)。同时代码和html显示基本上实现了分离(我记得前一段时间在JAVA论坛里有人说他开发了一个这样的JSP工具,不知道比起来如何?),总的来说,他的确是相当强大的开发工具。
那么,JAVA的优势还有什么呢?
1.我想首先是跨平台(MS短时间从占略上不想,从技术上还无法做到);
2.是客户端的Applet(但是速度,哎);
3.J2EE在企业级应用上已经比较成熟(这多少沾了unix的光),而.net还尚需时日;
4.就是JAVA的开放思想和众多的JAVA爱好者以及众多反MS公司的支持。
5.手持设备,PDA,嵌入式系统。
然而,面对MS追赶的脚步,这些优势正在慢慢消失。
1.只要MS想,他就可以做到而且很快。
2.ms有ActiveX,而且大多数的客户端都是windows
3.如果.net移植到unix上(或其它平台上),谁能保证.net不如J2EE
4.难道MS的支持者少么?vb,vc的程序员少么?
5.ms与winCE的支持,或许他也会推出类似j2me的.net
要想打赢这场战争,JAVA阵营的众多厂商只能联合起来,加快JAVA的发展,在编译技术上,我认为也应该走JIT这条路,因为速度是JAVA最大的内伤。而开发工具,除了borland,我们还能指望谁?如果JAVA不加快发展而优势丧失,你还会选择JAVA吗?
注:由于对JAVA和C#(.net)的学习水平问题,这写看法肯定有错误,还希望大家能指出和探讨,但是,不接受辱骂和恐吓。
|
每一种语言,都会有上升期和没落的阶段
我同意你的看法,如果java不发展,肯定会被MS的.net超越;同样的,.net不发展,永远只能落在java后边。
我同意你的看法,如果java不发展,肯定会被MS的.net超越;同样的,.net不发展,永远只能落在java后边。
|
我觉得,微软在操作系统上的优势使它走JIT这条路变得很简单;
微软因为VJ++曾经赔钱给sun,相信不久必将像对付netscape那样搞定java;
不过,开发工具除了borland还有IBM提供的WebSphere Studio Application Developer在各方面都超过了JB。
以我的愚见,java暂时还能盛行几年,但当.net被推广时就是它逐渐消亡的时候,毕竟客观的讲,微软的实力太强大。
微软因为VJ++曾经赔钱给sun,相信不久必将像对付netscape那样搞定java;
不过,开发工具除了borland还有IBM提供的WebSphere Studio Application Developer在各方面都超过了JB。
以我的愚见,java暂时还能盛行几年,但当.net被推广时就是它逐渐消亡的时候,毕竟客观的讲,微软的实力太强大。
|
我同意,谁也不能忽视了微软的存在。鹿死谁手真的很难说。
|
不错,基本同意你的看法。
|
不错!
|
相信MS一定会超过的,老大的地位很长一段时间无法动摇。
|
我从.net转道java
开发工具JB确实太难用,不支持鼠标滚动、没有行号、界面死板
和vs.net没法比
不过.net的东西很easy,学java为了提工资,呵呵
开发工具JB确实太难用,不支持鼠标滚动、没有行号、界面死板
和vs.net没法比
不过.net的东西很easy,学java为了提工资,呵呵
|
没用过c#,看来只能瞎说一气了:
c#有指针,是的,java里要是增加指针的话那就不是java了,是另外一种语言了。
jit?hotspot好像比它“高深”一点吧?
开发工具莫,别忘了作界面可是m$的看家本领。
c#到底怎么样,请给一个成熟的成功的典型案例看看,否则……
c#有指针,是的,java里要是增加指针的话那就不是java了,是另外一种语言了。
jit?hotspot好像比它“高深”一点吧?
开发工具莫,别忘了作界面可是m$的看家本领。
c#到底怎么样,请给一个成熟的成功的典型案例看看,否则……