4 ms·
I was considering Shen[1] for this type of use, since it is implemented in many languages. It is a Lisp with built-in Prolog. Feature list from the site's main
by eggy 4y ago
I was considering Shen[1] for this type of use, since it is implemented in many languages. It is a Lisp with built-in Prolog. Feature list from the site's main page:
pattern matching,
lambda calculus consistency,
macros for defining domain specific languages,
optional lazy evaluation,
static type checking based on sequent calculus,
one of the most powerful systems for typing in functional programming,
an integrated fully functional Prolog,
an inbuilt compiler-compiler,
a BSD kernel under 15 languages (Lisp, Python, Javascript, C ...)
and operating systems (Windows, Linux, OS/X),
is extensively documented in a book
has nearly a decade of use.
Aditya Siram made two very good videos on Shen. You can program your front and backend in Shen given Shen is implemented in JavaScript and other PLs.
I know somebody did a port to C, but I am not sure if you can then make an exe as described for Janet.
https://www.youtube.com/watch?v=lMcRBdSdO_U https://www.youtube.com/watch?v=lMcRBdSdO_U
https://www.youtube.com/watch?v=BUJNyHAeAc8 https://www.youtube.com/watch?v=BUJNyHAeAc8
You implement Kλ in your PL of choice if it is not already available, and voila, you can program in Shen!
[1] https://shenlanguage.org/ https://shenlanguage.org/
- packetlost 4y agoI looked into Shen recently. I ultimately decided not to use it because their remote compilation model thing seemed... cludgey. I've since landed on Gerbil Scheme (https://cons.io https://cons.io) which is a modern front-end to Gambit Scheme. It seems like the perfect mix of performance, (modern) features, R*RS, and FFI that I want/need. Baring some significant bugs, it will probably be my goto Lisp going forward.
- eggy 4y agoI am not sure what you mean by "remote compilation". I know there was Shen Professional that required a monthly subscription and it was on the server, however, Shen is available in different PL ports for free and local use. It is like a Haskelly Lisp. Very well thought out too with a great book that covers a lot of ground including PL history and logic. I used to use Gambit Scheme, and although I have two linux machines, I work on Windows for my paying jobs. Gerbil doesn't seem to talk about a Windows install. I shy away from WSL, Cygwin, and MSYS2 in general. I am learning Zig, and I have thought about porting Shen to Zig. The CL port of Shen is the main port (SBCL).
- packetlost 4y agoIf you read into the Yggdrasil project page, it basically says ports of other platforms call others over the network: > By reaching out into the internals of each port using a remote web connection from the centre, we can systematically harness the work done and maintain the system using only 14 connections and not 196 Source: https://shenlanguage.org/yggdrasil.html https://shenlanguage.org/yggdrasil.html The impression I got was if you don't want to use the SBCL backend (and maybe the JS backend), the ecosystem is not super mature. I don't do any dev with(in) Windows outside of WSL, so that's not something I care about. I find Shen interesting as an academic system, but I'm not sure I would consider it for personal tooling or production code. Gerbil doesn't seem like an academic project, it aims to be a batteries included Scheme it seems.
- eggy 4y agoYes, that's the Yggdrasil project; you can use any port of Shen to create code in Shen bringing type checking to Python or JavaScript for example. Does Gerbil really have a lot of real-world projects vs. Shen? I am trying to use Shen for safety related control systems. It is more formal and verifiable than Gerbil. I started in SPARK2014 and I am just playing with Shen to see if it goes better. The videos I linked to in another post in this thread show how you can use Shen to program front end stuff with the JavaScript port of Shen.
- nudpiedo 4y agoThe last time I look at shen it was a complete waste of time, it was like a cooking recipe with all spices combined and then find out the food is still part frozen. Let alone no way to build programs or having 8MB of js programs etc.