全面转向Eclipse了

    很长的一段时间里我都是在用eclipse开发,然后再用jbuilder进行调试。原因很简单,eclipse的web开发套件我用的是WTP。WTP这东西有的地方实在是做的太差了。如果你想重头开始个web项目那还好,直接用WTP的向导生成个WEB工程就可以了。但如果是现有的项目,那就没这么方便了。WTP没有提供一个很方便的功能来对已有工程增加wtp的支持,你只能手写。
    以前进行过一次wtp的配置,很不幸,失败了。因此一直懒研究,照旧用JB调试程序。
    最近因为研究springside的原因又研究了一下wtp的配置。呵,发现挺简单的,直接新建一个wtp工程,然后将配置文件改改就可以了,配置文件里属性的含义也都还算清楚。真有些不明白当初怎么会配置不成功。
    在java构建中可以添加文件名过滤功能,WTP却似乎没有相关功能,web目录下的所有文件都被复制到发布目录。
    eclipse的校验真的很讨厌。在工程建好后老是要校验个半天。今天是让它校验了N多遍也没成功完成过一次校验,简直要将人被逼疯,最后将校验关闭后才顺利搞定。
     eclipse的升级也很是个问题。虽然可以在线升级,但在线升级的速度….,小点的插件倒没什么问题,如果插件稍大点那就不知要下后哪年哪月去。而且eclipse的插件在升级后,旧的插件还在,当然,一般eclipse会帮你自动设置为不启用,你只要在插件管理界面卸载就可以了。很不幸,不少插件不能被自动卸载,你得手动去删。
    ………………
    要发牢骚,还可以说一堆eclipse和eclipse插件的坏话。
    既然eclipse以及eclipse的免费插件有这么多的缺点那你为什么还要用?有人说玩开源玩的就是自虐,痛并快乐者。自由免费的代价是,你似乎永远也拥有不了(虽然eclipse也挺商业的,而且已经做的很不错了。)使用商业软件的舒适与便捷。商业软件如果有了什么问题你可以去找厂商,但是免费的东西就没有这么好说话了。既然用免费的东西那就全用免费的吧,慢慢的习惯受虐,不然还真不如去用那些商业软件。反正都要用D版。
    开源?开源首先是种商业模式。这两天一直在想这个问题。也许哪天有兴趣来写写吧。

再谈谈Borland卖IDE

    今天去兔八哥的blog看了看。呵,也在谈论这事。毕竟这对每个Borland用户来说这都是一件大事嘛。回帖一不小心又YY了一堆。
—————————————
    近两年来Delphi已经日先颓势,广大的Delphi用户纷纷转向JAVA或.NET。广大的老用户走了,新用户又未能很好的成长起来,致使Delphi社区的技术实力大大下将。这一点看一下Delphi的论坛的整体技术水平就可以知道了。Delphi的没落也许更多的是一个时代的没落,传统的win32及C/S程序开发的没落。在我看来Delphi的没落似乎是注定的。最近虽然还是常玩玩Delphi,不过更多的只是玩玩而已。相见不如怀念。
    C++Builder的版本号一直都和Delphi同步,但随着Delphi7的出现C++Builder7却久久为见,似乎Borland已经将C++Builder给挂了。在经过痛苦的等待之后C++BuilderX出现了。C++BuilderX本该是一个很有前途的东西。C++BuilderX整合了N多开源的东西,支持交叉编译(好像是吧,不太记得了)。发布的时候曾宣了N多新特性,还宣称要用C++将VCL进行重写。不过在预览版出现的时候连RAD都没带。大家都在想,预览版嘛,可以理解。但在正式版出来的时候还是老样子。不带RAD的C++Builder还是C++Builder?我想C++BuilderX一定让不少C++Builder用户从期待到绝望。尽管如此C++Builder还是一个不错的东西,至少思路还不错。C++BuilderX提供了与ANSI/ISO C++和C99标准完全兼容的全新编译器和C++平台开发架构,该架构允许开发人员直观地构建并交付跨平台应用而无需对编译器进行扩展。C++BuilderX如果能借助开源的力量也许会有不错的前景。不过Borland毕竟不是IBM。
    如果说Borland说要卖掉Delphi,我想我不会惊奇。让我没想到的是Borland居然连JBuilder也给卖了。JBuilder是个优秀的开发工具,他有着eclipse所没有的容用性。不过eclipse有着他最大的优势,免费,以及开源社区的支持。想起以前看到的一句话,如果JBuilder不是因为卖得这么贵的话也许很过后来的IDE都不会出现,其中包括eclipse和IDEA。
    抛弃了IDE的Borland期待着一次涅磐,但Borland能否修成正果?没有了IDE的是否还是Borland?
    希望Borland走好,更希望那些离开了Borland的IDE们走好。

