https://github.com/hexaredecimal/groovyvmexperiment
A LIVE, programmable environment for Groovy inspired by Pharo Smalltalk and Interlisp
https://github.com/hexaredecimal/groovyvmexperiment
groovy interlisp java jvm lisp live pharo-smalltalk recreational-programming smalltalk vm
Last synced: 5 months ago
JSON representation
A LIVE, programmable environment for Groovy inspired by Pharo Smalltalk and Interlisp
- Host: GitHub
- URL: https://github.com/hexaredecimal/groovyvmexperiment
- Owner: hexaredecimal
- Created: 2025-10-02T11:53:59.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-10-05T22:15:47.000Z (6 months ago)
- Last Synced: 2025-10-17T16:47:23.852Z (5 months ago)
- Topics: groovy, interlisp, java, jvm, lisp, live, pharo-smalltalk, recreational-programming, smalltalk, vm
- Language: Groovy
- Homepage:
- Size: 538 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LiveGroovyExperiment

>> The goal is to create a LIVE Envornment for Programming in Groovy inspired by Interlisp,
Smalltalk etc.
>> The VM must be reflective and dynamic. Groovy is perfect for that.
## Motive
Well think about, the JVM is simply a virtual machine and it is dynamic but I have never seen a Smalltalk like environment for JVM. I think the main reason is that JVM languages are mostly static typed and generate bytecode from typed programs.
Groovy allows a syntax nearly identical to java but it break the type dependency and generates byte code that is dynamic. Why not make one, in groovy?
## Groovy Advantages
- Can execute from a string at runtime
- Has seamless intergration with Java and the JVM
- Metaprogramming
- Dynamic typing
- Checked Optional Static Typing
## Screenshots
Latest Screenshots
The VM rendering the welcome window.
The VM showing the desktop with a wallpaper
## Building
#### Requirements
- *JVM*
- *Gradle*
- *Groovy*
#### Build Steps
```sh
$ git clone git@github.com:hexaredecimal/GroovyVMExperiment.git
$ cd GroovyVMExperiment
$ cd gradle run
```
## References
- [Pharo SmallTalk](https://pharo.org/)
- [Squeak](https://squeak.org/)
- [Interlisp](https://interlisp.org/)