Hacker News new | past | comments | ask | show | jobs | submit login

I happened upon the video through a different source yesterday. Saw it. Didn't really get the title. Sure he quickly ran through the What-Why-How-Perf-Examples of ClojureScript. Had I not already been interested in Clojure/ClojureScript, I would have walked away from the talk thinking whats the big deal? Other languages also compile to JS and vanilla JS isn't all that bad once you get to know it. So yeah, just by watching the video, I didn't understand what the title meant by 'Lisp's Revenge' or even 'Hoare's Revenge'.

EDIT: Before viewing the presentation I wasn't aware who the presenter, David Nolen, was. I was aware of the online persona "SwannOdette" and his blog posts [1] were a major reason for me seriously considering ClojureScript. During the presentation I realized that "SwannOdette" and "David Nolen" are one and the same. His blog posts [2][3][4] are a lot more convincing than this video.

Some day I will write in vanilla Javascript the corresponding code for the examples in those posts. That will truly help me appreciate the advantages Cljs brings to the table. Incase someone else does that, please do reply here.

[1] - http://swannodette.github.io/2013/11/07/clojurescript-101/

[2] - http://swannodette.github.io/2013/07/12/communicating-sequen...

[3] - http://swannodette.github.io/2013/07/31/extracting-processes...

[4] - http://swannodette.github.io/2013/08/31/asynchronous-error-h...




David is a great guy, but sometimes his talks don't get the point across in a powerful way.

Clojurescript uses CSP (same concept as Go channels invented by Tony Hoare) to allow simulated multiple concurrent threads of execution in javascript. How many compile to javascript languages have concurrency? not many.

Clojurescript has powerful immutability at the core of the language, macros that are so powerful they can add concurrency to single threaded javascript via a library.

I admit it's not simple to understand everything clojurescript has from a casual glimpse, but if you learn enough, it can really kick all the other compile to JS languages in the butt.


I am still learning FP and originally I was only looking at server side languages as I felt Javascript already lets me write code in an FP manner. It was after I read SwannOdette's blogs posts on ClojureScript and CSP that I started getting really excited about it. Couple that with Om and Flux, I think I would love writing apps that way. Meaning I was already sold on the potential of ClojureScript/CSP before even watching this presentation.

My dissatisfaction wasn't with ClojureScript but with the presentation. Given that I saw the presentation out of context (I don't know who the audience at the goto; conference was supposed to be - experienced FP developers looking to move to web or existing js web developers looking for something better). Purely from the presentation, I (who belongs the latter) wasn't really sold on anything. Maybe I wasn't the group being targetted.

Finally, I didn't watch the presentation because it was presented by David (I didn't who he was), I watched it for the title. It wasn't till midway through the presentation I realized SwannOdette is actually David. And that surprised me a lot cuz his blog posts are really good, and as I said really sold me on considering ClojureScript. I didn't intend to pick on David, maybe he just had a sub-par day. Especially after knowing David=SwannOdette :)


"macros that are so powerful"

You just made every single Common Lisp programmer who reads your comment cringe.

Clojure is a very nice language and while it has no real innovations it does bundle a few unusual (for mainstream) concepts into a single easy to use package. However, you should wait with calling Clojure macros "powerful" until after you get access to readtable. Or wait, you won't ever, that's a feature, supposedly...


Clojure has something better than CL reader-macros [1]. These are name-space specific, and more composable than CL's reader macros.

And reader-macros can be achieved with a small hack [2].

[1] http://www.infoq.com/interviews/hickey-clojure-reader

[2] http://briancarper.net/blog/449/clojure-reader-macros


That's a just small part of Lisp's reader macros.


Just because its not the most powerful macro systen ever created does not mean that its not powerful, so the sentence is completly ok.


It is definitely more powerful than Javascripts...


You mean it's better than Sweet.js? http://sweetjs.org/


> Sweet.js brings the hygienic macros of languages like Scheme and Rust

So it seams to clojure macro system is more powerful. That said that does not mean its better.


Of course, Sweet.js provides means for breaking hygiene.

Also, Clojure macros are kind-of, a-little-bit hygienic, with their rules for identifiers resolution.

Anyway, I'd say they're rather similar in expressivity and capabilities, but I don't know both macro systems well enough to do detailed comparison.


you can break hygiene in clojure macros using classical anaphoric macros. I guess that holds for clourescript as well.


No, I haven't looked into sweetjs enough. I was just referring to raw javascript macros.. (ie. non existent).


Right, in general languages without any means of syntactic abstraction feel contrived to me now, and after working with several macro-enabled languages I really want to have support for them in more places. JS (Sweet.js), along with Dylan and Nimrod (and others) showed that it's possible to have real macros in non-prefix languages - I wonder how long it will take the "mainstream" to become comfortable with this feature. It looks like it takes anywhere between 20 to 40 years on average for concepts to "enter mainstream", so I think we're going to have to wait quite a long time yet.


You might want to check out the PLOT langauges, its just a spec but a great read if you are into macros.




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

Search: