Live data from Hacker News

Ki – A lisp for your JavaScript

ki-lang.org

31–40 of 42 posts

Re: Ki – A lisp for your JavaScript

#32
post #14
post #6

Earlier quoted context omitted.

But it does have a fairly tight integration with clojure, and also uses the JVM-based closure compiler. However, I'd way rather see a clojurescript runtime for v8 than another language "inspired by" clojurescript.

Do you mean a ClojureScript compiler compiled to JavaScript? ClojureScript can be compiled and run in v8 just fine right now.

I think he means ClojureScript completely divorced from the JVM, so you don't need a Java infrastructure to develop/compile ClojureScript.

Re: Ki – A lisp for your JavaScript

#33
post #18

See also LispyScript ( http://lispyscript.com/ ), “a JavaScript with Lispy syntax and macros”. Like Ki, it requires inclusion of a standard library. Unlike Ki, it does not provide alternative data structures in addition to native JS values; it only uses native JS values. LispyScript also does not support embedded JavaScript or being embedded within JavaScript. But LispyScript currently has better docs, including a pa…

I agree, LispyScript is very neat, closer to a full-fledged language than ki. On the other hand, ki is focused on ClojureScript's immutable data structures and related idioms - in fact it's just a thin layer around those.

Can anyone enlighten me to the difference between Clojure-like immutability and Object.freeze()?

Re: Ki – A lisp for your JavaScript

#34

Earlier quoted context omitted.

not everybody likes the jvm ecosystem.

If the person I replied do doesn't like the JVM why are they writing Clojure in the first place?

I've programmed lots of clojure. But in the end, I am too annoyed by the jvm ecosystem, the good that is clojure doesn't weight up the java crap, so while I love the language, I cannot stand the environment.

Re: Ki – A lisp for your JavaScript

#35

Earlier quoted context omitted.

If the person I replied do doesn't like the JVM why are they writing Clojure in the first place?

I've programmed lots of clojure. But in the end, I am too annoyed by the jvm ecosystem, the good that is clojure doesn't weight up the java crap, so while I love the language, I cannot stand the environment.

I'm interested to hear about your experience. What do you find annoying about the JVM? That notwithstanding, I wasn't asking about yours, I was replying to jeletonskelly's, which seems to be different to yours.

Re: Ki – A lisp for your JavaScript

#36
post #18

Earlier quoted context omitted.

I agree, LispyScript is very neat, closer to a full-fledged language than ki. On the other hand, ki is focused on ClojureScript's immutable data structures and related idioms - in fact it's just a thin layer around those.

Can anyone enlighten me to the difference between Clojure-like immutability and Object.freeze()?

The main difference is structural sharing: I can update a Clojure map with a new value, which will create another map that shares the vast majority of the data with the former map. With plain JavaScript, you'd have to clone your object, update it and freeze it again. In addition Clojure/ClojureScript/mori offer a whole API designed to leverage immutable data structures.

Re: Ki – A lisp for your JavaScript

#38

The only reason I use clojurescript over other js lisps is core.async. What is Ki's take on this?

I have ideas around providing CSP in ki, but so far I haven't implemented them. All there is in ki right now is the (letc ...) form (see http://ki-lang.org/api.html#misc), which provides very similar functionality to LiveScript's backcalls. It is no CSP but it allows to straighten up nested async calls.

Re: Ki – A lisp for your JavaScript

#40
post #37
post #31

There is already a ki lisp (a smaller subset of Qi lisp) that is the foundation of shen lisp. http://www.shenlanguage.org/learn-shen/shendoc.htm#KI

It's actually named KL (with a lower-case L), but yes, that was close.

What's the difference? I mean, Shen is ported to JS, and doesn't require Node. Can it play with JS like KL? Shen is pretty cool with a built-in, functional Prolog too, and static typing you can turn on or off.
Post reply on HN