8 ms·
The Shen Programming Language
- knuckleheads 3y agoHas 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 3y agoSays they transitioned to 3-clause BSD a while ago: https://shenlanguage.org/OSM/License.html https://shenlanguage.org/OSM/License.html
- knuckleheads 3y agoAh nice, thank you
- anonzzzies 3y agoThere 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 3y agoThere are open source ports that have a clear license now: https://github.com/Shen-Language/shen-sources/blob/master/LICENSE.txt 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 3y agoThe page "Shen in 15 minutes" gives a quick introduction: https://shenlanguage.org/OSM/15min.html https://shenlanguage.org/OSM/15min.html
- givemeethekeys 3y ago[flagged]
- kitd 3y agoI know. Interesting & educational, isn't it?
- bossyTeacher 3y agoonly they bring something new. Many of the languages posted here don't fall in that category. Can't learn something if you have already learned it before
- chris_st 3y agoBut, of course, some of us are in that lucky 10,000 [0] who haven't learned that particular lesson yet. 0: https://xkcd.com/1053/ https://xkcd.com/1053/
- cardanome 3y agoThe hell are you talking about? Shen is absolutely wild: https://www.youtube.com/watch?v=BUJNyHAeAc8 https://www.youtube.com/watch?v=BUJNyHAeAc8
- AnimalMuppet 3y agoWell, this is a site that a lot of programming nerds read. Programming articles seem to interest enough people here that they keep making the front page. Maybe just ignore the articles that don't interest you?
- 7thaccount 3y agoShen was on here ages ago. Probably back in like 2012 if not earlier. Programming languages and discussions on them pop up all the time as new folks discover them and it makes for good continuing talks.
- chris_st 3y agoWhile we've been doing pottery for about 30,000 years, and woodworking for perhaps 10,000 years, we've only been programming (digital) computers for about 75 years or so. We're still figuring out how to do it. Trying new programming language ideas is a big part of that... I started with Fortran 77, and man oh man am I glad I can program in Go now. Thank you language experimenters!
- VyseofArcadia 3y agoWhen 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/ https://learnxinyminutes.com/
- fipar 3y agoNot the same, but this section of the book could work as a quick intro: https://shenlanguage.org/TBoS/tbos_34.html#34 https://shenlanguage.org/TBoS/tbos_34.html#34;
- rlonstein 3y agoIt does: https://shenlanguage.org/OSM/15min.html https://shenlanguage.org/OSM/15min.html
- VyseofArcadia 3y agoThat 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.
- bryant 3y agoLearnXinYminutes 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 https://github.com/adambard/learnxinyminutes-docs
- VyseofArcadia 3y ago[flagged]
- TimTheTinker 3y ago
- samatman 3y agoThe author, Dr. Mark Tarver, is perhaps best known for the essay The Bipolar Lisp Programmer: https://marktarver.com/bipolar.html 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 https://shenlanguage.org/OSM/Recursive.html
- nextos 3y agoHe 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 3y agoAgree, 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 https://www.amazon.com/s?k=1915012112 Edit: The book is available online, but is scanned in low res blurry format, very not readable.
- ngcc_hk 3y agoNot sure it is. It it sort of hypertext ??? https://shenlanguage.org/OSM/Introduction.html https://shenlanguage.org/OSM/Introduction.html
- cylinder714 3y agoThat is the spec. The Book of Shen: https://shenlanguage.org/TBoS/tbos.html https://shenlanguage.org/TBoS/tbos.html
- nicechianti 3y ago[dead]
- maxfurman 3y agoI 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 3y agoIt's a hybrid of lisp and prolog.
- JoelMcCracken 3y agoShen 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 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.
- munchler 3y ago> 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). That sounds interesting. Can you give an example of a type defined this way that would not be possible in most languages?
- angiosperm 3y ago[flagged]
- recursive 3y agoThe people have spoken and the people like GC.
- CyberDildonics 3y agoThe people who use software have spoken and they don't like GC.
- jdiff 3y agoReally? Because I myself asked the people who used software about Garbage Collection and they said "I mean, it's a job." The people who use software have absolutely no idea or opinion on the topic.
- CyberDildonics 3y agoThe people who use software have absolutely no idea or opinion on the topic. I asked 'the people who use software' and they don't like excessive memory usage or stuttering from bulk collection. Also libraries written in a garbage collected language are only going to be usable in the same language. Lots of people only think about the language they want to program in, then rationalize it being fine. That's how we got stuff like electron. When people think about what someone actually wants to receive that stuff goes away.
- lispm 3y ago> I asked 'the people who use software' and they don't like excessive memory usage or stuttering from bulk collection. Two of the most widely programming languages are implemented on top of garbage collected runtimes: JavaScript and Java. There are many applications where garbage collection works just fine. > Also libraries written in a garbage collected language are only going to be usable in the same language. See .net and the JVM. Those are nowadays runtimes with garbage collection and multiple languages. https://en.wikipedia.org/wiki/List_of_JVM_languages https://en.wikipedia.org/wiki/List_of_JVM_languages https://en.wikipedia.org/wiki/List_of_CLI_languages https://en.wikipedia.org/wiki/List_of_CLI_languages
- mthom 3y agoI'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/ 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!
- novagameco 3y agoTip for anyone trying to show off a language: put a hello world or fizz buzz on the front page
- dkarras 3y agothis is not one of "those" languages that is begging for your use / mainstream adoption.
- philosopher1234 3y ago> 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 3y agoyes, 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 3y agoSome 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 3y agoHere's what you're looking for I guess. But yeah, not that easy to find. https://shenlanguage.org/OSM/15min.html https://shenlanguage.org/OSM/15min.html
- deleted 3y ago[deleted]
- deleted 3y ago
- juris 3y agoLove the name. Literally the only reason why I clicked into this-- "Hey, is this referencing what I think it's referencing?" Neat.
- 6gvONxR4sf7o 3y agoI 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.
- anonzzzies 3y agoThe Shen releases for Mac OS X seem to all (I tried 2.7 to 3.0) segfault on m1. That's not great. Edit: seems the github stuff is ancient (before m1) and not maintained. Should be indicated in those repositories really. The way to get it to (very easily) work, is to install sbcl, download a kernel here[0] and compile it. Works fine. [0] https://shenlanguage.org/download.html https://shenlanguage.org/download.html
- ngcc_hk 3y agoThere is kernel update even on Feb. Just not sure how to use it or install it. Is there a source something that is installable under sbcl. Can it do quick lisp? What is it?
- anonzzzies 3y agoDownload the S38, install sbcl and do the load from README from the REPL. It’s very fast and then it works fine.
- trenchgun 3y agoYeah it took barely 2.5200843811035156e-4 secs to compile on M2 Mac.
- ngcc_hk 3y agoGiven he wrote the bipolar issue of lisp and lisp users, what/how/why this language solve this issue?