星期四 十月 25, 2007

不知道大家使用netbeans都采用哪种配色方案?以前我都是使用缺省的配色方案,这种方案看起来也不错,就是太耀眼。想找一个暗些的方案,今天就试了试其他几种。Norway Today的确是一个不错暗色方案...

[Read More]

星期二 十月 23, 2007

按时发布了:

http://www.netbeans.org/community/releases/60/index.html

不过网站上没有做任何声明。

星期四 九月 13, 2007

netbeans team准备在下周一正式向外界发布beta 1版本,但是他们的build已经出来了...[Read More]

星期二 十一月 28, 2006

语义着色允许根据源码的语义信息使用不同的颜色。使用着色能让你随时识别当前你所做的操作。

字段(fields)、参数(parameters)、变量(variables):

这肯能是最重要的着色。能让你随时知道你操作的是字段、参数还是局部变量,帮你识别你是否修改了class的状态或者对当前的方法有没有副作用。

静态成员(static members):

使静态成员区别于实例成员(缺省使用斜体)。如果你发现一个Collection变量是斜体的,在往其中添加对象前,你就要三思了,这样就有可能造成内存泄漏(Strong reference一直被hold,是内存泄漏最经常见的情况,译者注)。

弃用成员(deprecated members):

使用弃用方法或者字段或者类,这些引用/调用会被删除线标注。以此来警告你所写的代码依赖与已经弃用的代码。

未使用成员(unused members):

未使用的私有方法、类、变量及字段会以灰色(缺省,可以设置)显示,提示你去掉这些声明。

未使用的包引入(unused imports):

未使用的包引入语句以灰色(缺省)显示,并伴有警告提示,点击小灯泡或者选择{ALT+ENTER}组合键来纠正。

Javadoc:

Javadoc中的HTML代码采用语法着色提高可读性。

其他着色:

还有其他许多语义着色。比如突出抽象方法,同步方法,本地方法,autoboxing等等。

尽管NetBeans不断的进步,许多 Eclipse用户也表现出了转移到NetBeans的愿望,但对于他们来说,包括我在内,对NetBeans仍然有许多不满的地方。我统计了一下开发者(当然是真正使用过,或者试图曾经switch的eclipse用户)对于netbeans目前有一下几大不满意的地方:

1.最大的不满莫过于编辑器。这其中包括quick fix, (smart) code completion, refactoring, code formatting(speed), automatic imports, 还有其他诸如surround with等等虽然小但是eclipse做的很精致的地方。

2.即时编译(Compilation on save),这一直是eclipse开发者引以为豪,eclipse fans们狂热爱好eclipse的一点。这一点eclipse认为它是天下独尊,连IDEA也不放在眼里。但说句实在话,这是一个仁者见仁、智者见智的功能,并不是所有人都人为这样好,我起码是反对这一功能的人。这种功能也许在工程比较小的时候是比较好的,但工程大了,比如有上百或者上千工程文件的项目,这一功能就会变成缺点。最明显的一点就是,任何一点小小的改动保存之后,你就只好等在那儿,等所谓的后台任务完成,这时整个IDE就freeze了。这一点真的让人发狂,这也是许多eclipse爱好者在埋怨eclipse为什么变慢的真正原因。Compilation on save带来的好处就像SWT带来好处一样,只是一个eye-candy的东西,不具有实际的内涵。

3.速度。这一点随着netbeans速度的增加,加上eclipse速度的随着插件的膨胀而变慢,已经越来越被用户理解。实际上,如果客观的评价的话,netbeans的速度已经超过了eclipse。单独的eclipse SDK速度也许超过了netbeans,但是netbeans已经bundle太多的功能,如果在相同功能的前提下进行比较,eclipse显然速度要比netbeans慢得多。

因此总的看来,netbeans真正让人不满得地方只有它的editor。不过这也可以理解,netbeans为了赶超eclipse,在4.0之后的版本,拼命的加入了太多的功能,而没有对这些功能进行细化的打磨,而eclipse已经对它的平台打磨许久。所以应该给netbeans时间。

