在SD2C上的另外一些收获来自于Web应用方面。一个是董洵的GAE讲座,一个是钱宏武关于大型WEB应用的讲座。
钱宏武有一个观点谈到关于技术选型一定要选择那种久经考验资源丰富的
解决方案。比如对于WEB应用来说,PHP就是这样一种靠谱的方案。这个我很赞同,像ASP就是在过去一些年里未能通过考验而可耻滴被淘汰的技术——傍上
MS又如何,现实是残酷的,连MS自己也放弃了ASP。一个朋友有一个ASP做的网站要我帮忙在国外找个虚拟主机空间(国内的虚拟主机商太不靠谱,而且价
格贵得离谱),结果我找了四家比较有名的,只有一家有提供支持ASP的Windows平台。
于是我想到了这两年来我所接触过的Python
Web框架:Django, TurboGears,
Pylons。因为那天有事急着回市区,没能等到董洵讲座的问答一环节,所以也就没能问一下他的看法。不过按董洵在讲座中的观点来看,他是对Django
是非常推崇的,他自己的网站“好看簿”就是用Django开发的——他说到这个我才想起来07年在土豆的barcamp上见过他。
回上海后在BT妓术群里也讨论了一下这个话题,令狐作《Django到底有什么好?》来谈这个问题。
我
最初接触Python的Web开发就是听Limodou介绍的Django,从0.94版一直用到0.96版。令狐因为之前用过CherryPy,所以比
较倾向于基于CherryPy的TurboGears。不过在经过一段时间的使用之后,我还是决定从Django换到了TG,因为我不喜欢Django独
有的ORM和非XML的模板——虽然这个叫做Jinja的模板引擎的确比TG默认的KID要快得多。不过我用TG也不太喜欢用它默认配置的
SQLObject和KID,而是喜欢SQLAlchemy和Genshi。TG的优点就在于此,你可以按自己的喜好选择使用ORM和/或模板引擎,不会
像Django那样让人感觉受约束。
到了08年,BT妓术群要做新版本狗屎皮网站时,在MK的提议下,我们选择了Pylons——它也像
TG一样是可自由组装的,但是底层是基于Paster而不是CherryPy,二者的优劣我不好评说,但可以肯定的是,Pylons的配置性比TG更好。
但促使我们作出这样的决定的理由却很简单——TG2开始就不再是基于CherryPy而是要改投Pylons门下了,虽然当时TG2还未正式推出(现在也
只到Beta1)。
经过这么一番折腾之后再回头来看这三个框架,感觉就不同了。
Django虽然是一个全包的解决方案,但是它的方案却是经得起考验的——因为据说Django的诞生差不多与RoR同时,也都是基于实际的应用开发需要而被创建出来的,它是一个与RoR类似的方案,但却绝不是仿制品。
TurboGears的想法是很好的,但是因为用到的组件过多,并且千差万别,TG的组合从某种程度上说是比较勉强的,并且不得不因此加了很多比较难看的手法,使用上问题也是比较多的。
Pylons虽然思路与TG类似,但是做法要清爽得多。最关键的是它提供的功能却一点也不差,比如URL映射(REST需要),还有对CACHE的支持等(当然这些Django也都有)。只是用起来麻烦一点。
我虽然用TG做过一些应用,但都是只有几十个用户的小应用。对于实际的大规模应用来说,TG的效能是很可疑的。在这一点上,Django和Pylons都要好得多。
回到前面所说的“久经考验”的问题上。要说Python世界里最久经考验的方案,那大概就要数Zope了,不过那个东东实在是太笨重了,堪比J2EE。
而除了Zope之外,这三个方案(甚至还可以包括RoR等)跟PHP比起来都不能算是久经考验,但如果一定要在这三个里选一个的话,恐怕最后胜出的还会是Django。
不过我觉得要是从趋势上看,Pylons会很有前途——
Limodou在说了《merb的不可知--与uliweb框架的走向》后不久,merb就正式与RoR合并了。如果把RoR比作Django的话,merb就像是Pylons,也许将来在TG2与Pylons正式合并以后,Django也加入进来不是不可能的。
分享到:
相关推荐
PB框架SD2,即Smart Development Tool 2,是基于PowerBuilder的一个优化框架,旨在解决PFC(PowerBuilder Foundation Classes)的复杂继承问题,以提高开发效率和代码的可维护性。 PFC是PowerBuilder提供的一个基础...
在SD2C 2009上的讲演稿以及录音。不过没有视频。:) 其它信息在这里:http://sd2china.csdn.net/track4#a18 有关信息参见: http://blog.csdn.net/aimingoo/archive/2010/01/31/5274552.aspx
这是第一卷。 我在SD2C 2008上的《JavaScript + Delphi + ErLang = ?》讲演的录音。PPT等其它资料在这里: http://blog.csdn.net/aimingoo/archive/2008/12/08/3477868.aspx 有关信息参见: ...
我在SD2C 2008上的《JavaScript + Delphi + ErLang = ?》讲演的录音。 这是第二卷。 其它的下载都失效了。补充在这里: http://blog.csdn.net/aimingoo/archive/2008/12/08/3477868.aspx 有关信息参见: ...
Python是一种广泛使用的高级编程语言,它以其简洁明了的语法和强大的功能而受到开发者的青睐。南京大学为初学者提供的Python课程将从基础开始,逐步深入到数据分析的基础知识。在这一过程中,学习者将接触到Python...
张孝祥在SD2C大会上分享的PPT,无疑为我们提供了一个深入理解JavaWeb高级技术的宝贵资源。 1. **Servlet与JSP**:Servlet是JavaWeb开发的核心,它是一种用于动态生成Web内容的Java类。JSP(JavaServer Pages)则是...
德国厂家SEIB MEYER出品的高频变频器SD2是一款先进的工业控制设备,它通过高频信号对电机进行精确的驱动和控制。变频器的控制信号使用说明书详细介绍了SD2设备控制的各项功能和操作细节,包括设备控制概览、快速停止...
在这个高级应用的主题中,我们主要探讨的是Java Web技术的深入理解和实践,由知名软件培训专家张孝祥主讲,针对SD2C软件技术大会的参与者提供。 1. **Servlet与JSP** - Servlet是Java服务器端编程的基础,它扩展了...
技嘉h61m-sd2bios
SD框架的重要特性之一是其智能路由系统,通过自定义封装器可以对消息进行解包,并通过自定义路由将消息传递给不同的控制器。框架还支持MVC设计模式,通过Model调用可以实现业务的解耦,使得代码结构更为清晰和易于...
**Python库heartpy-1.2.6a0-py3-none-any.whl详解** `heartpy` 是一个专门用于心率分析的Python库,它为处理和理解心率变异性(HRV)数据提供了方便的工具。心率变异性是衡量心脏自主神经系统的功能,与身心健康...
"sd2snes:基于SD卡的SNES多功能盒带" 这个标题提到了一个名为 "sd2snes" 的设备,它是一个为超级任天堂(Super Nintendo Entertainment System,简称SNES)设计的升级硬件。这个设备使用了SD卡作为存储媒介,从而...
希捷硬盘SD2B固件,320G 硬盘,对付固件门使用
大型企业信息系统可能需要处理大量数据,这与互联网系统有一定的相似性,但也有其独特之处。例如,大型系统可能需要更强大的数据处理能力、更复杂的分布式架构,以及更严格的可用性和稳定性要求。 - **与互联网...
我们证明了在此SD2 brane解的时间相关体积的六维双曲空间(H 6)上的压缩会导致宇宙加速(在t〜t0的某个时间,t0是一些特征性的时间),其中膨胀和加速度 在生成的四维宇宙的三个空间方向上是不同的。 另一方面,在...
山电公司的SD2U系列可编程控制器是一款专为工业自动化设计的高效、安全的控制设备。这款控制器具备多种先进的功能和特点,使其在各类应用中表现出色。 首先,SD2U系列PLC拥有大容量的程序存储空间,内置16K步的内存...
这款加载器专为GameCube设计,其核心作用在于允许用户通过SD Gecko和SD2SP2设备来运行自制软件,极大地拓展了GameCube平台的游戏和应用体验。 autoexec-ldr的诞生,源于对游戏主机硬件潜力的探索与挖掘。它不仅是一...
大规模SOA系统中的分布式事务处理_程立_SD2C2008.pdf 大规模SOA系统中的分布式事务处理_程立_SD2C2008.pdf 大规模SOA系统中的分布式事务处理_程立_SD2C2008.pdf 大规模SOA系统中的分布式事务处理_程立_SD2C2008.pdf
用于SD2SNES的莱迪思ECP5移植 基于 主要变化是FPGA,RAM和功耗。 SNES接口和MCU与SD2SNES大致相同 原型装有ECP5U-45F,以便于开发-12F或25F零件可提供相同的占地面积。 来自MSU-1 DAC mod USB-C(2.0)连接器 ...
"SD2MenuEnum"是一个基于Java的项目,很可能是一个用于管理菜单枚举的库或框架。在Java编程中,枚举(enum)是一种特殊的类,常用于定义一组固定的常量,比如在创建菜单系统时,我们可以用枚举来表示各种菜单项。...