#Shen in 15 minutes
Shen is a portable #lisp like functional programming language with following features: Pattern Matching. Backtracking, Lambda Calculus Consistency, Lazy Evalution, Optional Type Checking, Configurable Type Rules, Integrated Logic Engine, Built-in Compiler-Compiler, Unique Macros...
http://gravicappa.github.io/shen-js/shen.html#/.learn/15min.html
@leobm@norden.socialThe only problem I have with Shen is how locked-down it is. The author, Mark Tarver is openly disdainful of free software. To put it mildly, he maintains some very weird, archaic ideas about software business models.
Not only that, but he makes it deliberately difficult to learn more about using Shen unless you have bought a physical copy of his book. Tarver "publishes" the Shen book onlin — as a sequence HTML pages each with a JPG images of a single page of the book. When I tried using wget
to pull the book it failed because Tarver had gone out of his way to implement some special feature in his HTTP server that confused wget
. I hope he wouldn't object to me borrowing a copy of the Shen book from the library.
As far as features go, I love the pattern matching syntax, and I love that the macro evaluator has the full power of the Prolog language available to it to check types and generate code. It seems like it would a useful programming language if I could just figure out how to create foreign language bindings to the programming platform upon which the compiler is implemented.
I tried running Shen in Emacs Lisp, for example, and couldn't for the life of me figure out how to use it to call into Emacs Lisp built-in functions, even by reading the code of the Shen compiler. It was a completely isolated system that could only take a program as input and produce a textual output. After all that trouble trying to read the Shen documentation, I eventually just gave up on it.
But there are plenty of alternatives to Shen. You can use any Scheme or Common Lisp implementation and import a Lisp system such as MiniKanren to do type checking and automated code generation. And William Byrd, co-author of MiniKanren is always very willing to share documentation and explain how his system works to anyone who asks.
@ramin_hal9001 as I recall reading, Shen is production-ready. What other thing would you suggest the author do to monetize it? Or should he not monetize it? Even GNU/FSF are clear on "free as in speech, not as in beer".
@ramin_hal9001
> never going to work
I haven't dug too much into alternatives, but tacitly hard-selling books doesn't seem as bad as, say, advertising. Even GNU sells manuals, for example, for FLOSS likely not as well-designed.
We are spoilt by quality stuff like SQLite and Fabrice Bellard's software being available for free, but let us also recall the difficulties other equally-widespread software like curl had. Donations and support subscriptions only seem to work in a select few instances.
@tetrislife
but tacitly hard-selling books doesn't seem as bad as, say, advertising
et us also recall the difficulties other equally-widespread software like curl had
You misunderstand me, I do not mean to say that selling books will not work. I mean to say trying to obfuscate online manuals hoping to encourage more book sales is never going to work.I am not deriding Mark Tarver for trying to make money off of his invention. I am only saying his business model, his expectation for how he should make money off of it, is poorly informed and detracts from the quality of his work.