可喜的是netbeans已经承诺在6.0中重点提升编辑器和进一步优化速度,从netbeans的官方网站中,我找到了netbeans准备在6.0提供编辑器的改进。这个文档是以简单的User Guides的形式提供的。看了这份文档之后,让netbeans用户特别振奋。如果netbeans 6.0实现了这些功能,它不仅仅是赶上了eclipse编辑器功能,实际上已经反超了eclipse,甚至IDEA。

这篇文档的位置在:

http://wiki.netbeans.org/wiki/view/Java_EditorUsersGuide

打算在之后的几篇文章中陆续将这片文档翻译出来,与大家分享这份惊喜。

现在已经开发出来一个简单数据库设计工具,嘿嘿,附带实现了一个属性表实现。不过说实在的,NetBeans插件开发的文档实在太少,害得我不得不经常研究NetBeans源代码,一干就干到凌晨两点。

昨天晚上我睡得很晚,两点半吧,由于一个问题一直没有解决,心里念念不忘,结果天快亮的时候做了一个梦。我梦见我回家休假去了,在家已经过了十几天了,突然想起来我好像在办公室里养着一条狗,临回去的时候,我把它拴在工位上。这还了得,还饿不死啊。我心急火燎,急着想回北京解救我的狗去,但当时好像是深夜。不管怎么样了,我还是要回火车站去买票回去。我这一急着往外跑,一下子急醒了。忽地坐起身来,淌了头大汗。可这下坏事了,我觉得自己强迫症又患了,仔细想自己是不是真的养了条狗,别已经落在哪儿了,忘记了?前不久还在嚷嚷养条狗做伴吗?想了半天,也没理清思路,强迫自己忘了这事,起床上班去。临推门出去时,心中冒出一个好笑的想法,要不要把我家的小强都喂一喂再走。这一犹豫,推门就出去了,到了楼下突然想起来刚才那么匆忙,连门也没有摸一摸,拧一拧门把手,会不会没有锁门,要不要再回去确认一下。可这已经下来,再要回去起码还要上二十搂。更何况跟我一块下来的大妈会不会觉得我很奇怪。就这样,我足足犹豫十五分钟,最后决定还是上去看看。门不出所料已经锁了,可是我就是觉得远离门一步,心里就进一虚步。我真想背着门上班去,你就是我梦中牵肠挂肚的那条狗?

今天一天精神不集中,试验证明我在睡眠不足的情况下,强迫症犯得更厉害。看看我这文章写,就知道涣散到多利害了。

CodeGear公司(Borland的子公司)宣布JBuilder 2007即将面市,并于21号举行了吹风会,CodeGear的Joh Harrison主持了这次会议。会议分为两步分,第一部分产品的构思和背景,第二部分是产品现场演示。

JBuilder 2007是JBuilder自诞生了最大的变动,由原来的独立产品转到基于Eclipse平台的产品。但是许多与会者对这版JBuilder感到失望,纷纷叹息,这还是JBuilder吗?

下面是Tim Anderson,一个JBuilder用户,在参加吹风会后的感想。读了Tim的博客后,我想JBuilder真应该将其新版的JBuilder构建在 NetBeans平台上,NetBeans和JBuilder有着很多相似性,起码使用Swing开发,开以很简单的将Matisse和JBuilder 原来的界面设计工具结合起来,这样界面设计工具肯定非常受用户欢迎的。

Tim Anderson的博客文章:

今天我参加了为JBuilder 2007举行的吹风会。CodeGear的Joh Harrison主持了这次会议。会议分为两部份,第一部分是这版产品的构思和背景,第二部分是现场产品演示。请注意我没有亲自试用产品,Jon仅仅演示部分功能,因此下文都是我的第一印象。

我们知道这版产品是Eclipse,而不是JBuilder。我怀疑有许多JBuilder 2006的代码在里面。CodeGear所做的只是把新的EJB和Web服务可视化编辑器集成到Eclipse中去,另外添加了一些好像基于 Together可视化建模技术的工具,Borland公司性能优化和调试工具的OptimizeIT,以及对某些开源产品(Subversion, Bugzilla, XPlanner, JBoss, Apache Continum)的支持和集成。那些习惯使用PrimeTime,老JBuilder IDE的人,为了使用改产品,必须学习Eclipse的使用,而这是他们不太可能熟知的。起码需要将现有的JBuilder工程进行导入。

