HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
GOTO 2013 • ClojureScript: Lisp's Revenge • David Nolen

GOTO Conferences · Youtube · 176 HN points · 0 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention GOTO Conferences's video "GOTO 2013 • ClojureScript: Lisp's Revenge • David Nolen".
Youtube Summary
This presentation was recorded at GOTO Aarhus 2013. #gotocon #gotoaar
http://gotocon.com

David Nolen - NYTimes Software Engineer

ABSTRACT
More than 55 years ago John McCarthy had an insanely great idea called Lisp. Lisp marked the beginning of functional programming, interpreters, high-level metaprogramming, garbage collection, and much more. Yet after such auspicious beginnings the idea of Lisp has since faded and many of its innovations have been adopted by much more popular programming languages. Until recently Lisp even appeared doomed to fade into obscurity but several things have conspired to make Lisp somewhat cool again - one of these is Clojure, a fun modern Lisp targeting the Java Virtual Machine.

However the Web doesn't speak JVM bytecodes. It speaks JavaScript - thus the cornucopia of languages that now compile to JavaScript. The most well known include GWT, CoffeeScript, and more recently Dart and TypeScript. However none of these represent a real break from the status quo.

John McCarthy's insanely great idea still has a lot to offer the Web and we'll see how with ClojureScript, an implementation of Clojure that targets JavaScript.

https://twitter.com/gotocon
https://www.facebook.com/GOTOConference
http://gotocon.com
#ClojureScript #lisp
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
Oct 29, 2016 · 18 points, 4 comments · submitted by tosh
todd8
This video is from 2013 so perhaps HN readers have some useful experience using Clojurescript to report by now. Anyone able to comment on its actual use?
preek
Saw this video two years ago and have been programming Clojure and ClojureScript professionally for one year. This week I was at EuroClojure and actually met David Nolen.

What do you want to know?

todd8
I've always been hesitant to delve into front-end programming; JavaScript isn't a language that appeals to me. Is ClojureScript really a practical "replacement"? Is it better in some way than Dart or Typescript or just waiting for ECMAscript 2016+ ?
preek
Let me start by aying that I've been a professional web developer since about 10 years. I dabbled in a little Java, but did most of my work first in Python, then Ruby, JavaScript and CoffeeScript.

Ruby on Rails with JavaScript was OK. Clojure and ClojureScript are blowing my mind every day. So yes, I'd say it's a replacement. And not an incremental one, but something that feels solid, is fast and a lot of fun to write in.

Of course this is just my personal opinion that luckily some people share. To go into detail would probably entail writing a book. But I'm definitively not going to write EcmaScript 2016+ in the future. Instead I'll follow Uncle Bob and proclaim the last programming language: https://skillsmatter.com/skillscasts/2323-bobs-last-language

Enjoy the talk^^

