Soya是什么?Soya是一门基于JVM上的动态编程语言,现在已经开源
它的特点是
直觉的: 简洁易懂的语法能让您舒服地完成日常所需
OO的: 一切皆为对象
函数式的:提供了必包、柯里化等函数式支持
强大的: 模式类使普通的模式匹配变得更具变现力
实用的: 最初就以方便实用为目的设计
有趣的: 坚持Matz“有趣即正义”的先进思想
相比Groovy,它拥有更为简洁的语法,还有很有更丰富的字面量,
比如时间日期、文件甚至URL,都是可以直接书写的基本类型。
相比Scala,它是动态类型的,但拥有更强大的模式类。
而且语法更为方便灵活,易学易懂。
项目地址:
https://github.com/mySingleLive/soya
下载试用:
https://github.com/mySingleLive/soya/releases
目前的状况
- 当前版本是 1.0.1-alpha,是我发布的第一个Alpha版本。
- 完成语法的编译、字节码生成和执行。
- 完成基本的运行时库。
- 能使用所有Java的API和JAR包。
- User Guider文档。
- 通过sample/Test.soya脚本测试。
计划和安排
- 现在只能解析执行(其实已经是编译成Byte Code交给JVM直接执行了),不久就能编译成class文件。
- 现在没什么注释,也没有API文档,只能靠看库中的源码和例子。文档必须加快编写。
- 完成更全面的单元测试,加强可靠性。
- 语法特性还有完善的空间。
交流方式
当然,现在的Soya才刚刚出生,看起来还十分粗糙稚嫩,可能会让大家见笑。
不过我认为两年多来的努力不会白费,在接下来的时间里也会继续让Soya一步步成长。
所以,我在这里欢迎对Soya或编程语言、编译器技术感兴趣的朋友们加入进来,
您在语言上的奇思妙想和经验将有可能体现在Soya上。
分享到:
相关推荐
Python是世界上最受欢迎的编程语言之一,特别是在Web开发和数据分析领域。PyPI(Python Package Index)是Python软件的主要存储库,它提供了丰富的Python包,供开发者下载和安装。本资源"chance_soya-0.0.3-py2-none...
10. **持续集成/持续部署 (CI/CD)**:项目可能采用了 CI/CD 工具(如 Travis CI 或 Jenkins)来自动化构建和测试过程,确保每次代码提交后的质量,并能够快速发布新版本。 综上所述,"soya2d-plugins" 是一个基于 ...
一个CLI来帮助快速引导Soya Next项目 包含使用的配置和脚本 大豆生产服务器Next 特征 资产进口 自定义路由 CSS模块 Gzip压缩 (具有gTLD的子目录) 即时ESLint Redux(自动代码拆分) SASS / SCSS 通用...
Soya是一门基于JVM上的动态编程语言,现在已经开源 它的特点是 直觉的: 简洁易懂的语法能让您舒服地完成日常所需 OO的: 一切皆为对象 函数式的:提供了必包、柯里化等函数式支持 强大的: 模式...
在本项目中,我们关注的是使用Soya2D游戏引擎开发的一款名为“消消气球”的小游戏。Soya2D是一款强大的2D游戏开发框架,它基于JavaScript和WebGL技术,为开发者提供了一套简洁易用的API,使得创建丰富的2D游戏变得...
【MazeBug - 2015年软件工程实训 - SoYa Wiki1】是一篇关于软件工程实训的文档,特别关注了MazeBug这一主题。MazeBug是一种模拟实验,通常用于教学目的,帮助学生理解和实践算法及软件设计原则。在实训过程中,学生...
总的来说,这个实训项目涵盖了软件工程的多个方面,从编程语言(Java)和开发工具(Ant、JUnit)到版本控制和代码质量管理(Sonar),还包括了操作系统(Linux)和图形处理(Bitmap、N-Puzzle),旨在全面培养学生的...
这个主题主要涉及到如何使用编程语言处理图像数据,包括读取、修改和保存图像。在这里,我们将重点关注Bitmap对象及其在图像处理中的应用。 Bitmap是Android系统中用于存储图像数据的一种基本类型,它源自于DIB...
【N-Puzzle】是软件工程实训中的一个经典问题,它是一种基于滑动拼图的游戏,通常以3x3或更大的网格形式出现。在这个问题中,玩家需要通过移动方块来达到一个目标状态,例如在3x3的版本中,目标通常是将数字1到8按照...
在本篇2015年软件工程实训的Java小程序完成要求中,我们主要探讨的是如何利用Java编程语言来设计和实现小型应用程序,也就是常说的Java小程序。这些小程序通常用于教学、练习或者解决特定的计算问题,是软件工程学习...
在这个实训项目中,学生和教师将深入学习并应用一系列关键的IT技术,包括版本控制工具Vi(或Vim)、编程语言Java、构建工具Ant、测试框架JUnit以及代码质量分析工具SonarQube。以下是这些工具和技术的详细介绍: 1....
GridWorld是一个教育工具,它用Java语言实现了一个二维网格环境,用于教授对象导向编程、软件设计原则以及算法。在这个阶段,学生们可能面临了更多高级的挑战,如增加新的功能、优化现有代码或解决更复杂的问题。 ...
soya2d, Soya2D是用于现代网络浏览器的web交互式 animation(game) 引擎 Soya2D是用于现代网络浏览器的web交互式 animation(game) 引擎 Version2正在测试中项[removed] //define scene var scene = { onPr
在本篇关于“Bug Variations”的2015年软件工程实训内容中,我们主要讨论了Bug类及其扩展,以及观察这些行为的“runner”类。以下是对标题和描述中涉及知识点的详细说明: 1. **Bug类的方法**: ...
【GridWorld阶段2:基本任务】是2015年软件工程实训的一部分,主要涉及到使用Java编程语言在GridWorld环境中实现一系列的特定任务。GridWorld是一个教育性的Java环境,它提供了一个二维网格来模拟和控制虚拟对象的...
Soya是一个旨在以灵活的方式处理YAML和JSON文件的程序,我希望它将对配置管理有用。 执照 版权所有(c)2015 REA-Group 特此免费授予获得此软件和相关文档文件(“软件”)副本的任何人无限制地处理软件的权利,...
在本篇关于“交互对象”的2015年软件工程实训中,我们将深入探讨 Critter 类,这是一个在Actor类基础上扩展的行为模式。Critter 类的演员具有共同的行为模式,但每种类型的Critter可能有不同的细节。...
在GridWorld中,我们主要关注的是几个核心的类和接口,它们构成了这个模拟环境的基础。GridWorld是一个用于教学目的的编程环境,它允许用户创建和交互复杂的网格状系统,其中包含各种活动对象,如Actor。...
在软件工程中,数据结构的选择和设计是至关重要的,因为它直接影响到程序的效率和可维护性。本部分探讨的是网格数据结构,特别是2015年软件工程实训中的"Grid Data Structures"主题,主要涉及一个名为`AbstractGrid`...