java是一个后起之秀,以java做为开发语言的开源项目很多,如struts,hibernate,jdo,spring,eclipse,SWT等等。面向对象技术的提出与流行,使java受到了众多开发人员的热爱,面向对象技术,应用框架的实现,越来越离不开java语言,或者说,java语言是一个很好的实现工具。各种领域的设计模式,各种应用框架,都极大地丰富了java社区。
Linux是一个开源的操作系统,由于java的跨平台性,java程序也可以运行于Linux平台上,而java也可以实现特定于Linux的程序,由SWT就有基于Linux下GTK 的版本。
java语言与Linux是不矛盾的,它们更是统一的关系。Linux提供了java程序得以运行的一个基础。它们的搭配可以实现企业级的解决方案。在学习java语言的同时,学习Linux的系统管理是极有帮助的。
C语言做为原来的开源社区广泛使用的语言,目前来说,它所占的开源项目的份额是最大的,不过,所占的份额正在越来越多地被C++/Java所侵占,另一方面,人们会推出对原来的C程序进行封装的C++版本,如GTK+/Gtkmm/Bakery。利用新技术进行软件开发,又能很好地复用原来C程序写的程序,是人们所要解决的一个难题。而总的趋势是,语言在进化,我们不仅是学会C,更要学会C++。
做为编译工具,GNU编译工具链目前还是很流行的工具。而在C/C++和java语言中,两者有着相似之处,C/C++有Makefile,java有ANT。
同时,java语言的发展也对C/C++提供了支持,如Eclipse平台提供的CDT的C/C++开发环境,Borland的C++ Builder X也是以java语言做为开发语言,这在一定程度上说明了java语言与C/C++语言的融合与合作。C/C++追求高性能,而java更着重于规范性,统一性。
通过java语言的学习,而使我们更深刻地了解到C++语言的强大,更正确,灵活地去使用C++的面向对象机制。做为面向对象的语言,当真正掌握着其中之一时,一定意义上说也意味着掌握了另外一个。
因此,Linux下的C程序员,现在同时掌握了C++,java语言,也就不足奇怪了。