当前位置:  技术问答>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)的学习水平问题,这写看法肯定有错误,还希望大家能指出和探讨,但是,不接受辱骂和恐吓。

|
每一种语言,都会有上升期和没落的阶段

我同意你的看法,如果java不发展,肯定会被MS的.net超越;同样的,.net不发展,永远只能落在java后边。


|
我觉得,微软在操作系统上的优势使它走JIT这条路变得很简单;
微软因为VJ++曾经赔钱给sun,相信不久必将像对付netscape那样搞定java;
不过,开发工具除了borland还有IBM提供的WebSphere Studio Application Developer在各方面都超过了JB。
以我的愚见,java暂时还能盛行几年,但当.net被推广时就是它逐渐消亡的时候,毕竟客观的讲,微软的实力太强大。

|
我同意,谁也不能忽视了微软的存在。鹿死谁手真的很难说。

|
不错,基本同意你的看法。

|
不错!

|
相信MS一定会超过的,老大的地位很长一段时间无法动摇。

|
我从.net转道java


开发工具JB确实太难用,不支持鼠标滚动、没有行号、界面死板

和vs.net没法比

不过.net的东西很easy,学java为了提工资,呵呵

|
没用过c#,看来只能瞎说一气了:
c#有指针,是的,java里要是增加指针的话那就不是java了,是另外一种语言了。
jit?hotspot好像比它“高深”一点吧?
开发工具莫,别忘了作界面可是m$的看家本领。

c#到底怎么样,请给一个成熟的成功的典型案例看看,否则……

    
 
 

您可能感兴趣的文章:

  • 有c#了java是不是没有前途了?我该不该学java?
  • 听说C#已经有赶超java的趋势,java即将风光不再???
  • 请教各位,是JAVA有前途还是C#有前途?多谢!
  • 比较一下:JAVA和C#
  • 请问在工作岗位的朋友!使用java开发的公司对c#的态度如何?
  • 学java好,还是学C#好?
  • 一个在C#和java之间犹豫不决的人
  • Sun认为C#不会替代Java
  • c#出来后,java会受多大的冲击?
  • C#会让我们这些java程序员下岗吗?
  • 希望了解java,能推荐一个好的开发工具和一本好的入门书籍吗?我以前直到现在都在用VC,接下来想在C#和java中选一个做为第二语言。
  • js substr,substring与java substring和C# substring的区别解析
  • 浅谈Java与C#的一些细微差别
  • java与c#的语法区别详细介绍
  • (来者有分!!)关于下一代程序设计语言C#和Java的讨论
  • C#调用Java类的实现方法
  • C#调用Java代码的方法介绍
  • C#匿名委托和Java匿名局部内部类使用方法示例
  • 《Java 与模式》c#的部分改写(I)
  • 高分求c#和java精彩文档
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java学到什么水平,可以去应聘JAVA程序员?希望大家踊跃讨论!!!!!
  • 我迷惑:做jsp,servlet算不算真正的JAVA程序员?要达到JAVA程序员的标准都要做哪方面的程序?
  • 在linux平台下的软件开发 需要什么样的程序员多一点啊 C.C++ 还是JAVA程序员阿???
  • 卖全新JAVA书,东莞东湖花园交易:<java 服务器高级编程>Wrox程序员参考系列,机械工业出版社50元,<Enterprise JavaBeans 第二版>O're
  • 程序员JAVA版还能出吗?
  • 请问高级程序员有没有考java语言的?
  • 请教所有java程序员和准程序员,说说吧!
  • 当XP和IE6.0不再支持java,java程序员该如何做?
  • JAVA程序员的薪水???
  • java程序员学习linux
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位大虾,能否给兄弟提供一些自己认为比较好的关于java学习的电子书刊的下载地址和关于java学习的心得体会?欢迎讨论
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 请问java程序中的import为什么有的用java.….*,而有的又用java.….…,有什么区别吗?
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmname定义及介绍
  • 简单说说Java SE、Java EE、Java ME三者之间的区别


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3