Borland要把开发工具部给卖了

    这两天对Delphi社区影响大的无疑就是这个消息了。现在的我已经成功的转到JAVA开发下面了,Delphi对我来说更多的是业余时消遣的玩具。对Delphi的一些新动向虽然也会去了解,却也不是很感兴趣。最近Dephi的发展主要都是放在.net和IDE的扩展上。但我只只用Delphi的win32开发,至于IDE方面,我已经被D7的IDE虐习惯了。在安上Moldermaker和cnpack之后感觉还不错。
    尽管如此,Borland出售开发工具部门还是一件大事,毕竟玩了这么多年的Delphi,而且现在还在用Borland的JBuilder。
    即使没了Jbuilder我们还可以使用eclipse,JAVA还会发展,但Delphi?相对其他开发语言来说Delphi应该说是封闭的,Delphi一直都是在Borland的掌控中发展。没了Borland谁来支持Delphi。
    就我看来Delphi的前景是暗淡的。Delphi的优势主要体现在传统的win32环境中的RAD开发。但就目前的情况来看win32的开发已经开始走下坡路了。实际上现在的Delphi开发人员就已经流失的很厉害了,比如我。在.net开发方面。delphi可以使用vcl来开发。vcl固然是个很优秀的东西,但毕竟已经是个老古董了。现在的.net的设计已经很完善,完全没必要多此一举的封装一下。
    borland的工具开发部门谁买?
    windows平台卖给MS?怎么可能。MS自己有完备的.net和win32开发工具,再买这个也多余。买过来消灭竞争对手?只有打不过的时候才会这么做。现在Borland都这样了已经犯不着用这一着了。
    JAVA平台卖给IBM。尽管我不得不承认JBuilder是个很不错的东西。但我想IBM还是不太可能会要。IBM是个精明的商人。IBM用开源模式成功的将eclipse推向了java开发工具的巅峰,将jbuilder给做了。jbuilder IBM就是买过来也没什么用。买来送给开源组织?怎么可能。我倒是挺希望SUN吧Jbuilder给买过去。虽然sun是java标准的制定者,但sun的IDE就一直没有流行起来,以前是jbuilder,现在是eclipse。netbean和jbuilder都是基于swing的。如果sun能将jbuilder中的优势整合到netbean中应该能出现个不错的东西出来。对我这样一个对eclipse颇有微词的人来说,我还是很希望能出现个这么样的东西的。
    不管怎么说,还是希望Borland给自己的开发工具们找个好买家吧。

在jbuilder中集成vim和explore

    昨天说到jbuilder的外部工具,本来想将jbuilder中集成vim和explore的方法贴一下,只可惜机器上没安jbuilder,现在来贴一下吧。
    主菜单Tools->Configure External Tools…
    打开外部工具管理窗口。然后要做的就是add外部工具了。
    Title:外部工具添加后显示在jbuilder菜单上的名称。
    Program:要运行的程序。
    Paremeters:外部工具的运行参数。
   
    对于vim的配置,标题就去取gvim吧。程序,当然就直接填写入vim的完整路径了。下面就是参数了。对参数的设定,jbuilder提供了不少环境变量。这里我们需要的是当前文件的文件名($FilePath)。
    要集成资源管理器,在程序栏目填写上explorer,参数当然就选当前文件的路径了($FileDir)。

