这好几个月来,一直在进入一个我原来不熟悉的领域,技术开发,虽然我选了一个比较容易的角度进去,但还是困难重重。

从我最开始以为的php+lamp无敌的印象,到现在我知道了数据库和web server强人辈出,尤其是新应用面前(包括我要搞的应用),php和lamp都已经不堪其负。而分布式+对象数据库等等概念,已经让我大开眼界。在此bs下国内各大网站,只知道抄表面的东西,看看人家facebook,一个发展不过几年的网站,就已经给社会贡献了新的编程语言,新的数据库,新的web server等等。 回到正题。

经过一段时间的饱读,现在我的技术选型基本上可以确定下来了。

因为以前配过开源cms,有了点经验,知道各种程序框架基础的选型,首要的是:扩展要丰富,基础要强健。其他的都是可以较容易解决的。——很不幸,我还没能力自己创造一个,所以只能在现有的东西里面选。

而要满足我这种bt的要求,可插拔性是免不了的。比如我选archlinux,选emacs,都是因为这种要求,容易让我配出我希望的东西,而不是别人认为不错的东西。

那要新的还是旧的呢?根据我的激进风格,我会选择新的,但这个在以前用drupal的时候吃了大亏。当时我的drupal5都差不多快成形了,结果由于心里作祟,竟然换了drupal6,结果很多插件都找不到,很多东西要重新设置,直接把我累趴,搞到现在,那个drupal6还躺在我虚拟机里,处于半成品状态。

那么旧的就是好的么?有人说要久经考验的东西才是好东西,这是多么古老的观点啊。如果非要久经考验,那这世界上就没有新技术了。一句话:根据需要确定是要激进还是保守。

比如给银行搞的东西,你敢激进么?但如果是迎接新技术浪潮的,那么就是越激进越好了。

比如我选的tg2(可能还会变,在web2py,web.py间变,但基本的部件已经可以确定,换无非是想其他要求,学习难度不算在内,因为对他们,我都是新手),有人帖了好几年前的观点,说tg整合的包不行,有点拼凑的感觉,所以不建议采用,倒是看好pylons或者django

但tg2不是已经合并了pylons么?默认已经是paster+……+cherrypy+genshi(2.1默认可选mako,速度更快了。而且tg的可插拔性并没想象的那么别扭,实际上世界上所有有点规模的程序都不是一个人开发的,是众人拼起来的,所以,既然是拼,就难免有长有短,而如果条件允许,那么谁不想选用最优化的组件呢?而tg2恰好就给了这种可能性。

tg2在国内不热,django横行,和大家都在做blog式的网站有关,那一天大家开始搞更web应用软件等相对复杂的系统的时候,就会发现原来django是如此脆弱。给个不太恰当的比喻,如果django是新浪的话,那么tg就是腾讯,一个是传媒起家,一个是应用起家

现在仅剩的问题恐怕就是web.py指责所有web-framework的话了:你们都是让人在按你们的方式开发,看我多好,用我的话,就跟用python没两样。

嗨,春节后,一直被emacs折磨到现在,也没啥好说的,不过emacs差不多也快成形了,接下来是时间问题了,时间一到,熟悉之后就一切顺畅了。