Hacker News new | past | comments | ask | show | jobs | submit login
Next version of Shen will be BSD licensed (groups.google.com)
119 points by tizoc on Jan 6, 2015 | hide | past | favorite | 46 comments



If you are interested in Shen, you might be interested in previous discussions on Hacker News:

https://news.ycombinator.com/item?id=8250316

https://news.ycombinator.com/item?id=8359796

https://news.ycombinator.com/item?id=3117235

Also, check out Fogus's summary of Lisps:

http://blog.fogus.me/2011/05/03/the-german-school-of-lisp-2/

I signed up as a donor who gives 5 pounds a month to this project, because the ideas going into this project are extremely innovative and deserve support.


I'd like to buy the book related to the language, looks interesting, I am willing to pay list price, but fedex wants a mere $64 to ship it.

Meanwhile I'm an electronics experimenter kind of guy and I currently have some weird semiconductors arriving from China where the entire order including shipping was only about $45 (I believe the shipping portion was $8). Admittedly a very small and light packet compared to a textbook, but still...

In an online, ebook, internet world, something is wrong with $64 shipping charge from the UK yet only $8 from China. Maybe a helpful soul could have a pallet of books shipped to China, then send them around the world for the usual Chinese shipping "pocket change" cost.


Why in 2015 are we flying paper half-way around the world?

Doesn't Amazon (and others) have a print-on-demand service that would be more cost effective and not waste the fuel of flying 20lbs of paper across an ocean?


The amount of fuel used on that twenty pounds is trivial when factored in with all the tennis rackets, shirts, etc that are also in that plane. However, this doesn't get to the crux of the problem that print on demand is still an immature technology compared to offset printing, and provides an inferior good. Running a printing press is an artform, and pure digital doesn't offer the same quality tools quite yet.


As someone who reads physical books almost exclusively, print on demand is getting better, but offset still reigns supreme.


