7 ms·
Learn Shen
- keithvan 14y agoAnyone else thought of Shen in League of Legends when this was posted? :)
- cantankerous 14y agoI had JUST finished playing a round. And yes. I did.
- jychang 14y agoYep. Sharing a name with one of the most played characters in the most popular multiplayer game in the world might not be very good for SEO, I assume. A quick google for 'Shen' proves as much.
- zokier 14y agoIn my google search for 'shen', the language homepage is on 4. position. That's pretty well for an obscure programming language imho. LoL character has 2 results and one video in the first page, so it's not really overpowering other Shens.
- hga 14y agoErrr, in the search I just did it's #3. But I guarantee you that has a lot more to do with Google's knowledge of what I search for and am (potentially) interested in than anything else.
- markokocic 14y ago> A quick google for 'Shen' proves as much.? As opposed to searching for 'Go', Ruby', 'C' or 'Python'? Don't worry, if it becomes at leas a bit popular, Google will learn how to search for it.
- BasDirks 14y agoYes and it's the 50th most common surname in China, the Chinese word for spirit/god, a character in a pletora of other popular games and fiction, etc etc. Got any other random associations to share with us?
- ante_annum 14y agoI don't understand what Shen brings to the table that other functional languages don't. Is there a concise imperative of why to learn Shen?
- deleted 14y ago[deleted]
- cantankerous 14y agoSecond this. What's Shen's hook? I see a lot of prefix notation for function application...seems Scheme-y to me. I thought things had trended away from that.
- lmkg 14y agoIt seems like Shen is a successor to Qi, which if I remember right, had a type system that incorporated full-blown classical logic. If Shen follows in this tradition, then its type system would be significantly more expressive than standard functional type systems. It would allow not only arbitrary predicates on input and output, but also relationships between them. Needless to say, such a type system is Turing-complete, and therefore not guaranteed to terminate. Systems like this are usually used as theorem-proving systems, not actual production languages. I think Qi was intended to be a practical language that allowed arbitrary proofs about the properties of its programs. I have not been able to find any reference to this in a quick perusal of Shen's documentation.
- pash 14y agoStandard type systems are Turing equivalent. This includes the type systems of functional languages like ML and Haskell. In fact, there's a neat correspondence [0] between algebraic data types and propositional logic (examples in Haskell): union types (data T = mkTA A | mkTB B) <-> logical disjunction (A ∨ B) product types (data T = mkT A B) <-> logical conjunction (A ∧ B) function types (type T = A -> B) <-> logical implication (A → B) the unit type (()) <-> true (⊤) bottom (⊥) <-> false (⊥) (And, if you were wondering, that's where the symbol for "bottom" comes from!) Inference on richer type systems, e.g., systems that support dependent types (types built up from expressions about the values they represent) is in general undecidable, which is why some dependently typed languages (e.g., Coq) have type systems that are not Turing equivalent—the language designers have consciously pared down parts of the type system in order to guarantee that type-checking terminates. 0. This is the Curry-Howard correspondence: http://en.wikipedia.org/wiki/Curry–Howard_correspondence#Correspondence_between_classical_logic_and_control_operators http://en.wikipedia.org/wiki/Curry–Howard_correspondence#Cor...
- fdr 14y agoIt has an absolutely myopic and absurd license. http://www.shenlanguage.org/license.html The strange part is "no derivatives that don't comply with the spec, even if you rename it." It is not free software. Unfortunately this is something I have to mention every time Shen is mentioned, because I'm irate that, in spite of my interest in it, that both it (and its predecessor Qi) insist on doing something so strange with no apparent legitimate purpose (some kind of bogeyman of fragmentation killing the project).
- JoelMcCracken 14y agoShen seems pretty cool, but there are lots of other things out there that are also cool. When licensing is such a big deal, I think its bizarre license is reason to steer away from Shen. It not being "free software" is pretty debatable imo. Maybe not free with a capitol f, but free enough as an academic language.
- kd0amg 14y agofree enough as an academic language Constructing derivatives of other languages is a pretty common thing for PL academics to do.
- mjn 14y agoFor better or worse, it's not that uncommon for licenses to complicate it. To take one prominent example, Microsoft Research's Z3 is completely proprietary: source-code is available but you cannot make any derivative works of it (except in-house without distribution). The famous Q array-processing language is also completely proprietary. Less restrictively, it's common for things to be released under an "academic use only" or "noncommercial use only" license.
- kd0amg 14y agoAnd the papers I've read about array languages don't base their languages on Q. I haven't done much reading on theorem provers, but I suspect I'll see a lot more papers about things derived from ACL2 or Coq than from Z3.
- d0m 14y agoI've bought the Qi book and have been enlighted by the language it describes. I'm looking forward to play a bit with Shen and see how it compares to other lisps.
- coolg54321 14y agoInteresting logo! lol.
- JacobGoodson 14y agoI think for macro enthusiasts, being able to program the reader directly(with pattern matching) is a good selling point. It also has an inbuilt compiler compiler.