Live data from Hacker News

Kashmir: A statically typed Lispy language compiling to Go

owickstrom.github.io

51–60 of 75 posts

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

#51
As a long-time user of Lisp-derived languages (Scheme, Tcl), Kashmir looks like an interesting variation.

It's heartening to see a revival of Lisps. For reasons I can't explain, s-expr syntax has a certain symmetry and beauty and is far more understandable to me than the alternatives.

Not sure yet what Kashmir brings to the table besides the Go output, and what advantages that provides. I'll have to study it further.

A half-formed thought floats across my brain that a Lisp/Scheme compiling to Rust might have merit. Considering the idea that a Rust back end could possibly minimize the necessity for GC, performance of the resulting executable would be less encumbered.

Really don't know how far one could get in that direction, probably more difficult to achieve than I could imagine.

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

#52
Is targeting Go source code like this really the best option for a Go-like language? I've been curious about hooking into some stage of Go's compiler. Looks like there is an intermediate Go assembly language, which PeachPy (https://github.com/Maratyszcza/PeachPy) can target. Not sure how well documented it is, though. Anyone know of other projects that do this?

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

#53
post #28

Earlier quoted context omitted.

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 t…

"Go is the assembly language of cloud infrastructure" People say this about JavaScript because to run code in a browser, it has to execute as JavaScript. As a result, there are lots of actual libraries or webapps that are written in other languages and compiled to JavaScript. In contrast, you can do cloud computing in Java, C++, or various other languages. Go may have advantages, but compiling to Go would just be a c…

Go made choices that makes it a good language to be compiled to. Compilation-wise: it's incredibly fast and compiles to static machine binaries. Runtime-wise: it has great concurrency and communication primitives.

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

#54
post #52

Is targeting Go source code like this really the best option for a Go-like language? I've been curious about hooking into some stage of Go's compiler. Looks like there is an intermediate Go assembly language, which PeachPy ( https://github.com/Maratyszcza/PeachPy ) can target. Not sure how well documented it is, though. Anyone know of other projects that do this?

Probably not the best option in the long run, but I didn't want to focus too much on that to begin with. Hooking into the Go compiler would be nice, perhaps that's something to look at when the Kashmir compiler can be written in Kashmir. :)

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

#55
post #48
post #28

Earlier quoted context omitted.

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 t…

>Cross compilation and self-contained binary Did you try Chicken Scheme? $ echo "(print \"Hello, World"'!'"\")" > hello-world.scm $ csc hello-world.scm $ ./hello-world Hello, World! $ du hello-world 16 hello-world

I use chicken and it's awesome, but i dont think there's an easy way to generate windows and mac binaries from linux. go is really good for that.

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

#56
post #28

Earlier quoted context omitted.

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 t…

"Go is the assembly language of cloud infrastructure" People say this about JavaScript because to run code in a browser, it has to execute as JavaScript. As a result, there are lots of actual libraries or webapps that are written in other languages and compiled to JavaScript. In contrast, you can do cloud computing in Java, C++, or various other languages. Go may have advantages, but compiling to Go would just be a c…

Javascript would be the assembly language of web i.e. what runs on your browser. Although that won't be true with the advent of Webassembly. Go is language of choice on cloud.

If you ask me following is the checklist it passes:

1. Low memory footprint/good GC

2. Concurrency (goroutines) builtin

3. Great dependency (package) management

4. Compiled/closer to bare metal

5. Fast compilation

If you check other languages against the list they lack at least one of the above. If you feel any other language is better suited please tell.

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

#57
post #51

As a long-time user of Lisp-derived languages (Scheme, Tcl), Kashmir looks like an interesting variation. It's heartening to see a revival of Lisps. For reasons I can't explain, s-expr syntax has a certain symmetry and beauty and is far more understandable to me than the alternatives. Not sure yet what Kashmir brings to the table besides the Go output, and what advantages that provides. I'll have to study it further.…

It's because you understand that programs, when you write them, are frozen at time zero, that it's s-expr tentacles are ready to accept inputs, and when they get an input, they contract in computation and, for long lived programs, emit new tentacles that no programmer ever wrote.

(If you can write reliable tentacles and dress them up so that people want to touch them frequently, you can become very, very rich.)

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

#58
post #32

Earlier quoted context omitted.

Why not?

Well I think its not the best idea to confuse people's perceptions of very important ideas of our existence as humanity, just because it was a cool 2-syllable name found in interest of saving time on Google. Kashmir resonates very strongly and has strong meaning for a significant % of the world's population. Think about coming up with a name like "Crimea" for a language if it has no connection whatsoever. If it does,…

Not really.

I have been to Kashmir. All I associate with it is sheer beauty. Just ignore the two big babies with the big guns, fighting over it.

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

#59

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…

Here here! It seems like every week someone posts their pet flavor of lisp. This doesn't have an substance. How about coming up with something new!

I hope I don't get downvoted for this, but the correct way to say this is "hear hear". It's derived from "hear him" or "hear her". https://en.wikipedia.org/wiki/Hear,_hear

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

#60

Earlier quoted context omitted.

"Go is the assembly language of cloud infrastructure" People say this about JavaScript because to run code in a browser, it has to execute as JavaScript. As a result, there are lots of actual libraries or webapps that are written in other languages and compiled to JavaScript. In contrast, you can do cloud computing in Java, C++, or various other languages. Go may have advantages, but compiling to Go would just be a c…

Javascript would be the assembly language of web i.e. what runs on your browser. Although that won't be true with the advent of Webassembly. Go is language of choice on cloud. If you ask me following is the checklist it passes: 1. Low memory footprint/good GC 2. Concurrency (goroutines) builtin 3. Great dependency (package) management 4. Compiled/closer to bare metal 5. Fast compilation If you check other languages a…

> Go is language of choice on cloud.

I don't think this makes any sense. Javascript is the assembly language of the web because it's the only choice for the web (or more specifically, the browser). At best, any other legitimate choice will just compile to JavaScript, which is why it's thusly named. Go has no such privileged position; it's not even clear what it would mean to be the "language of choice on the cloud." You can write cloud software in any language you want, provided that the language has libraries for networking. All of the features you list are great, but none of them are exclusive to Go, nor are they required for cloud computing.

Post reply on HN