Dyon 0.4 is now released!
Dyon is a rusty dynamically typed scripting language, using a lifetime checker instead of garbage collection. It has an object model similar to Javascript, but with option and result types instead of null. The language uses dynamic modules for organizing code, which makes it easy to use for interactive coding.
Previous blog posts:
- Dynamo (Dynamo was the old name, the language is now renamed to Dyon)
- Scripting without garbage collector
- Error handling in Dyon
You can now use Dyon for interactive coding!
I am experimenting with a setup where a Rust application starts a loader script, which then loads and refreshes another module while running. It slows down to 1/10 of the speed when the window is unfocused.
You can try it out yourself! I added instructions to the readme.
About Piston in general
The Piston project is a large collaboration between many programmers to build a modular game engine in Rust. Currently, there are 100 repositories and 176 people who have contributed to various projects.
Because Rust is a new programming language with an unusual model for memory safety, we need to find good patterns for designing libraries in the domain of game development and interactive applications. This means a lot of experimentation with design, but also testing and integration.
Piston has a minimalistic modular core which is used with various window and graphics backends. This design let people can use it for smaller project while development continues toward bigger goals. Many libraries can be used on their own, and window and graphics is completely decoupled.
The Piston project collaborates with other open source projects in the Rust community, such as the Gfx, RustAudio and Servo.
In addition to maintainance of important libraries, we do a lot of research and thinking outside the box. This is possible because Rust scales well with a big project, so we have time to do other stuff instead of fixing bugs. Conrod, Meta-Parsing and Dyon are part of the research projects.
If you have a project that you want to work on as a community project, you are welcome to start it under PistonDevelopers. Everybody who contributes gets access to all the repos, so people can help out across projects and choose what they want to work on. We use a tool, Eco to automate the thinking of breaking changes across the ecosystem.
At the moment Piston is going through a complex upgrade for 2D graphics, but got through the hardest parts and is making progress. Because of a breaking change in Rust, we recommend using beta or nightly until Rust 1.8 is stable. After this upgrade, we will start optimizing 2D rendering.