论坛首页 Java企业应用论坛

阿里巴巴开源平台新增项目SimpleEL

浏览 48789 次
该帖已经被评为良好帖
作者 正文
   发表时间:2011-04-08   最后修改:2011-04-08
我觉得JEXL挺快,它也是表达式引擎,但它的变量前面不需要加任何标识,更加灵活
0 请登录后投票
   发表时间:2011-04-08  
wenshao 写道
半人马 写道
我也比较关心这个东西的应用场景是什么,跟在java中使用script或者使用类似velocity这样的模板引擎相比有什么优势。


优势在以下两点:
1、性能。使用动态编译的方式,速度接近静态编译的Java代码,速度方面无与伦比。
2、可扩展性。整个实现分成四个部分,可以替换掉其中任何部分,可以很多扩展,比如自定义语法,替换缓存实现,替换编译实现。


应用场景能举个例子吗?
0 请登录后投票
   发表时间:2011-04-08  
hongyang070 写道
wenshao 写道
hongyang070 写道
支出多复杂的表达式? if else 支持不?


if/else目前还不支持,但是支持任何的java表达式操作,例如?:,函数调用等等。目前只支持表达式,不支持多行语句。

程序的结构是可以扩展支持if/else的,有打算下一步支持if/else等多行语句。

嗯.要是能加入if/else这样比较复杂的就有用多了. 用jdk6的script,可以直接计算表达式了.只是没有比较过跟您的效率比起来怎样.


JEXL支持if...else,语法:http://commons.apache.org/jexl/reference/syntax.html 速度比jdk1.6的那个js引擎快很多倍

JEXL2支持将引擎整合进jsr223
0 请登录后投票
   发表时间:2011-04-08  
半人马 写道
wenshao 写道
半人马 写道
我也比较关心这个东西的应用场景是什么,跟在java中使用script或者使用类似velocity这样的模板引擎相比有什么优势。


优势在以下两点:
1、性能。使用动态编译的方式,速度接近静态编译的Java代码,速度方面无与伦比。
2、可扩展性。整个实现分成四个部分,可以替换掉其中任何部分,可以很多扩展,比如自定义语法,替换缓存实现,替换编译实现。


应用场景能举个例子吗?

同问?我们大多数人在平常的开发中用得着吗?
0 请登录后投票
   发表时间:2011-04-08  
我觉得做成ognl那种用途更大,这些虽然说快,但应用范围不是很大................为了方便很多公司可能自己内部就实现了,当然,性能不是第一位的..............
0 请登录后投票
   发表时间:2011-04-08  
wenshao 写道
KimShen 写道
EL不稀奇,最快的OGNL解析器,来一个?


都说了和JSTL中的EL没任何关系了!!

我说是JSTL的EL了?
0 请登录后投票
   发表时间:2011-04-08  
wenshao 写道
OneClick 写道
wenshao 写道
半人马 写道
我也比较关心这个东西的应用场景是什么,跟在java中使用script或者使用类似velocity这样的模板引擎相比有什么优势。


优势在以下两点:
1、性能。使用动态编译的方式,速度接近静态编译的Java代码,速度方面可以秒杀别的表达式解析引擎。
2、可扩展性。整个实现分成四个部分,可以替换掉其中任何部分,可以很多扩展,比如自定义语法,替换缓存实现,替换编译实现。

对于国内的开源项目,我比较关心的是:它们能够持续更新?会不会渐渐被遗忘,或者被作者自己遗忘?


公司开源,这个的可持续性会更好一些,比如之前阿里巴巴开源平台上的Fastjson,有人报告BUG之后都能够及时修复。

我们不希望伪开源,而是踏踏事实的经营一个开源平台。

现在阿里巴巴的开源平台建设是有专人负责的,大老板(CTO)对目前的开源进度不够满意,希望我们加快推进开源平台的建设。


无非放几个不痛不痒的项目然后吸引开发者实现你们的大阿里巴巴共荣圈而已.大家都懂的
0 请登录后投票
   发表时间:2011-04-08  

[INFO] ------------------------------------------------------------------------
[INFO] Building SimpleEL
[INFO]    task-segment: [eclipse:eclipse]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing eclipse:eclipse
[INFO] No goals needed for project - skipping
[INFO] [eclipse:eclipse {execution: default-cli}]
[INFO] Using Eclipse Workspace: E:\work\study
[INFO] no substring wtp server match.
[INFO] Using as WTP server : Apache Tomcat v5.5
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.la
Downloading: http://repo1.maven.org/maven2/com/alibaba/external/test.junit/4.5/test.junit-4.5.pom
[INFO] Unable to find resource 'com.alibaba.external:test.junit:pom:4.5' in repository central (http://repo1.maven.org/
Downloading: http://repo1.maven.org/maven2/com/alibaba/external/test.junit/4.5/test.junit-4.5.jar
[INFO] Unable to find resource 'com.alibaba.external:test.junit:jar:4.5' in repository central (http://repo1.maven.org/
[WARNING] An error occurred during dependency resolution.
    Failed to retrieve com.alibaba.external:test.junit-4.5
Caused by: Unable to download the artifact from any repository

Try downloading the file manually from the project website.

Then, install it using the command:
    mvn install:install-file -DgroupId=com.alibaba.external -DartifactId=test.junit -Dversion=4.5 -Dpackaging=jar -Dfil

Alternatively, if you host your own repository you can deploy the file there:
    mvn deploy:deploy-file -DgroupId=com.alibaba.external -DartifactId=test.junit -Dversion=4.5 -Dpackaging=jar -Dfile=

Path to dependency:
        1) com.alibaba:SimpleEL:jar:0.0.1-SNAPSHOT
        2) com.alibaba.external:test.junit:jar:4.5

0 请登录后投票
   发表时间:2011-04-08  
看了ppt,老实说,没看明白楼主做这个表达式引擎的意义。

总有个适用的场景和设计的目的吧?简单求快这个目标视乎没太大意义吧!

说说设计的初衷,以及扩展性吧~~
0 请登录后投票
   发表时间:2011-04-08  
这东东。。。就是与在校学生编译原理课程设计相比都有些牵强啊。。

我觉得比快不是这样比的,你功能少,特性少,扩展少,自然就比那些大而全的表达式引擎快了。

比如我写一个最简单的正则引擎,只支持最基本的并/串/闭包,捕获/分组/贪婪啥的扩展全不支持,自然也很容易完爆java.regex.pattern了,但这不公平。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics