论坛首页 Java版 企业应用

对java优秀开源项目相应.net版本的忧虑

浏览 15569 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2005-08-27
无意中搜索到的,虽然知道有不少Java开源项目移植到.net了,可是却没料到如此全面

http://www.gotdotnet.com/workspaces/workspace.aspx?id=6666274d-a3e5-4e7b-b0cb-368dbb2c4bca

spring.net http://www.springframework.net
nhibernate http://nhibernate.souceforge.net
log4.net http://log4net.apache.net
nunit http://nunit.sourceforge.net
nant 0.85 http://nant.sourceforge.net

如果现在转到.net,常用的开源项目基本都有了。

虽然本来我们应该抱着开放和共享的态度,但是还是感到一丝丝的忧虑,在c#仿造java的基础上,众多java优秀程序员们,创造出来的优秀开源项目,在开放和创新的基础上,被ms的程序员们,以保守和仿造的伎俩,一一迁移过去。

而且,这个并非ms的官方行为,而是民间自发的。这样的情况,会不会导致ms在.net和java的竞争中,取得不言而喻的优势呢?java的开放性,会不会最终成为敌人总结自己的双刃剑?一方是毫无保留的正大光明的开放,一方是保密的同时不断拷贝人家的成果,这种竞争公平么?

从技术角度来讲,这样的想法未免有点小家子气,其实开放也多,获得也越多,水平提高也越快。但从市场角度就非如此,市场竞争是赤裸裸的,当今的世界也是弱肉强食,而且微软使用这种手段也是炉火纯青了,不得不忧虑。

另外还有一个注意点,基本上,被移植的项目,都是在java应用领域已经经过考验的相当成功的优秀项目。可以看到,首先在表现层,ms对sun是有绝对优势的,没人去移植jsf,java的成功,始终是在业务核心底层。其次,osworkflow是个很成功的实用性很强的工作流引擎,也没有人去移植shark,尽管它符合所谓规范。
   
时间:2005-08-27
这里得确有个创新和模仿的问题,在移植中,更多的是模仿,在符合.net的习惯的前提下,尽量保持其一致性。
我们在移植osworkflow的一个原则是紧跟osworkflow cvs的更新,因此,现在的引擎代码是基本同现有java版本达到功能一致。当然,由于投入精力不够,我们还有大量的工作要做,主要是清理文档代码注释,以及自动迁移的一些东西,如java的函数一般都是virtual的,和一些先期迁移时认为不重要的东西等。

相信.net 2.0推出后,迁移会更加方便,主要是匿名方法可以取代java匿名类,这样像spring的template的移植有时会比java更优雅 http://bbs.dotnettools.org/activeubb/NewsDetail.asp?id=4349

在.net中开发,很多事情比java中要简单,因为其api的丰富性,比方说ado.net vs jdbc,asp.net vs jsp,因此java中的很多框架并不需要,也正因为如此,导致有些项目移植并非顺利或同java版本保持一致,如spring.net 的web,data等。其实,跟踪类似像spring这样大框架的移植过程,还是很有意思的,现在spring.net 在ioc,aop基本已经做的很好,但在实用性功能上,像web,data却没有进展,反而被castle 这种后来者居上了


不过至于担心,我想是不必要的,因为.net 社区和java 社区两者差别实在很大,比方说workflow一块,在.net 中,以前就很少有开源的,当ms 的windows workflow service(这个已经在测试了)一出,做的人就更少了。类似的如同msbuild 至于nant,vs 内置的测试功能,或是Indigo中也会有ioc类似的功能。 与sun不同,ms是个强势的公司,sun 提出标准,但实现基本都做不好,而ms不同,吸收快,而且做的好,如同最近对ajax 的反应,如果在pdc上测试版能推出,.net中ajax的开源项目就没有做下去的必要了。这个观点很难用语言表达:)
   
0 请登录后投票
时间:2005-08-27
如果什么时候Java开始从dotnet进行开源项目的移植,你才应该开始担心。
   
0 请登录后投票
时间:2005-08-27
开源项目,重要的的是其中的思想。这一点来说,本质上与实现无关。
当然,实现过程中,不同语言确实会对架构思想产生影响。模仿实现是会带来不少问题,不同语言环境可供使用的资源不同,势必造成实现的困难和使用上的差异。
了解相似项目的架构思想,进行针对具体语言环境的具体实现,对存在的问题发现新的解决方法,才算是移植成功。

对于java项目移植到.net平台下,毕竟两者是相似的,实现起来的难度降低不少,主要是在细节方面更要符合.net的习惯,才能容易被人接受。
   
0 请登录后投票
时间:2005-08-27
是呀,思想最重要。不喜欢移植这种说法和做法,“融入”会更好一些。
   
0 请登录后投票
时间:2005-08-28
.NET与Java的竞争,其实根本就是一个伪命题:没有任何一个non-trivial的项目是根据技术平台来选择方案的。企业应用领域,唯一的衡量是操作系统:Linux?Unix?mainframe?或者Windows Server就够用?操作系统定下了,然后再选一个可用的技术平台。所以,不管.NET或者Java技术上有多好或多坏,他们整体水平就在这里了,选择或不选择他们,跟技术根本无关,只和选择什么OS有关。
   
0 请登录后投票
时间:2005-08-28
gigix对Windows上面舞弄Java有什么评价呢?不知道这样干的公司多不多?
   
0 请登录后投票
时间:2005-08-28
gigix 写道
.NET与Java的竞争,其实根本就是一个伪命题:没有任何一个non-trivial的项目是根据技术平台来选择方案的。企业应用领域,唯一的衡量是操作系统:Linux?Unix?mainframe?或者Windows Server就够用?操作系统定下了,然后再选一个可用的技术平台。所以,不管.NET或者Java技术上有多好或多坏,他们整体水平就在这里了,选择或不选择他们,跟技术根本无关,只和选择什么OS有关。


和企业旧有系统以及销售人员的攻关功力有关系才是真的!
   
0 请登录后投票
时间:2005-08-29
有啥子好担心的,JSP移植ASP的思想,JSF移植ASP.NET的思想,也没看谁把谁给吃了。


不过只有一点是肯定的: Sun的没落,忽忽。
   
0 请登录后投票
时间:2005-08-29
gigix 写道
.NET与Java的竞争,其实根本就是一个伪命题:没有任何一个non-trivial的项目是根据技术平台来选择方案的。企业应用领域,唯一的衡量是操作系统:Linux?Unix?mainframe?或者Windows Server就够用?操作系统定下了,然后再选一个可用的技术平台。所以,不管.NET或者Java技术上有多好或多坏,他们整体水平就在这里了,选择或不选择他们,跟技术根本无关,只和选择什么OS有关。



一般都是混合平台的多一些。
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