Jbuilder的外部工具设定 and netbeans

    在Eclipse下安装好Easy Explore后,后可以实现从Eclipse中的文件树到资源管理器的跳转。在要对文件进行操作的时候这个功能特别实用。

    因为我同时使用eclipse和jbuilder所以一直很想找个jbuilder下的类似插件,一直未果。因为想吧vim集成到jbuilder中,去找了一下相关的资料。发现通过jbuilder的外部工具设置可以很方便的将vim集成到jbuilder中。然后又试验了一下将资源管理器集成到外部工具栏的设置,发现还不错

    具体怎么设置?

    等我明天先到公司去看一下哈,我自己的机器上没安Jbuilder

netbeans

    以前也安装过netbeans不过安装过程中失败了。结果不但不让我重安,而且卸又卸不掉。所以对netbeans的感觉一直不太好。今天去down了个netbeans的5.0 beta2。发现这东西其实还不错。速度还不错,且内存的占用率也不是很高。jdk5.0出来的时候宣称swing的速度有30%的提升,就我的感觉这个30%的提升还是有一定的说服力的。

    eclipse的最大好处就是插件,最大的问题也是插件。eclipse的插件不少,不过免费又好用的倒不多,好用的多半要收费。netbeans在默认情况下不用安装任何插件就可以直接进行j2ee的开发了。而且还默认集成了tomcat5.5不用做什么设置就可以直接对web程序开发调试了。netbeans提供了对swing RAD开发的支持。不过具体效果怎么样,我就没太试过了。

    最后不得不说的是,一直觉得sun的ui做得太差了。尽管netbeans采用的windows风格的界面,但看上去还是有些丑。当然这很大程度上是因为swing的原因,但swing也是sun的东东。也许是因为sun主要是做unix下的东东的吧,难以满足我们这些windows用户的胃口。

开始有些熟悉VIM了

    这两天有看一些VIM,还做了一些相关的设定,感觉我已经开始习惯VIM了。
    VIM默认是wrap模式的。我主要用VIM看代码,代码wrap后就几乎没法看了。set nowrap设置成不进行主动换行模式。
    vim在默认情况下底部的滚动条是不显示的。在自动换行的时候这倒没什么关系,现在被我该成了非自动换行模式,这个问题就变得尤为突出了。修改设定文件,set guioptions+=b,添加底部滚动条。
    vim中的tab和自动缩进都是8字符,相对我的习惯来说这实在是有些夸张。修改配置文件,将自动缩进都改成4。set ts=4;set sw=4。
    vim的默认字体实在是难看,还是换成比较常用的Courier New吧。set gfn=Courier_New:h10。配置文件中如果带了空格将无法解析,需要将空格替换成“_”。
    vim的语法高亮也是个问题。不知道是不是linux的习惯,在语法高亮都喜欢用粉红色,以前的那个jedit也是这样。不知道是不是大多数人都习惯这样,反正我是习惯不了。将默认的配色文件都试验了一下,没有哪个比较满意的。darkblue还不错,不过里面还是有用到粉色。还是自己动手修改一下吧。在\Vim\vim64\colors下找到darkblue,修改PreProc的颜色为00ff00(深绿色)。
    基本设定差不多了,然后还去找了几个插件。我还是比较习惯IDE,用vim来直接写代码的机会应该不多,不过找插件对我来说差不多是必须备行动了。以后偶尔要用到也说不定啊。
    安装了taglist.vim和intellisense.vim。
    差不多就这个样子了。看网上不少有人帖自己的vim配置文件,我也学学,帖了玩玩。
    用vim带的2html功能转的。呵呵,大家正好可以看一下我使用的配色方案。
 

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
let Tlist_Ctags_Cmd = 'D:\Program Files\Vim\vim64\ctags.exe'
set autochdir
set nois
set tags=tags
set nowrap
set guioptions+=b
set ts=4
set sw=4
set gfn=Courier_New:h10
colors vxdarkblue
………vim自带的这一部分就不帖了
endfunction

