主题:【原创】开源的Eclipse(一) Eclipse的历史 -- 可爱的中国
我个人认为,ECLIPSE与M$的Visual Studio在易用性上的差异还是比较大.而且Eclipse这样的模式能不能成功我还深表怀疑.Eclipse把N个完全不相关的工具全集成在一个平台上,又要保证互相之间不影响,又要保证各自的工作效率,这几个目标本身就不容易实现.加上各模块的开发人员,对于易用性的理解也不够好.现在用Eclipse最大的理由只有一个了,就是跨平台开发了。
我个人觉得,这对于服务器端是个很好的协议。但是用在Eclipse上,不好说。对于IDE工具,我觉得最关心的应该是人机工程,就是让程序员觉得好用才是硬道理。
QNX是做嵌入系统OS的,并且是硬实时的。在很多硬实时嵌入系统中都是它,比如工业控制,甚至你坐的电梯里用的都是它。其主要竞争对手是VxWorks。
bundle和bundle之间的关系太复杂了,关是一个classpath就绕晕了无数人。
当初我曾经想用osgi构建我们的系统底层framework,后来觉得恐怕做出来也难维护,懂osgi的人太少了。
这话不是我说的,是eclipse之父的一篇论文里说的。
最初的eclipse并没有使用osgi模型 :)但是其机制非常类似。
应用真正到了一定规模,模块之间的依赖管理和对不同运行时环境的需求是个非常头痛的问题。
一般的东西对这个需求其实不高,没必要用大炮打蚊子。
已经不是单纯的IDE, 或者说它的目标不是提供一个单纯IDE,而是一个Java Rich Client 的平台,甚至于它要扩展的服务器端的应用。这是它切换到OSGi的目的。
现有的项目越来越多的是和IDE 无关,而是提供很多应用开发框架,IDE更象一个入门的鱼饵,希望用户在使用这个IDE以后,就会停留在这个平台上,使用它的其他框架做开发。
好处是一个平台提供了绝大部分的框架。
坏处就象你说的,IDE的用户易用性和项目之间的协调。
还有Eclipse的CDT,很好用,Borland和Eclipse比根本不是一个档次的IDE。
其实这些模块你可以用也可以不用,比如Tomcat你就可以选择在Eclipse里面装,或者在外面另外装也可以,listening port对了就行了。这些模块没有什么非用不可的地方。
主要的问题是,为了把Eclipse变成一个开发平台,而不是IDE,在底层增加了很多额外的功能,比如OSGi的导入。 3.x 之前是不用OSGi的。 这样对应单纯的IDE而言未必是好处,带来了额外的开销和复杂性。比如内存的占用,性能变差,额外的Bug等等。而且相对而言,对IDE本身的关注程度也会下降。
我曾经比较过2.x 和 3.x, 2.x 的速度那是象飞一样的快。 但是作为一个应用开发的平台,Eclipse确实带来了很多好处,降低了开发的门槛,以后我还会具体的谈到,如果我不学萨坑的话。
这种机制,确实能为它载入的任何class提供一个隔离的运行时环境。因为它可以控制自己所载入的类对其它类的可见性。这是osgi的基础,也是所有java应用服务器的基础,你可以将它和操作系统的程序启动器做做对比,操作系统靠进程这一内存边界控制各程序进程的隔离。但classloader的控制要灵活得多,是控制其可见性,可以根据各种条件来动态判定某个模块见到classloader允许它看到的类,比dll要灵活些。eclipse里同一插件的不同版本可以并存并且同时使用,就是来自这种能力。
原话我记得是在eclipse的文档区,里面有个访谈录。大概是5,6年前eclipse刚红的时候,不知道现在还在不在。
可以将osgi看作一种类操作系统的东西。最近看到浏览器的发展趋势也有这个倾向。
嗯。这一点就是我觉得别扭的地方。其实我用它只是想找个好点儿的IDE而已,但显然ECLIPSE目标不止于此。
当初EClipse不用SWING而是SWT,就觉得肯定这背后是IBM指使的想给SUN使坏。呵呵。
等着兄弟后文,国内深度分析Eclipse的文章少。
另,参考一下,MS也有个类似的项目,但目标非常单纯,Visual Studio 2008 Shell,简单的说,就是免费提供Visual Studio的壳,可以自己把要的功能整合进去,但MS整的这个东西目标非常单一,就是给各种语言提供IDE外壳,例如Python,Ruby目前都有用Visual Studio 2008 Shell的项目。它的雄心没EClipse这么大。
很明显你不懂java里面classloader的模型,IBMDW里面有很多classloader的介绍,你自己去看看。
classloader是java最最基本的东西,JVM启动第一件事就是启动bootstrap。classloader本质就是dynamic linker(again,你如果不懂自己找书看)。
我从你的第一句话就知道你说的是URLClassLoader这个class,对不对?倒退10年,1998年,你惊叹一下还显得很cool。10年之后就显得很那个啥了。
安装了,运行了,发现的确是比以前的版本要舒服一些,但是似乎不支持中文。程序中的中文字符全乱码了。
Eclipse对中文支持很好的,只是要自己配对内码。
你的文件的编码是?对Unicode支持是内置的才对, 你把文件导入到Eclipse 右键改一下项目的编码试验一下。不行报个Bug@ https://bugs.eclipse.org/bugs/