模块化Java:声明式模块化
本文是模块化Java系列文章的第4篇,介绍的是声明式模块化。文中描述了组件如何以声明的方式来定义并组织在一起,而无需让代码依赖于OSGI API。
作者 Jeff Xiong 发布于 2008年1月27日 下午10时4分
在编程语言流行度的评估方面,TIOBE一直是最为权威的机构之一。不久前该机构将Python评为2007年度编程语言。
Python 被选为2007年度语言。最终,Python一年来取得了最大的增长 (2.04%)。没有清楚的原因为什么Python 在2007年取得了巨大的进步。上个月Python 在历史上第一次超越了Perl,这是Python 成为“工业标准”系统级粘合剂语言的信号。它尤其受到系统管理员和构建管理人员的喜爱。随着 Python 3的推出,Python在2008年继续上升的机会很大。对比Python的快速增长,曾被评为2006年度编程语言的Ruby在07年中的流行度不升反降,同比下降了0.17%。但受到Python冲击最大的还是Perl:0.99%的下降幅度是主要脚本语言中最严重的。比Perl下滑更严重的C(-1.89%)和C++(-1.70%)所受的冲击则显然更多地来自Java、C#和Visual Basic。台湾iThome online对此评论说:
因为Python流行指数的上升,将Perl的名次往下挤到第7名。Paul Jansen观察Perl长期的变化趋势,从2005年以后,Perl的流行指数开始下滑,到2008年时,跌到只有最高时的一半。他认为Perl被 Python超越,意味着Python未来将取代Perl,成为用来连结不同软件组件的整合语言。对于Ruby流行度的下滑,笔者认为主要原因——就像当初的快速上升一样——与Ruby on Rails的发展有关。经过几年近乎狂热的探索之后,Ruby on Rails适用的范围已经被基本摸清,甚至可以大胆地说:该用Rails开发的应用都已经在用Rails开发了。而一些Rails之外的Ruby实践被证明效果并不理想。例如用Ruby做系统管理和项目自动化的尝试,尽管我们看到了《Everyday Scripting with Ruby》这样的图书著作,但更多的组织仍然倾向于用Python来作为shell的替代品。
系统整合。与遗留系统是否能够协同工作。这主要体现在两个方面:(1)消息系统;(2)遗留数据库。但一年时间过去以后,这两方面的进展乏善可陈:关于“要不要(以及如何)用Ruby实现一个Hibernate”的讨论一直在进行,而消息中间件似乎更适合用Erlang来实现。其结果是,当Ruby on Rails坚持“做一件事并做好”的理念时,Ruby语言则越来越呈现“只能做这一件事”的状态。当那些扩展边界的尝试无疾而终时,Ruby流行度的下滑也就在情理之中了。
在未来的几年内,人们会越来越多地采用新的编程语言。当然,这并不意味着当前所用的语言会被取代,而是要结合不同的语言,并且针对特定问题选择恰当的语言。其实这种趋势早已出现:人们越来越少地——像当年对比C++和Java那样——做编程语言之间的对比,更多的注意力被放在“它适合什么场景”这样的问题上。当一个典型的软件系统需要涉及4~5种主要编程语言时,这对于程序员究竟是机遇还是挑战?很大程度上这取决于程序员自己。
我觉得python的确比ruby更扎实,作为胶水语言的能力更强。虽然一年中ruby的解释器有了重大的性能提升,但是和python比还要差很多。perl由于混乱的内置函数名,造成程序不够一致,也没有python方便写出容易读懂的程序。再加上django这个高性能的web框架对ror的一些挑战,python的确是年度语言。
现在的语言更像是一个程序员的长尾,有了更多的选择和更细的定位,那么混合编程也就成为了更加理性的选择。但是混合语言编程给一些程序员带来了不小的挑战。所以说,现在是彻底贯彻pragmatic programmer的时候了。
之前InfoQ有一篇文章谈到,混合语言编程的三个层次,我很认同那种说法。对于Python,Ruby这样的语言确实更适合作为中间层语言,快捷的开发创新性应用。
ruby怎么能和python相比呢,不是一个数量级的啊,但是这也带来了负面的影响,由于涉及到的方面太多,而且没有绝对大宗的工业标准,python的发展受到了很大的制约,虽然在很多方面都有长足的发展,但是思路太过自由,这这一点上java是做的最好的,由于sun公司提出的j2ee规范,即保证了给各个厂商很大的自由度,还保证了兼容性,所以java才发展的这么顺利,而python时间却没有如此的标准出现,而反观ruby,基本是rails一枝独秀的状况,所以发展的方向感还是比较强的,当然,python的春天早已来到,现在可以说是百花齐放的时代,希望python能发展的更好!
本采访是在伦敦举行的QCon2009上记录的,Ian Robinson和Jim Webber探讨了如何将Web作为整合平台以及REST在理论上和实践中的好处。
项目管理对于项目成败至关重要,但实践中每个项目都有自己的独特性,没有现成的解决方案可以套用。书中从应对实际风险的角度出发,讲述了从项目启动、项目规划到项目结束的整个管理流程,展示了作者的思考过程。本迷你书从原书中精选出5个章节。
在这个演讲中,Fred将会揭示敏捷的一些外在因素,并会重点关注敏捷获得成功的内在原因。从案例研究和真实的项目经验来看,Fred认为:工具、管理体系都不能让你变得敏捷。敏捷的成功,植根于士气高涨、充分授权的工作者身上,他们能够以不同以往的方式思考问题。
Eben Hewitt的新书《Java SOA Cookbook》从Java实现的角度讨论了面向服务架构。Eben在书中讨论了SOA基础、工具、最佳实践和SOA治理等主题。
Mark Richards的新书《Java消息服务》第二版覆盖了JMS的许多主题, 包括发布和订阅模式以及点对点模式,消息过滤和事务等。InfoQ与Mark谈论了跟他的新作。
3 条回复
关注此讨论 回复