Sep 17, 2014 · 158 points, 34 comments · submitted by tosh
mattdw
I really like Clojure (and have enjoyed David Nolen's CLJS tutorials and guides), but I find ClojureScript to have terribly arcane tooling. Despite being familiar with Clojure, it's still 10 minutes of cargo-culting and copy-pasting before I can start actually working on a ClojureScript project. Slightly ironic for a language which places such an emphasis on removing "incidental complexity."
macmac
If Emacs is your thing, which it should be if you do Clojure, DPPs starter project Spiffy, will give you very decent setup in a couple of minutes. https://github.com/dragonmark/spiffy
skrebbel
> If Emacs is your thing, which it should be if you do Clojure,

This is the kind of attitude that keeps people away from your language. The amount of people who shun away from C# simply because they don't like the idea of Windows / Visual Studio should be a hint.

ANTSANTS
That's more of a Lisp problem than a Clojure problem. All the Expert Lisp Programmers settled on Emacs many moons ago (as in decades past) and no one has bothered to write another (good) Lisp-friendly text editor since. And well, you can't really write Lisp without a suitable text editor, so all the Lisp neophytes either give up or learn to cope with emacs and eventually forget about replacing it.
lemming
all the Lisp neophytes either give up or learn to cope with emacs and eventually forget about replacing it.

This is really not true any more. LightTable is great for beginners, and there are more options for Clojure now. I'm developing Cursive, which is becoming pretty popular - Vim also seems to work well, Counterclockwise is good too.

ode
Could you explain what you mean by a reasonable text editor? Thanks
lgas
I suspect he means one that has paredit.
ANTSANTS
Even before that, it's shocking how few text editors have basic Lisp indentation and REPL support.

I guess I did forget about Light Table (as AFAIK it doesn't support Scheme or Common Lisp yet), which seems like the right thing to point beginning Clojure programmers to.

Hell, that's probably a big part of why Clojure became more popular than the previous Lisps.

estefan
All the clojure tutorials I've seen recently have been using LightTable. Which is just as well since Emacs is not my thing.
mattdw
To be fair, I'm on-side with the idea of an environment that adds niceties for your language. However, I agree that you should be able to still have a decent experience without installing or setting up language-specific editors or environments. I've really enjoyed being able to get into Rust with nothing more than Vim and a terminal.
macmac
This was only meant as a recommendation, not a command. Lightable, Vim, Eclipse IntelliJ and quite a few others are perfectly viable alternatives. I have just personally found that Emacs to be excellent for Clojure development.
klibertp
> This is the kind of attitude ...

And it's unfounded. Thanks to Lisps unusually regular syntax adding support for semantic editing features (paredit-like) should be rather straightforward in any editor. And accidentally paredit is also enough to make coding any Lisp way more pleasant than editing raw code in other languages.

See http://emacsrocks.com/e14.html for an overview.

I'm actually kind of disappointed that in the demo I saw adding parens manualy, one at a time, instead of using wrap-sexp etc.

mattdw
Pretty familiar with Emacs, nrepl etc. Just a question of having enough time to familiarize myself with the ins and outs for any given new variety.

I actually did the ClojureScript tuts via LightTable, which was slightly less complex than the alternatives, but still required a bit of fussing.

(Incidentally, modifying my emacs setup in order to work on a project is the very definition of "incidental complexity".)

Rapzid
Yeah but once you get it going.. And discovering LightTable's insta REPL for the first time is almost spiritual.
minikomi
I definitely felt the same but there's quite a few bits of tooling popping up now - lien-mies for a very quick first step, and more powerful bits like figwheel, which makes itterating in the browser with om really shine.
swannodette
Internalizing exactly what all the ClojureScript build options do definitely takes some time and it's frustrating if all you want to do is quickly try some little thing out. But it's for this reason I created the Leiningen templates mies, mies-om, and mies-node. These can get you up and running in a few seconds. For similar reasons other people have created templates for Ring app + ClojureScript, etc.
elwell
David Nolen is passionate, bright, and brilliant. I watch some of his talks every now and then when I want to get hyped up to get some coding done.
ChaoticGood
David Nolen inspires me with his grasp of programming concepts & paradigms. Watching his talks and the other clojure geniuses truly inspire me. You are so right about the passionate, bright, and brilliant part. I feel his enthusiasm to iterate the world into a better place to code in.
borlum
Goto conference is pretty awesome. Saw this live in DK was really inspiring.
amithgeorge
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...

andrewchambers
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.

klibertp
"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...

nickik
Just because its not the most powerful macro systen ever created does not mean that its not powerful, so the sentence is completly ok.
weavie
It is definitely more powerful than Javascripts...
klibertp
You mean it's better than Sweet.js? http://sweetjs.org/
nickik
> 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.

klibertp
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.

kul_
you can break hygiene in clojure macros using classical anaphoric macros. I guess that holds for clourescript as well.
weavie
No, I haven't looked into sweetjs enough. I was just referring to raw javascript macros.. (ie. non existent).
klibertp
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.
nickik
You might want to check out the PLOT langauges, its just a spec but a great read if you are into macros.
None
None
divs1210
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

lispm
That's a just small part of Lisp's reader macros.
amithgeorge
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 :)

HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.