Google
 

Sunday, January 21, 2007

Q:为什么Host上的应用开发优先选择Java?

大家注意到很多子项目的开发都优先推荐Java作为首选语言.这引起了很多年轻朋友们的激烈争辩,熟悉Windows开发的人认为选择C#会好一些,而做嵌入式方面的朋友,又不认可Java在自己这个领域的应用.本文希望能对这个问题作一些回答.

尽管相比于业务而言,语言和工具的选择比较次要,曾有人形象的说:一片树叶到了高手手中,也能成为致命的武器.所以我们不应该过度在意语言的选择.

这种观点有其正确的成分,但是,就一个具体的项目而言,是不能在不同开发环境之间摇摆的.更关键的是,我们当中的大多数人,精力有限,Focus到一种工具或者一种平台上,有助于我们积累经验和交流.

下面是我借鉴google搜索的结果,据说这种做法被某咨询公司用作市场占有率调查,准确度非常高 :)

搜索关键字   数量    搜索关键字   数量   
Java语言...... 1,030,000 ...........C#语言 ........ 560,000
Java工具 ..... 2,260,000 ...........C#工具 ..........599,000
Java开发工具 1,030,000 ........C#开发工具.... 759,000
Java应用 ......7,820,000 ...........C#应用 ...........644,000
Java开源 ....1,300,000 .............C#开源 ...........974,000
Java........... 285,000,000 ..............C# ...........70,600,000

结论:C#网络资源大约是Java的 1/4 - 1/10.注意到我为了确认国内的情况,大量用中文搜索词.因为国内号称是Microsoft天下.我希望这个搜索对比能引起程序员朋友们的注意.
我想,这个结果应该能够反映这两种语言在现实世界中的地位.

此外,优选Java作为开发语言还有如下原因:

- Java有强大的开源社区支持,可以提供从操作系统/开发工具直至最终应用全系列的产品.而Windows世界中,开源的精神相对要欠缺很多.
- Java的很多资源可以"Free"获得,而Windows C#等却不可以,例如Java世界中的Eclipse可以做开发环境,非常优秀.这对于降低学术界的工作成本是非常必要的.因此,我们不难发现和理解,国外的大学中开源产品和非windows产品应用极为普遍,我们应该思考为什么.过去,盗版在中国的大学中盛行,而未来,license和费用将成为学术界的一个不得不认真对待的问题.毕竟,作研究的不会有很多钱.在这点上,我们应该学习国外大学.
- 国外学术界有使用Java的传统,网上可以找到大量的学术资源,例如各种算法实现,便于与国外同行作对比.
- Microsoft并不是一家技术上容易合作的公司,但愿我对它的这个评价是错的。
- 嵌入式系统领域Microsoft也不占统治地位,特别是在深度嵌入领域

综上,我希望未来Host上的应用开发能够以Java为主,可以选取Eclipse平台,GUI部分可以用Eclipse提供的SWT和JFace,这样我们可以充分利用国际上已有的资源,并且回避掉许多商业软件的license和费用问题.毕竟,我们不能要求我们的每一个位项目参与者都去买一套商业软件.而在一个公开的项目中采用盗版软件将是非常尴尬的事情.

补记:
参考著名杂志《国际电子工程EETimes》2007.03的一篇文章:
Java在嵌入式系统应用中迎来发展的好时光

说明:虽然现有的worldview客户端程序版本是采用C#开发的,但是我还是非常希望能够看到一个基于Eclipse和Java的新平台出现,这将赋予研究者们更多的资源
.

No comments:

Google