Live data from Hacker News

Kashmir: A statically typed Lispy language compiling to Go

owickstrom.github.io

21–30 of 75 posts

Re: Kashmir: A statically typed Lispy language compiling to Go

#21

I'd really like to see an snippet in the front page. There are some samples in the tutorial, but I like to see an example to get some feeling of the language. For example, a mix of (define (factorial n) (if ( and ;; here the type of y is inferred (fn ([x : int] y) (+ x y))

Good idea, thanks! I'll try to come up with something representative.

Do you know how much effort/time it would take to spin up a "play.kashmir", similar to "play.golang"? If it is minimal, it could be one of those items that really lowers the barrier to entry into the language.

Re: Kashmir: A statically typed Lispy language compiling to Go

#22
I understand this project, along with most of the other "Lisp compiling to ..." projects are just for fun, but it's still annoying to see so many of them announced. Half the time it's a stretch to even call them "a Lisp." It's a little silly to call your language a Lisp if it's missing a lot of the stuff that Lisp is associated with. Does this Lisp even support macros? Just say it's a new language that uses s-expressions and compiles to Go or whatever. Calling it a Lisp makes it look like a lame attempt to get more attention.

I'm mostly just annoyed because everyone releases all these incompatible Lisp wannabes, when Common Lisp, Scheme, and even Clojure, are all perfectly good languages. Common Lisp has a few really good compilers (sbcl, lispworks, etc.) that produce code that's competitive with C in some situations. QuickLisp has really modernized the CL library ecosystem, and while there aren't as many libraries available as there are for Python, Ruby, and Java, the situation has drastically improved recently, and is continuing to improve.

Re: Kashmir: A statically typed Lispy language compiling to Go

#23
post #20

What is the advantage of targeting go for a new language project? Could you explain about why this made sense for your project?

Don't know about the project's motivations, but I've been hoping for compile-to-go languages because it has an amazing cross-compiler. My use case would be to develop small apps on linux and ship self-contained binaries for other platforms effortlessly.

Re: Kashmir: A statically typed Lispy language compiling to Go

#25

I understand this project, along with most of the other "Lisp compiling to ..." projects are just for fun, but it's still annoying to see so many of them announced. Half the time it's a stretch to even call them "a Lisp." It's a little silly to call your language a Lisp if it's missing a lot of the stuff that Lisp is associated with. Does this Lisp even support macros? Just say it's a new language that uses s-express…

I realize that it is missing some of the defining features of a real Lisp, that's why I wrote "Lispy" in the HN title. However, there's surely some parts in the documentation that says it's a Lisp, and that might be a stretch right now.

Anyhow, I wanted to get some feedback on this project and perhaps involve people early on, so not having macros yet is nothing that I'm ashamed of. I hope to implement them soon.

And yes, there are a lot of good compilers out there. Kashmir is not a replacement for any of them or any of the established Lisps. :)

Re: Kashmir: A statically typed Lispy language compiling to Go

#26
post #21

Earlier quoted context omitted.

Good idea, thanks! I'll try to come up with something representative.

Do you know how much effort/time it would take to spin up a "play.kashmir", similar to "play.golang"? If it is minimal, it could be one of those items that really lowers the barrier to entry into the language.

Especially if you just do the compilation to Go and redirect the user to a prefilled play.golang.org page with the resulting code.

And a comment withe original code and a link back to your site :)

Re: Kashmir: A statically typed Lispy language compiling to Go

#28
post #20

What is the advantage of targeting go for a new language project? Could you explain about why this made sense for your project?

There are so many motivations for this (and so many lisp/go projects that are abandoned). This looks very promising and I hope it takes off.

A few of the motivations:

* A lisp with an amazing startup time

* A lisp that can tap into a big and vivid ecosystem, like Clojure is tapping into Java's and its own

* Cross compilation and self-contained binary (I've personally tried doing this with various lisps, and none of them really support it)

* Go as a platform is improving version by version and is very performant already

Another way to think of it - if only Clojure compiled to binary directly, then this would be pointless. Because chances of that happening are virtually zero, is why this project made my day.

Go is the assembly language of cloud infrastructure, just as Javascript is becoming yet another "assembly" language. I believe Go is perfect for this, because it is also simple (as opposed to ES6, for example).

Re: Kashmir: A statically typed Lispy language compiling to Go

#30
post #16

Has anybody come across a list of languages that compile to Go?

There are a number of Lisp interpreters written in Go [0-3]. There is a Lua interpreter [4]. The only compiled language I know is Gisp [5] by jcla1. I also built on top of Gisp with Gsp [6] to provide wrappers to the Go stdlib and support more standard lisp functionality. However, Kashimir is the first statically typed language implemented in Go that I have seen. The rest are dynamically typed. [0] GLISP - https://gi…

Wonderful, thanks.
Post reply on HN