不知道什么时候,流传了Beetl作者黑JFinal的故事,依据是我写了俩篇博客。
如果你是个技术爱好者,一定能看出来,我在文章中大部分都是摆事实讲道理,说我黑JFinal的人拿不出技术依据,只好在随后很多博客和论坛里对我个人进行了攻击,比如最近的一个文章:
- beetl作者闲大赋为什么如此自负和目中无人?,这篇文章在OSChina头条已经快一个月了。 另外还有很多Jfinal粉丝的马甲发的博客对我个人进行了人品攻击,在此就不一一列举了。
每次都有朋友像我求证,问我怎么回事,我在这里做一下申明
JFinal首先在文章中攻击了Beetl
JFinal以前并不具备模板引擎功能,因此很多功能都受到限制,包括模板,还有模仿BeetlSQL的新的功能。它在3.0中能推出了模板引擎本来是个很好的事情,却在新闻里发表了“JFinal 3.0 发布,重新定义模板引擎”。里面首先攻击了Beetl的基础Antlr,自以为写了一个解析器,就把大公司认可的(包括Google,JBoos等),一个美国教授搞了30年的Antlr说的一文不值。
在国内用Antlr作为模板解析的有几家,较为流行的就是Beetl,我不知道JFinal作者为何在JB(Jfinal+Beetl)组合被大多数JFinal用户认可情况下,会先抨击Antlr和Beetl。如果作者不知道如何良性竞争,大可以参考4,5年前的国内模板大战,当时Rythm,TinyTemplate,HTTL,BSL,Webit等等都是良性竞争,当时大家技术上互相借鉴,模板最后的不同主要是各自作者审美的不同,和应用领域不同导致的,从来没有公开互相攻击对方的代码或者技术。
就算JFinal为了推自己博客率先发难Beetl,我当时也基本上是自辩而几乎没有说JFinal新推出的模板引擎的问题。实际上在JFinal还在社区内部推广模板引擎的时候,我已经拿下来体验了,随便几个语法错误尝试,我就很清楚当时JFinal模板引擎还处在初级阶段,比如当时尝试了
- 除0, Jfinal模板引擎报错并没有指出正确的位置
- include 参数是个变量,Jfinal并不支持。
- 表达式里故意多了些符号,报错很模糊。
这些问题我只在我的Beetl群里吐槽过。但我当时并没有公开指出JFinal模板的问题,按理说我对模板的功能和实现都非常清楚,如果我想真黑JFinal刚推出模板,那简直是我的强项,我可以写出一堆Jfinal模板引擎的问题,但事实上我基本上自辩真伪而并没有道出Jfinal模板的问题。这是因为我对JFinal的态度一直都是比较乐见其慢慢发展成一个正正的理想MVC框架。
另外,大家关注的模板性能测试,我如果真要黑Jfinal模板引擎,我肯定会用国内外的性能测试标准去比较Beetl和JFinal模板引擎,然而事实上,我一直都没有这么做过。如果我真想黑Jfinal模板,我会连这个都没有想到?
JFinal 再次在文章中先攻击了BeetlSQL
JFinal 随后推出新的DAO扩展,这非常像MyBatis和BeetlSQL 将SQL提出来了单独管理。JFinal在发布这个新闻的时候,再次不点名提及了BeetlSQL,因为BeetlSQL处理翻页的方式是使用标签@page() 方式,Jfinal虽然没有提及BeetlSQL名字,但却提到了标签分页,目测国内外流行Dao工具也就只有BeetlSQL 有这个专门的“标签分页”术语
作为BeetlSQL的作者,我觉得我是吃了个暗亏,但我仍然乐于见到JFinal逐渐成熟(尽管他多年前都宣传是final,如果你真信,你就幼稚了)。直到一个使用JFinal吃了很大亏的朋友向我诉苦,我才觉得,有必要提醒一下框架选型的人,因此写了关于极简编程的思考,提醒架构师,要注意到Jfinal的无模型特性危害,还有没有IOC特性带来的问题。如果Jfinal粉丝不带情绪的去看这个博客,会有所收获,我大部分是在说道代码的可维护性,提到Jfinal只是恰好它有这样那样的问题
如果我真的想黑JFinal
有人抨击我想蹭Jfinal热度,我觉得很奇怪,Beetl和BeetlSQL在很多领域下都应用良好,不存在谁蹭谁热度问题。我个人站出来对Beetl和BeetlSQL进行自辩,也没有太多的经济利益,要知道接受捐助5年这么长时间,也就不到4000的捐助(感谢那些相信并捐助Beetl和BeetlSQL的人),我的年薪足够好,不需要靠Beetl和BeetlSQL去挣钱。这4000捐助,也不过我是我北京另外一套房的一个月租金而已。我的辩解只是想把我认为的技术理念说出来而已。爱听就听,不听拉倒。
如果我真想黑Jfinal,我会列出至少50点我不认可Jfinal地方。以我对模板引擎,Dao的了解,还有我对JavaEE了解(我算是非常早接触JavaEE的人),以我对Spring和SpringBoot的了解(我的Spring Boot2的书即将由电子工业出版社出版,公司的开发框架也是SpringBoot2),我能列出很多很多Jfinal需要完善地方。事实上我并没有这么干,没有在继续所谓的“黑Jfinal”.我很乐见其成长,但我会对黑Beetl和BeetlSQL的文章进行适当反击,正如我这个博客开始提到的反击的俩篇文章。
很多Java框架都很好,如Spring,SpringBoot,Play,Nutz,ActFramework用户量都相当大.但没有听说过这些框架还有粉的,也就只有Jfinal有粉丝了。Jfinal的营销宣传确实是国内开源典范,每一个技术特性,都会带有几个广告词。一个开源能拥有粉丝难得,还有那种无脑粉丝经常出来无脑为Jfinal保驾护航,更难得可贵。
我不想招惹JFinal粉丝,但这些Jfinal粉丝也别惹我,有本事别用马甲账号来攻击我,亮出你真正的身份。用技术说话。