[HN Gopher] The Shen Programming Language
___________________________________________________________________
The Shen Programming Language
Author : tmalsburg2
Score : 188 points
Date : 2024-03-05 12:30 UTC (10 hours ago)
(HTM) web link (shenlanguage.org)
(TXT) w3m dump (shenlanguage.org)
| knuckleheads wrote:
| Has the license for Shen changed in the last few years? Last I
| remember it was a custom one that was off putting. I got and read
| the book years ago, interesting ideas, but not so interesting as
| to try and go further with a language with a weird license.
| macksd wrote:
| Says they transitioned to 3-clause BSD a while ago:
| https://shenlanguage.org/OSM/License.html
| knuckleheads wrote:
| Ah nice, thank you
| anonzzzies wrote:
| There was a crowdfunding to open source it. It seems to have
| gotten more friendly with the open science thing as well. Might
| give it another go.
| fipar wrote:
| There are open source ports that have a clear license now:
| https://github.com/Shen-Language/shen-sources/blob/master/LI...
|
| That said, even if I don't use this a lot, I pay for Shen
| Professional to support development. Like you, I got and read
| the book and like the ideas, and I decided to support the
| project because I rather be sold something explicit (a
| programming language) than who knows what I get sold through a
| language that is open source but depends on a few or even one
| big company to pay the devs.
| hu3 wrote:
| The page "Shen in 15 minutes" gives a quick introduction:
|
| https://shenlanguage.org/OSM/15min.html
| VyseofArcadia wrote:
| When I want to get a quick feel for a language I've never heard
| of, I usually look for the Learn X in Y Minutes[0] page for it.
|
| Shen doesn't have one. Perhaps the author and/or poster should
| remedy that?
|
| [0] https://learnxinyminutes.com/
| fipar wrote:
| Not the same, but this section of the book could work as a
| quick intro: https://shenlanguage.org/TBoS/tbos_34.html#34;
| rlonstein wrote:
| It does: https://shenlanguage.org/OSM/15min.html
| VyseofArcadia wrote:
| That page is less discoverable. From the Shen homepage, I
| click on Learn and hope that they have a 15 minute intro? Vs
| I go to Learn X in Y Minutes, Crtl+F "shen", and I
| immediately get what I want.
| eganist wrote:
| LearnXinYminutes says "Want to add your favorite language
| to the list? Head on over to Github[1] and send a pull
| request!" Right at the very bottom.
|
| Sounds like a great opportunity for you to contribute.
| Especially since the work is basically already done and
| your main concern is discoverability.
|
| [1]: https://github.com/adambard/learnxinyminutes-docs
| TimTheTinker wrote:
| This is the way. Open source projects--languages,
| libraries, toolkits, etc. (and _especially_ those built
| by individuals)--are not like YouTube channels vying for
| your attention, and should not be treated with the arms-
| length "you serve me" mindset that is so common in some
| cultures.
|
| As developers, we exist within a shared ecosystem where
| we all depend on one another. Especially for non-
| commercial open-source projects, those who put themselves
| out there are doing so out of goodwill, _not_ because
| they want to gain fame or money from you (beyond maybe
| covering the cost of hosting the project). The least we
| all can do is support them in some small way and thus
| help build the world of great free software.
| fwip wrote:
| Your personal workflow is what you are used to, not what is
| inherently "more discoverable."
| zztop44 wrote:
| The second option sounds way less discoverable, assuming
| you're interested in learning Shen.
| miroljub wrote:
| Bullshit. Why would a page on some obscure website only you
| know about be more discoverable than a direct link on the
| programming language website?
|
| If you have a problem finding a 15-minute intro, maybe Shen is
| really not for you.
| samatman wrote:
| The author, Dr. Mark Tarver, is perhaps best known for the essay
| _The Bipolar Lisp Programmer_ :
| https://marktarver.com/bipolar.html
|
| If you want to jump straight into what makes Shen interesting,
| read Part 10 of the manual, starting with recursive types:
| https://shenlanguage.org/OSM/Recursive.html
| nextos wrote:
| He has also published _The Book of Shen_ , which is really
| interesting.
|
| Sadly, the lack of extensive free documentation is probably
| harming Shen's popularity.
| fuzzythinker wrote:
| Agree, freely available extensive documentation is a must.
| The link to Book of Shen is for UK. To find it elsewhere,
| search for the isbn, eg.
| https://www.amazon.com/s?k=1915012112
|
| Edit: The book is available online, but is scanned in low res
| blurry format, very not readable.
| maxfurman wrote:
| I am not getting a good sense from the website of what is special
| or unique about Shen. The top line feature (above the actual list
| of features) is the presence of an "S series kernel" which as far
| as I can tell is Shen-specific. After that the top feature is
| pattern matching, which has become common in the mainstream
| languages lately (Java and Ruby come to mind)
|
| A little further digging shows that this language is a Lisp.
| Great! I love lisps and functional programming, and I have a
| particular soft spot for Clojure. Are there any domains where
| this language would excel and CLJ would not?
| JonChesterfield wrote:
| It's a hybrid of lisp and prolog.
| JoelMcCracken wrote:
| Shen is a very unique language, and one of the ways in which it
| is unique is that so much of its marketing, information, etc is
| non-obvious, and less accessible than you might want.
|
| I think the main thing that I find compelling about shen is its
| type system, especially its sequent calculus system (for
| defining types in a way that would not be possible for most
| languages).
|
| The other thing about it that is compelling is how portable it
| is. the main language is implemented in a simple kernel
| language; someone who wanted to port the language to a new
| environment would need to implement a small (relatively) set of
| primitives, and then you can run the entire shen environment on
| top of it.
|
| Its worth looking into, however I do caution that it has plenty
| of rough edges etc.
|
| For me personally I think of it as an inspiration for
| programming languages I wish to develop someday. Additionally,
| if you ever worked in a certain environment and really dislike
| that the language is a bit weak, shen might be something you
| could port to that language and use. For example, I recently
| updated https://github.com/deech/shen-elisp so that some of its
| rough edges were a bit smoothed down and should be more usable;
| I haven't actually written any shen yet that runs in emacs.
| That's still a ways away.
| mthom wrote:
| I've spinning up a new Shen implementation from scratch, in
| Racket, which integrates directly with my Prolog implementation,
| Scryer Prolog:
|
| https://github.com/mthom/scryer-shen/
|
| Several innovations are documented in the README. Both the Prolog
| implementation and the type checker are written in / hosted by
| Scryer (Prolog implementation is done, the type checker is in
| progress). Scryer has many powerful constructs for monotonic
| reasoning which should help to take Shen's type checker in
| particular to new heights of power!
| dsabanin wrote:
| Great job with Scryer Prolog!
| mthom wrote:
| thank you! the scryer community deserves much of the credit
| too. everyone is welcome and encouraged to join us at
| https://github.com/mthom/scryer-prolog! some exciting plans
| in the pipe
| novagameco wrote:
| Tip for anyone trying to show off a language: put a hello world
| or fizz buzz on the front page
| dkarras wrote:
| this is not one of "those" languages that is begging for your
| use / mainstream adoption.
| philosopher1234 wrote:
| > Our mission is to bring the power of Shen technology to
| every major programming platform used by industry and deliver
| to programmers the great power of Shen.
|
| Sounds like it is?
| dkarras wrote:
| yes, but not really. if you reached Shen and would likely
| use it, you probably clicked on that website on purpose.
| the idea behind it is not something you can show with a
| fizzbuzz anyways as it is not your good old regular C skin.
| KerrAvon wrote:
| Some idea of the flavor of the language would be helpful,
| though, and that's surprisingly hard to find at a glance.
| It seems to be another Lisp variant? Maybe?
| samus wrote:
| Here's what you're looking for I guess. But yeah, not
| that easy to find.
|
| https://shenlanguage.org/OSM/15min.html
| juris wrote:
| Love the name. Literally the only reason why I clicked into
| this-- "Hey, is this referencing what I think it's referencing?"
| Neat.
| 6gvONxR4sf7o wrote:
| I see that it has an inbuilt compiler-compiler, prolog, and
| features for DSLs. Is the idea that Shen good for implementing
| statically typed, compiled languages? Or for metaprogramming?
|
| Looks like it's been around for a while and I'm curious what
| folks have used it for.
___________________________________________________________________
(page generated 2024-03-05 23:00 UTC)