I really like books, although I'm comfortable with online/ebook reading, and I have to say that the company chosen for this book delivers superb quality compared to every US origin print on demand book I've looked at, at least for the first edition of this book. I can't tell it from offset (although some embedded links came our grey because I assume they were delivered in color and not caught in galleys). Even the color artwork looks great---ironically, it's the back corner where the company puts its standard ISBN/price/self-advertising rectangle that looks bad when looked at very closely and makes clear someone dropped the ball somewhere (maybe that's an artifact of the author choosing such a high quality for the cover).


It has Books by Springer (an academic publisher) is are printed on demand by Amazon, I'm sure there are others.


The amount of fuel used on that twenty pounds is trivial when factored in with all the tennis rackets, shirts, etc that are also in that plane. However, this doesn't get to the crux of the problem that print on demand is still immature technology compared to offset printing, and offers an inferior good. Running a printing press is an artform, and pure digital doesn't offer the same quality tools quite yet.


The amount of fuel used on that twenty pounds is trivial when factored in with all the tennis rackets, shirts, etc that are also in that plane. However, this doesn't get to the crux of the problem that print on demand is still immature technology compared to offset printing, and offers an inferior good. Running a printing press is an artform, and pure digital doesn't offer the same quality tools quite yet.


What problems do you have with 7 pounds for airmail and 20 pounds for tracked airmail? I've used the airmail option to the US for the first edition of The Book of Shen without problem.

There's also online resources for learning that if you have enough functional programming background ought to be able to get you started: http://www.shenlanguage.org/learn-shen/index.html

Added: it's a 400 page print on demand book, I don't have a scale that's suitable for its weight range but the first edition, which has its form factor, is well over a pound.

(http://www.fast-print.net/bookshop/1506/the-book-of-shen-sec...)


"What problems do you have with 7 pounds for airmail and 20 pounds for tracked airmail?"

That Amazon will ship me print on demand in two days for "free", lulu charges $4, my favorite electronic seller in China charges $2 per item (admittedly each item is lighter than a book) I mean, really, guys?

I'll buy the book, looks interesting, I'll just wait until distribution picks up. I thought about getting a unlicensed ebook copy from "the usual sources" and just donating about 25 bucks to the project, but I'll probably wait.

There's a business concept where you never say "no". If you don't want to do something, like, say, ship outside the UK, you just charge "F you money", or whatever the UK translation is, as a fee. "So how about you rewrite that backend in cobol?" "No problem, but that's going to be kinda expensive, like $750/hr, just so you know" "In that case, lets not do that" I see those kind of shipping charges and I hear this message being delivered. Its not that I can't afford it, its that I don't like being told to F off. Someone doesn't want to ship internationally, in 2015, well, ok, but then they should not be offended if they get made fun of a little bit.


I purchased the second edition some months ago and seem to remember the airmail taking only about a week to get to the US.


I agree, I'd also like to buy the book. Looks pretty good, kind of similar to "The Haskell Road to Logic". But it doesn't look like he's very interested in selling outside the UK. I'll wait and hope it shows up on Amazon.


7 pounds, ~10.50 US$ as a maximum to ship it anywhere in the world, be it Pitcairn Island or the US, doesn't strike me as quite equaling not "very interested in selling outside the UK".


Yes, but that's without any type of guarantee that it will even arrive. For that, you have to pay significantly more.

Also, it's pretty trivial to get set up on Lulu and even Amazon and other distributors these days, all of whom can print and ship inside the U.S. and charge local shipping (and many other countries as well). If he's unhappy about the cut they take, he could raise his price by at least $10 (what is saved on shipping) and probably more.

I'd prefer to pay $30-$40 for a book on Amazon that I can use Prime for, than $15 + $10 shipping for a book that may or may not arrive from overseas, and will take a week or more to do so.


This is really really good news. Shen has some really cool aspects, but the licensing is, to put it mildly, weird. Having a standard license will really help adoption and investigation.


This is welcome news. Qi (the predecessor of Shen) gets mentioned every now and then in programming language discussions (eg. it has a Turing Complete type system), but I've refused to try it so far due to its non-Free license.


I had a read of the website, but I don't really understand what people use Shen for, but presumably, it has some benefits over other lisps?

Can anyone enlighten me?


From the fine website http://www.shenlanguage.org/

  Shen is a portable functional programming language that offers

  pattern matching,
  lambda calculus consistency,
  macros,
  optional lazy evaluation,
  static type checking,
  an integrated fully functional Prolog,
  and an inbuilt compiler-compiler.
Among other things, it's an attempt to create a Lisp that incorporates some of the things you find in functional languages like Haskell.

Here's an essay, from an invited talk for the 2009 European Conference on Lisp, on the motivations to create Qi and then Shen: http://www.lambdassociates.org/blog/nextlisp(1).htm


Very interesting essay. Kind of reminds me of OMeta and some of the stuff that comes out of VPRI with Alan Kay et al. But mostly the approach reminds me of OMeta's way of "absorbing the easy stuff" and "infiltrating" - but from a different (and perhaps more rigorous) angle.

Now if only the (cheap!) book on Shen was available as a DRM-free epub book.


Indeed, and that's one of the things I find attractive about it, especially since I believe Lisp is the One True Way and much of the parsing effort that VPRI worked on is irrelevant to me (but not things like the idea of parsing illustrations in RFCs and generating a TCP/IP stack!).

As for the book, right now the work on the project by the author is supported by direct patronage or buying his books. And there's much more in the book than just "leaning Shen". Here's the web page for it: http://www.shenlanguage.org/learn-shen/TBoS/

Which includes the preface, table of contents, and conceptual dependency table, i.e. what previous chapters you need to have mastered to understand each chapter.

From the chapter titles and subtitles, here's stuff that goes substantially beyond "learning Shen":

  Higher Order Functions (e.g. partial application and currying)
  Non-determinism (non-deterministic algorithms)
  Shen-YACC (sigh, needed for e.g. pattern matching)
  Lambda Calculus
  Writing Good Programs
  Sequent Calculus
  The SECD Machine
  Shen Prolog (12 pages on Prolog per se)
  The Compilation of the Sequent Calculus
And there's a lot of material on types (one of the features of Qi/Shen). So you get a whole lot of CS exposition in the context of Shen.


Oh, I didn't mean to imply the book wasn't (well didn't appear not to be) great value. I'd be happy to pay ~20 GBP for a DRM free epub version. Not sure if I'll buy the paperback.


It wasn't really used for anything before, because of the bizarre custom license.

However, it looks like it has a lot of interesting features that people might want to use. For example, it can be trivially embedded in pretty much any other language by implementing a handful of core functions. It has an embedded prolog DSL. It has pattern matching, static type checking, lazy evaluation.


I just read over the license, didn't see too weird except the part about the spec. If I read it correctly you can't modify shen if your modifications don't conform to the specification.


The problem is the license tries to say the same thing at least 3 times, and that results in tremendous ambiguity.

If you wanted to use it commercially and safely, you'd have to spend quite a bit on an IP lawyer with no guarantee he'd give you an OK. In a universe with so many good languages, many with much bigger communities (in part because of the license), with well understood and often tested in court licences, it's a non-starter.

The intent is fine, everybody's code will run on your port, modulo bugs, and is plainly stated in the last line of the licence: “Thou shalt not break the spec” It's the execution by someone who's a computer scientist, not a lawyer, nor very familiar with IP law.


Shen is Lisp-NG. It's the infusion of Lisp with 30 years of _proper_ PLT research. It's a Lisp that learned from its successors; and for that, it's a Big Deal™.


30 years without practical applications is quite an achievement.


There have been plenty of practical applications for this stuff, just not directly in Lisp. Haskell and the ML family have interesting stories to tell; learning ML is on my list simply so that I can understand a lot of this research.

Yes, Lisp is the One True Way, but that doesn't mean it's the source of all good ideas in CS.


I'm talking about this specific Lisp dialect (from Sequent Calculus Research over Qi to Shen). It has near zero applications in 30 years.

I would not know why I would write anything I have written in the past in Scheme or Lisp, in this language and would it give me as advantage. The basic application seems to be programming language research and education.

True, many programming languages have applications, but for this I don't know any...

Common Lisp has a lot of applications in possible areas, for example that are a dozen theorem provers from PVS (used by NASA for example) to ACL2 written in Lisp. I'm not aware of a system remotely similar in Shen (or Qi) that's used by people.


Two arguments here are that:

  1. Qi/Shen are very young, less than 10 years old.
  2. Their adoption has been crippled by wonky licenses.
That said, the sequent calculus can be viewed as an implementation detail, I don't believe it's integral to the use of Shen. There are arguments for adding features from non-Lisp functional languages, which I'll note in the forms of OCaml, F# and Haskell are seeing real world use.

I'll come back to this question after learning Shen (the wonky license has kept me from more than dipping my toe into it).


I sponsored this move and I am making a port. I really love the language and hope more people will!


46 functions in Kλ... this is exactly what people like me need in a programming language. I have a hard enough time remembering if it's add() append() push() to throw something onto an array in Python or Javascript. Knowing that clojure has a cool syntax or cool function-to-do-something isn't all that awesome when I need to just code something.

If I was all in on a language and not a jack of all trades, I'd love those special features. As is, I like a simple list of reserved words that I have a half chance of remembering. Glad to see this funding concept worked for the community.


I often have the same problems as you (and I have to say, I constantly forget whether it's push/append too, even in my most commonly used languages).

My solution to the problem has been to setup my development environment to provide the requisite autocompletion and linting (I use emacs with the brilliant spacemacs package to be able to have "the one IDE for all languages").

It takes a bit of setting up for each language you use, but if you do the setup on an as-and-when basis it's not that bad (and "starter-packs" that have packages that work together are great)


I don't dip into emacs often, but I do like that idea. I'm sure some vim ninjas have you-complete-me and such setups that handle basic language functionality, but I'm always too lazy to get it set up in a permanent manner.

Someday when I get sick of firing up python to quickly check that you append() to lists instead of push or add...


spacemacs looks amazing, thanks for that!


I have to say, it's the best editor experience that I've found by a long way. In addition the developer Sylvain is incredibly helpful.


If it weren't for the other comment, I wouldn't have realized that's spacemacs is some sort of vim(evil)+emacs beast... Installing now. :)


I often have the same problems as you (and I have to say, I constantly forget whether it's push/append too, even in my most used languages).

My solution to it has been to setup my development environment to provide the requisite autocompletion and linting (I use emacs with the brilliant spacemacs package to be able to have "the one ide for all languages").

It takes a bit of setting up for each language you use, but if you do that as primary setup on an as-and-when basis it's not that bad (and "starter-packs" that have packages that work together are great)


I often have the same problems as you (and I have to say, I constantly forget whether it's push/append too, even in my most used languages).

My solution to it has been to setup my development environment to provide the requisite autocompletion and linting (I use emacs with the brilliant spacemacs package to be able to have "the one ide for all languages").

It takes a bit of setting up for each language you use, but if you do that as primary setup on an as-and-when basis it's not that bad (and "starter-packs" that have packages that work together are great)


I often have the same problems as you (and I have to say, I constantly forget whether it's push/append too, even in my most used languages).

My solution to it has been to setup my development environment to provide the requisite autocompletion and linting (I use emacs with the brilliant spacemacs package to be able to have "the one ide for all languages").

It takes a bit of setting up for each language you use, but if you do that as primary setup on an as-and-when basis it's not that bad (and "starter-packs" that have packages that work together are great)


I often have the same problems as you (and I have to say, I constantly forget whether it's push/append too, even in my most used languages).

My solution to it has been to setup my development environment to provide the requisite autocompletion and linting (I use emacs with the brilliant spacemacs package to be able to have "the one ide for all languages").

It takes a bit of setting up for each language you use, but if you do that as primary setup on an as-and-when basis it's not that bad (and "starter-packs" that have packages that work together are great)


I often have the same problems as you (and I have to say, I constantly forget whether it's push/append too, even in my most used languages).

My solution to it has been to setup my development environment to provide the requisite autocompletion and linting (I use emacs with the brilliant spacemacs package to be able to have "the one ide for all languages").

It takes a bit of setting up for each language you use, but if you do that as primary setup on an as-and-when basis it's not that bad (and "starter-packs" that have packages that work together are great)


I sponsored this move and I am making a port. I really love the language and hope more people will!


I sponsored this move and I am making a port. I really love the language and hope more people will!


I sponsored this move and I am making a port. I really love the language and hope more people will!


I sponsored this move and I am making a port. I really love the language and hope more people will!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: