4、iBatis
简单
敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算
脚本和JAVA代码的解耦,只用20%的代价就实现了
hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据库计算、跨库计算。
成熟度:4星。iBatis经过了十几年市场的考验,是我最喜欢的框架之一。但对
缓存的支持不足一直是缺陷。
低耦合性:2星。SQL可以无缝替换,但仍然是针对具体数据库的SQL。事实上后者是数据库的问题,厂商要粘住客户,所以SQL不兼容,让你难以迁移;但
程序员不愿被粘住,非要迁移。
脚本编写:3星。它就是SQL。
集成:4星。基本没有难度,初学者半天时间可以熟练掌握。
界面友好性:4星。没有
图形化计算过程设计界面,但可以借用SQL工具。
性能:3星。性能比SQL略低,主要是resultSet和map/list之间转化需要多花费一点时间,另外缓存支持不如hibernate好(综合比起来两者区别不大)。其实我认为引入ORM的同时引入性能问题就是失败的。
复杂计算:3星。同SQL,比hibernate强。
大数据支持:1星。同SQL。
非数据库计算:1星。同SQL。
跨库计算:1星。同SQL。
调试方便性:1星。同SQL。
5、R语言
R语言不易和JAVA集成,但强大的计算能力和广泛的社区支持,以及大数据的特性使我不得不提到它。另外跨库的计算、非数据库的计算、模型计算也是它的强项。当然,在各种数据计算层中,它也是最难学习的。
成熟度:5星。R语言的历史仅次于SQL,无数的社区在热烈讨论R,尤其是大数据时代。
低耦合性:4星。R语言和集算器在这方面没区别。
脚本编写:3星。这方面R和集算器很像,区别是集算器更敏捷代码更灵活,对结构化数据的支持更专业,而R内置了大量模型
算法。所以基本持平。
集成:1星。R不是JAVA
架构,很难集成进JAVA,本来性能就不高,集成后更是大幅度降低。
界面友好性:3星。有专门的IDE界面,但很粗糙,实际价值不大,这也是开源产品的通病。
性能:2星。全
内存运算,难以
应付大数据量。
复杂计算:5星。同集算器类似。
大数据支持:3星。R与Hadoop的
结合机制,但JAVA与非JAVA体系之间的结合并不容易,性能损失较大。
非数据库计算:5星。同集算器类似。
跨库计算:5星。同集算器类似。
调试方便性:2星。勉强算有调试功能,但很不专业。