vim

    最近忽然又有些想玩玩Linux了。
    我总是觉得做JAVA开发如果不懂Linux,实在有些说不过去。
    以前就在论坛听人说suse不错,朋友也说这东西好像不错的样子。
    呵呵,3.6G。慢慢下。只要不要再象上次一样下了一半就挂了就好。
 
    昨天去下了个号称地球上第二强的编辑器,Vim(最强的是emacs)。Vim好像不算太糟糕的样子。有中文界面,而且还可以下到中文的使用手册。
    其实我对编辑器的要求很低。启动速度快,有查找功能和语法高亮就差不多够了。只是最近忽然想BT一下,也当是熟悉Linux下的工作环境吧。(为什么不用emacs?我还不够BT
    最初是用NoteXpad。这东西功能和windows的Notepad差不多,主要是多了个工具栏,使用起来比较方便一点。NoteXpad号称全汇编写的。不过好像汇编不太值钱,程序的问题还不少。估计没有使用内存映射,打开稍大点的东西就有点吃力。还好,一般没谁会起用写字板打开太大的文件。
    NoteXpad最初的版本不带语法高亮,在后来的版本中加入了语法高亮,不过bug比较严重。不是几乎,而是根本就没法使用。
    后来朋友推荐用Notepad++。这东西很早就见过,不过当时没太注意。这东西用C++开发的,启动速度还不错,而且语法高亮的默认配色方案比较适合我的胃口。NotepadX就这样逐渐的被我给淘汰掉了。
    现在是Vim。Vim强归强,但对于象我这样习惯了windows下开发的人来说多少还是有些不习惯的。打算先看看手册,将Vim配置得符合点我的习惯再说吧。
    Vim,有些期待。直接在编辑器里写些简单的脚本,实现文本的格式化。我还是有这样的需要的。

appfuse generator的编码规范

一些IDE生成的注释没有删除就把东西发布出来,这我都可以原谅。但代码居然连最基本的缩进都没做。你写代码的时候不愿意话时间去规范代码也就算了,难道你连给代码做个格式化都不愿意?
真为appfuse generator感到汗。

Ruby vs Java? and appfuse

    《新技术倍出 谁最可能挑战Java开发优势》,感觉挺恶俗的一个名字。不过既然要圈钱就得制造点事端,制造点热点。一个东西不管好不好,有人理就是好事。

    JAVA,为什么又是JAVA不是PHP、ASP。因为JAVA红,俗话说人红事多。现在的新人为了吸引眼球总得拉个大腕作幌子,就象前一阵子天涯上的猫人。JAVA,因为JAVA红。

    又是Ruby,又在CSDN上看到关于Ruby的帖子。我一直都承认我对脚本语言是存在偏见的,而且固执己见。

    Ruby可能流行吗?可能。 Ruby能挑战Java吗?表示怀疑。

    JAVA其实可以更简单,JAVA目前的这个局面更多的是因为厂商利益。在Ruby开始威胁到JAVA的时候,JAVA可以变得简单起来。而且在提供方便性将在一定程度的限制功能。有时候,一个东西完善的过程,也是一个复杂化的过程。我觉得Ruby应当是这样的一个东西。最重要的一点,Ruby的定位和JAVA不一样。JAVA定位相对比较高一些。要抢底盘也是抢PHP的,JAVA受到的威胁相对要小一些。

    又想到了APPFUSE。APPFUSE一个不错的集成框架。而且自身带的代码生成器使用也很方便。只要写完VO并为VO写上XDoclet的标注后,直接运行ant命令就可以自动完成数据库的部署并将包括表示层的所有相关代码生成。完全一站式的代码生成。

    既然APPFUSE如此完美为什么没有广泛的流行起来?

    Appfuse基于脚本的代码生成,对细节封装得不够(或者说隐藏吧)。虽然完全按照Appfuse的预定流程来作很方便,可以实现对开发细节的隐藏,但在大多数情况下大家都需要对框架进行扩展来实现自己的需求。既然要扩展,你就必须要了解框架的具体实现细节,而appfuse使用的技术N多。如果要熟悉还是得花些时间的。

    说到这里可能很多人要说到JAVA的复杂性了。对,JAVA很复杂,但同样也可以很简单。虽然技术多,但并不不代表你要了解的东西要很多。技术是用来简化开发的,如果一个新技术的出现反而使开发复杂化了,那这个技术是不值得采用的。在appfuse中采用的新技术都是有其价值的。appfuse缺的是文档。不光是appfuse的文档,还有appfuse所采用的技术的相关文档。这些文档不需要很复杂,只要那么一两页纸告诉框架的使用者这些技术是用来作什么的。对于这些技术只介绍必要部分,暂时用不着的都不用讲,尽量简化(隐藏)框架的复杂性。

    appfuse中大量的使用了ant脚本来实现自动化。但也正是由于过于依赖这些脚本,导致框架和IDE的结合不是很好。到目前我还不是很清楚怎么用IDE对appfuse进行调试。虽然这很可能是因为我对appfuse的研究不够,但对于一个以方便为目的的框架,不应该将和IDE的整合交给框架的使用者去作。

    还有就是appfuse的那个权限系统实在是让人有些不爽。不同系统对权限系统的要求都不一样。权限系统这一块本该是可以灵活配置的,可以很方便的从系统中移除,自己实现。但appfuse的权限系统和框架绑这么紧,要分出去多少还得话些时间。

    说了这么多appfuse的“坏话”,不过还是希望appfuse能快速成熟起来。对appfuse来说功能不是问题,最大的问题是人性化,JAVA也是这样。

 

PS:最近看到appfuse有个代码生成器的子项目appfuse generator。用Velocity替代xdoclet作为模版生成引擎。刚开始研究,还不清楚和appfuse里面集成的代码生成器相比有什么优势。

新版本的appfuse集成了一个缓存系统,有时间可以研究一下。

eXtremetable

    翻页天天写,忽然想,是不是该将翻页写成个jsp的标签。标签这东西从来就没写过,虽说写起来应当也不会难,但以懒人的原则出发,如果有现成的当然就用现成的了。
    DisplayTag,一个不错的翻页标签。可以说DisplayTag什么都好,就是性能很是个问题。DisplayTag每次查询都是将所有纪录都进行一次查询,这样对付小数据量的查询还可以,数据量一大就差不多可以挂掉了。
    ValueList也是一个比较常用的翻页标签。看了一下demo,感觉功能不错,就是默认的风格比较土。当然土不是问题了,只要稍微修饰一下就可以了。ValueList功能强是强,只是有些太强了。ValueList提供了从数据库提取数据到界面显示的全部流程。这样必将导致ValueList使用的复杂性,而且我更喜欢拥有更多一些的控制权。
    然后看到有人说eXtremeTable不错。看了一下demo感觉还不错,界面还挺漂亮的,而且可以在翻页的时候只取出当页的数据。不过问题还是有的(看来完美的东西都是不存在的)。翻页的风格无法修改,且翻页功能比较弱。只能实现 上一页、下一页、第一页、最后一页 这样的简单翻页,如果页数过多的话使用起来将很不方便。
    到官方论坛去看了一下,果然有人和我有相同的需求。不过作者暂时还不打算实现该功能。作者说该功能的需求比较小,还有更多更重要的特性要添加。不过作者也说了,如果需要可以自己对标签进行扩展。eXtremetable相比其他的翻页标签来说更关注的不是功能的实现,而是一个良好的扩展性。所以即使自己对eXtremetable进行扩展应当也不会是一件很麻烦的事情。
    今天在IBM中国看一个关于代码生成器的网站http://www.codegeneration.net/,里面有很多关于代码生成器的东西很全。如果你是一个代码生成器的编写者,在这里你可以找到很多关于代码生成器的知识。如果你只是想找个代码生成器用用,这里也不会让你失望,在里面你可以找到各式各样的代码生成器。