racket-gui-easy
biwascheme
racket-gui-easy | biwascheme | |
---|---|---|
8 | 16 | |
129 | 724 | |
- | 0.3% | |
7.8 | 8.4 | |
2 months ago | 12 days ago | |
Racket | JavaScript | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
racket-gui-easy
- Racket Language
-
Racket: The Lisp for the Modern Day
Looks like you're already in Emacs. I strongly recommend racket-mode as mentioned in another thread.
With regard to prototyping GUI's I'd suggest taking a look at https://github.com/mfelleisen/7GUI. https://github.com/Bogdanp/racket-gui-easy could also be a good place to start.
With regard to Racket more generally, I'm probably not the best person to ask since I had a very high friction start where I just banged my head against the wall until things made sense.
-
Humble Chronicles: Managing State with Signals
I took a similar approach in my Racket library, gui-easy[1,2]. Though I opted to not defer any computations, any observable (similar to a signal from the post) update propagates to observers immediately, and there's no incrementality -- observables are just boxes whose changes you can subscribe to. Regarding the disposal problem, I used weak references and regarding the where to take observables and where to take concrete values as input question, I decided that any place an observable can go in, a concrete value can as well and it's been a convenient choice so far. For fun, here's an example[3] that builds the todo UI from the post.
[1]: https://docs.racket-lang.org/gui-easy/index.html
-
If you were hired to create a new distribution of Lisp, what would you include?
For native apps, I would devote coding resources to the Guile-GI project which generates Guile bindings to the cross-platform Gtk C library by way of the Gnome Object Introspection and Reflection library. I would also port the Racket gui-easy library over to Guile-GI so declarative GUIs could be written.
-
What programming language is good to make GUI's
There is also gui-easy a declarative gui framework: https://docs.racket-lang.org/gui-easy/index.html
-
7GUIs
It’s not the only version either
See https://github.com/Bogdanp/racket-gui-easy/tree/master/examp...
},
biwascheme
-
Embeddable Common Lisp 23.9.9
If Scheme is something you enjoy, BiwaScheme's interpreter can be instantiated from within Javascript and can be used to evaluate Scheme code.
https://www.biwascheme.org/
- BiwaScheme is a Scheme interpreter written in JavaScript
-
Directly compiling Scheme to WebAssembly: lambdas, recursion, iteration
This project is very exciting. In the meantime, there are a couple of options:
BiwaScheme: https://www.biwascheme.org/
Advantages: written in JavaScript, with excellent JS interop. Project has some history.
Disadvantages: slower than S7 (though still plenty fast for many uses), less-complete (e.g., no syntax-rules or syntax-case, though it does have its own define-macro).
S7 Scheme: https://cm-gitlab.stanford.edu/bil/s7
Written in C, but can be transpiled to WASM (see https://github.com/actonDev/s7-playground/ )
Advantages: This project also has some history. Considerably faster than BiwaScheme.
Disadvantages: JS interop is clumsier (basically the same issues as JS interop with any WASM code... this could probably be mitigated considerably if someone wanted to take the time).
-
All Web frontend lisp projects
For Scheme implementations there are LIPS and biwascheme. I haven't done more than play around with them, so I can't really give an informed opinion about pros and cons or favorites.
-
My reading workflow (you guys might find some bits from it useful)
I used to have hundreds of open tabs. From there I kept repurposing it to do more stuff with the browser until it reached its current state, where I want to make it a "extend firefox from Emacs" thing. It kinda do that already, but extending the firefox-extension itself require the extension to be re-built (so you need whole javascript tooling, rebuild and reload the addon etc). I am considering adding something like biwascheme to it soon to work around that.
-
The stepmotherly treatment of Windows platform by Scheme implementors
And then users can just use biwascheme and run programs in mainframes and their smart toasters
-
If you were hired to create a new distribution of Lisp, what would you include?
Languages like Biwa Scheme and LIPS Scheme are good for running Scheme in the browser. But I would prefer compiling Scheme code to JavaScript in the server, then serving the compiled JavaScript image to the browser.
-
LIPS Scheme version 1.0.0-beta.15 is out
Just a note that even BiwaScheme doesn't fully implement call/cc, it doesn't save the whole environment when capturing.
Very cool! Do you know how this compares with Biwascheme? https://www.biwascheme.org/
-
Racketscript/Racketscript: Racket to JavaScript Compiler
Biwascheme has some weird scoping bugs that makes me a litte afraid of using it for serious stuff. It seems nixe and all, but this: https://github.com/biwascheme/biwascheme/issues/125 is not very confidemce inspiring.
There is another schemey language that compiles to JS that accepts things like this:
(when (start-are-aligned?)
What are some alternatives?
bang.html - 💎 Good.HTML. A nice framework without the bad stuff. Lots of custom elements, and nice templates. Good. HTML [Moved to: https://github.com/crisdosyago/good.html]
LIPS - Scheme based powerful lisp interpreter in JavaScript
7guis - 7GUIs is a GUI programming usability benchmark.
gambit - Gambit is an efficient implementation of the Scheme programming language.
bgjs
schism - A self-hosting Scheme to WebAssembly compiler
fidgetty - Widget library built on Fidget written in pure Nim and OpenGL rendered
webcontainer-core - Dev environments. In your web app.
CIEL - CIEL Is an Extended Lisp. Scripting with batteries included.
racketscript - Racket to JavaScript Compiler
7GUI - the 7 gui project
reference-types - Proposal for adding basic reference types (anyref)