tinyscript 注重提升集合类处理操作的脚本语言 项目简介
许多的人使用Java来作为主要的编程语言,许多的时候感觉代码太过繁复,当然有Scala、Kotlin、Python等等语言号称可以解决此问题,但是毕竟生态圈的切换不是个小问题。同时语法结构和Java相去甚远也导致切换的成本毕竟高。为此本人做了一下尝试,准备走一个中间路线,主题还是用Java语言,但是在需要的时候用TinyScript来解决一下问题,然后再回到Java主体执行,所以你完全可以把它当成一种EL语言来使用,当然解决复杂问题也比常规的EL语言更方便,毕竟TinyScript在集合运算能力方面有重点扩展的地方。未来的方向,会重点放在算法方面,目前已经内嵌了动态规划的背包问题通用方法,后面会逐步扩充其他算法,让程序员们不再纠结于算法实现,而是集中注意力在问题上。语言特性列表支持有序数据结构:数组和序列支持无序数据结构:set和map支持专有数据结构:树和序表序表支持关联、匹配、过滤、分组、排序、聚会等多种业务运算与java无缝集成,适用于jdk1.6及以上版本支持new java对象,并可以使用Java所有类及对象可以采用obj.field方式访问和操作对象属性,简化obj.getField()和obj.setField(value);支持数据结构间相互转换支持调用java非静态方法和静态方法支持bean对象,可以操作bean对象的属性和方法可以和Spring集成,方便加载bean配置信息支持访问数据库,可以将表数据转换成序表结构支持访问Excel,可以将Sheet数据转换成序表结构支持访问文本,可以将行数据转换成序表结构支持不同数据源的序表操作,比如关联、匹配等支持object[key]扩展,比如访问list[1],map[key],简化用户操作支持object.field扩展,允许用户实现不同语法场景支持object.function(…)扩展,允许用户实现不同语法场景支持java的基本类型,内置不同精度的数值转换函数支持if/elseif/else、switch指令支持for、while循环指令支持基本表达式操作,符合java语法规范允许用户设置下标是否从0开始,方便用户访问元素支持[a .. b]方式生成指定范围的序列允许用户定制常量,可以在脚本引擎构造后直接使用,无需声明,如PI、E等。内置聚合函数和三角函数等系统函数,允许用户自行编写函数类进行扩展。允许用户编写脚本类,简化业务逻辑。允许用户编写脚本文件,同时支持java方式和IDE插件调用,实现即时开发测试。支持动态更新脚本文件,无需重新编译部署允许用户通过快速运行器执行脚本,也允许用户通过带Spring的运行器执行需要Spring环境的脚本定义了基本操作符,但是允许用户配置不同的对象实现重载。提供集合的差并交异或运算允许对集合子元素进行批量操作符运算,返回新的集合,如list*2允许对集合子元素进行批量方法运算,返回新的集合,如list.getName()允许对集合子元素进行批量属性运算,返回新的集合,如list.age支持lambda表达式,部分函数允许使用lambda表达式简化逻辑增强lambda特性,允许lambda变量修改外部同名变量。支持排列的lambda遍历操作支持组合的lambda遍历操作支持全排列的lambda遍历操作支持单方法接口的lambda封装,如Runnable、Comparator支持各种脚本内嵌执行,比如dataSource[[ sql语言 ]] 进行带@占位符的sql动态执行,支持template[[ 模板语言 ]] 进行模板语言执行,也可以继承各种其他脚本当然上面列的不一定全,后面也会有新的语言特性加入。脚本运行脚本语言的扩展名是ts和tinyscript,当然也可以起其他的扩展名。提供了Eclipse和Idea的执行器插件,安装之后可以右键直接运行脚本文件。先推出看看反响如何,如果反响比较好,准备开发ide,支持高亮、调试等等。