Harrison解释说CodeGear不想复制现有的Eclipse工程功能,更愿意基于它实现。他将这描述为“构建于纯Eclipse环境之上”。CodeGear公司试图避免产生Eclipse私有化,尽管JBuilder 2007是封闭代码产品,因此某种意义讲,这只不过是文字表述而已。

这样做的一个直接后果是JBuilder 2006中优秀的Swing界面设计工具没有了,取而代之的仅是Eclipse不成熟的Visual Editor。还有别的功能丢失,没有J2ME的支持,没有Borland Enterprise Server(Borland公司的J2EE应用服务器)的支持。为了弥补,JBuilder 2007附带了JBuilder 2006。

另外一个令人失望的倒退是JBuilder 2007起始只有Windows版本,尽管CodeGear最初目的也提供Mac OS和Linux平台的版本。

JBuilder 2007最令人感兴趣的是工程管理功能,很不幸的是只有企业版提供。Harrison没有演示这些内容,只是展示了一些屏幕抓图。Project Asist支持集成上文提到的开源ALM产品协作开发,而Project Portal用来管理小组进程。Project Portal基于一个开源Portal框架LifeRay。

我怀疑CodeGear是否能顺利销售该产品,但有希望。从Q&A环节可以看出Eclipse拥有不少的用户,担不是所有人都满意。问题包括依赖管理,在企业内维护一致和可靠的开发环境的困难等问题。因此仍然存在提供一个商业化版本Eclipse的空间,特别是能提供一个强有力的更新工具,处理好 Eclipse插件依赖关系的版本。我意识到Eclipse有自己的更新管理器,但是显然并不怎么好。

也就是说,我怀疑该产品能否使用JBuilder这个名字。官方说法是这只是一个过渡JBuilder,就像原来基于Dephi的IDE转换成纯Java版本的一样。这纯粹是胡说,这些年我跟踪过所有的JBuilder版本,没有一个版本变化如此剧烈。

该版本显然已经在开发中,并且将在年底发版。

最近对NetBeans插件开发狠感兴趣。我原来就对Swing特别喜欢,因此对于像NetBeans这样基于Swing的IDE有些偏好。以前没有使用NetBeans时就开发过以下几种Swing的程序:

1.界面设计工具,包括界面设计器、属性页、布局器管理等。

2.类似Excel的电子表格,但迄今为止还没有应用到像样的软件上。

3.浮动窗口框架(Docking Framework),利用它自己曾作过一个简单的Application Framework。

4.流程/模型设计器,这个和界面设计工具有些类似,但多了实体之间的关系,曾作过项目工程的Reverse Engineering程序。

5.图形、图象、二维及三维处理。这个东西做了很多,很小的东西,始终是凭兴趣爱好做,积累一些经验。

Swing的良好架构和设计模型让我有能力实现这些功能,而如果采用SWT的话,这可能就很困难。

以前这些东西都没有良好的保存下来,究其原因是我缺少一个良好的应用程序框架,开发这些应用程序共性的东西就消耗了我许多精力,最后虽然核心组件做成了,却往往因为工作量太大而半途而废。

近来对NetBeans的学习让我了解它还有一个很好的应用程序平台和开发环境,于是乎,我决定将以前的一些东西再拾起来,集成到NetBeans平台上,以保存万年,作为以后生活的回忆,呵呵。

有人可能问我,人家都有这些东西,而且做的比你好的多,你为何要re-invent the wheel,原因很简单,我喜欢自己学习创造的过程,别人东西很好,可技术不是我自己,我就无法享受创造的快乐。

突然想起反映论,任何艺术创作都是反映论,艺术带来的享受不仅仅是艺术本身给鉴赏者带来的愉悦,更重要的是创造者在创建艺术品时给自己带来精神上的愉悦。艺术作品如果失去双方的反映,就失去了存在的价值。如果艺术家在创作完艺术作品后,却找不到知音,其痛苦可想而知。凡高肯定就是这样的。

扯远了,我还是希望编程能变成艺术,就像文学创作一样,不过我创作的东西往往没有人欣赏,于是乎我就经常自娱自乐,想想这儿自己这种解决方案简直是天衣无缝,想想那儿,还是写的疙疙瘩瘩,让人不舒服,如何将它打磨打磨呢,如何找一条创造性的解决方案,这就是我经常冥思苦想的乐趣。

总之,我下定决心了,准备把它们搬到NetBeans上去。

经常有人说他不喜欢NetBeans的原因就是NetBeans是Swing开发的,Swing的速度慢,所以NetBeans不可避免得就慢。其实这是一个严重的错误,Swing并不比SWT慢,我在Swing专栏中有篇文章:SWT已经日薄西山了,就讨论这个问题。现在NetBeans得益于 Swing速度的大幅提高,加上本身的重构,速度已经有了惊人的提高。下面是我最近在我的破机器上对比的结果:

1.Eclipse SDK 3.2本身不带任何插件,NetBeans5.5本身除了基本功能,带有数据库支持、版本控制、界面设计器、J2EE企业级应用支持开发、插件支持开发、 Web支持开发等功能下,两者都不打开任何工程,Eclipse的启动时间是9秒钟,而NetBeans的启动时间也是9秒钟。这种进步简直让人惊叹,给那些说NetBeans的当头一棒。

2.运行速度。按照上面的配置,在运行一段时间后,NetBeans仍然响应非常迅速,即使在调试状态也没有滞后的感觉。Eclipse却往往会出现僵死的情况,屏幕失去相应,出现白色屏幕。这在随着项目的大小和打开项目的多少明显差距变大。

3.NetBeans的关闭速度也要Eclipse的更快,当然这一点估计没有太多人在意,但起码说明了NetBeans速度提高的惊人。

内存使用上,NetBeans运行一段时间后稍微高于Eclipse,大概10M-30M之间,这主要使用Swing占用了内存空间,而Eclipse使用的SWT直接使用操作系统组件,节省那从用量。当然各人测试结果可能不一样,但一直的结论是NetBeans的速度大大提高,却是有目共睹。

NetBeans这个名字经常能引起我的遐想。什么叫Net Beans,网络豆子?这应该是它对Java的确切反映。Java不折不扣是所谓的网络豆子。Java是爪哇岛上一种咖啡的名称,咖啡中国人虽然不经常喝,但想必都知道咖啡是咖啡豆加工出来,所谓Java Beans就是指Java咖啡豆。

说起咖啡豆,老想起小时候吃的一种糖,特别好吃,应该就是巧克力豆,但一想起来,就让我觉得那就是咖啡豆,原来我很早以前就接触到JavaBeans了。

为什么是网络豆子呢?这可能就与Java的网络编程语言特性相关的,面向对象的语言又能使我大脑经常浮想联翩,面相对象嘛,就是满天飞的圆圈圈,而网络又是这些圈圈豆豆之间的网丝,将他们联系在一起,其中一个节点发生震动,网络丝就会将这些震动想波一样传出去,我想这也是当初JavaBeans事件模型的创作根源吧。这简直是天才的设想,非常有艺术性,而又将极为复杂的对象世界的模型描述的如此简单。豆豆是粒子,网络以及事件的传播是介质波,这不是波粒二相性模型吗?

要说起来,我总觉得Java的成功有相当的原因归公于它的名字:咖啡,让我想起:提神,清脑,休闲的生活,温馨的家,美丽的椰岛,异国的风情。要不说James Gosling不是丑小鸭,他真是天才,也许我们能创作出像Java这样的语言,但绝对没有天赋想出这样一个美妙无比的名字。NetBeans加深我了这个印象,我们的社会,我们的大脑,我们的宇宙的模型不就是这样的吗:网络连起来的豆子blogs.sun.com/images/smileys/smile.gif" class="smiley" alt=":)" title=":)" />

你说这不是扯的么

This blog copyright 2009 by williamchen