#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...

gravicappa.github.io/shen-js/s

@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.

Follow

@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".

@tetrislife

What other thing would you suggest the author do to monetize it?

Same thing most other modern software projects do: release it as free software, post the reference implementation on a public forge site like GitLab, publish documentation, invite contributors to submit pull requests, and do whatever it takes to make the language more popular. Setup a method to donate money to the project to even out expenses during this initial release phase. Then, if it gains a big enough following, start selling services to potential commercial customers.

The Shen language seems well suited to systems that need to be provably correct and maintained over long periods of time, so I would look for companies that need to use Formal Methods and are interested in maintaining code over a long period of time, such as finance or medical services.

If it does not succeed that way, it won't ever be profitable. It sucks but that is how capitalism works. Trying to milk extra funding out of potential users by obfuscating documentation in the hopes that you can earn more money selling books it is never going to work.

@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.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.