HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure

jasonofthel33t · Youtube · 20 HN points · 5 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention jasonofthel33t's video "Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure".
Youtube Summary
Cross posted from http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Rich-Hickey-and-Brian-Beckman-Inside-Clojure.

Clojure is a dynamic programming language created by Rich Hickey that targets both the Java Virtual Machine and the CLR. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.

Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.

Astrophysicist and Software Architect Brian Beckman interviews Rich Hickey to dig into the details of this very interesting language. If you don't know much about Clojure and the general problems it aims to solve, well, watch and listen carefully to this great conversation with plenty of whiteboarding and outstanding questions. Expert to Expert simply rocks! Thank you for spending time with us, Rich! Clojure is great!
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
The actual details of how the underlying datastructures work isn't that hard to grasp (see: https://youtu.be/wASCH_gPnDw?t=1817), but in practice you don't even need to go that far.

At a high level there's really just a few things you need to keep in mind, the biggest being the big O guarantees of the core DS interfaces, which are listed here https://clojure.org/reference/data_structures. Those guarantees hold across the different underlying implementations, and there are plenty of things you can tune to get a 2x, 10x, 50x improvement in performance before resorting to things that depend on which specific DS is being used under the hood

Edit: Fixed timestamp for video link

Nov 15, 2019 · 7 points, 1 comments · submitted by chwolfe
iLemming
This is a bit old interview. I haven't rewatched it, but beware, it may lead to assumptions that may not be true anymore.
Jun 14, 2019 · 2 points, 0 comments · submitted by tosh
Nov 02, 2018 · nocman on Minesweeper in Clojure
Um, destructuring is a very old concept in Lisp circles.

http://www.lispworks.com/documentation/lw50/CLHS/Body/m_dest...

Don't know if Rich first got the idea from Lisp or not, but it seems likely since he did a bunch of development in Common Lisp (generating C++, of all things :-D ) ages ago.

I don't remember if I heard him talk about that in the "Expert to Expert" video ( https://www.youtube.com/watch?v=wASCH_gPnDw ), or in "Simple Made Easy" ( https://www.youtube.com/watch?v=34_L7t7fD_U ). I think it was the former, but both of those are worth watching multiple times. It's also entirely possible that it was in an entirely different video of his -- but it was him.

I've yet to be disappointed in any of his talks, so if I'm wrong about the exact one, just keep watching any of his talks on YouTube till you find it. xD

Aug 07, 2018 · 1 points, 0 comments · submitted by tosh
I'm not sure how it's implemented in Ferret but Clojure's data structures are implemented as trees so there's structural sharing that happens when a vector or hash map is updated or when a new version is produced.

So the whole data structure isn't copied but only the relevant parts are added / updated in the tree and the rest is shared with the "new" data structure.

Mutable data structures are still more memory effective but I'm assuming its fine since the author has a blog post on using ferret on an Arduino Uno which has 32k of ram. https://nakkaya.com/2017/02/15/bare-metal-lisp-rc-control-us...

Clojure data Sturucture links: Persistent Vectors http://hypirion.com/musings/understanding-persistent-vector-...

Video with Rick hick on them https://youtu.be/wASCH_gPnDw?t=1742

gizmo385
It's so interesting watching Rich talk. He has such a breadth and depth of knowledge and you can tell that he really took his time when designing the language.
Jun 29, 2017 · 3 points, 0 comments · submitted by kureikain
May 20, 2017 · 1 points, 0 comments · submitted by tosh
Sep 19, 2016 · 1 points, 0 comments · submitted by tosh
This [1] part of an interview with Rich Hickey is great on this topic.

[1]: https://youtu.be/wASCH_gPnDw?t=37m13s

Oct 27, 2014 · 2 points, 0 comments · submitted by dkarapetyan
I'd like to learn Clojure. Any suggestions on how to get started? It's my first time using a Lisp dialect. I figured I'd tackle the Clojure Koans, and mix in a few Project Euler problems.

I'd also like to do some code reading. I know the Clojure source code is on GitHub, but maybe something smaller to start?

If anyone else is interested in getting started, here are a few links I visited over the weekend:

http://www.braveclojure.com/do-things/

http://aphyr.com/tags/Clojure-from-the-ground-up

http://clojurekoans.com/

http://youtu.be/wASCH_gPnDw

The last link is an hour-long interview with Rich Hickey - a fantastic introduction to the language and his design goals. It's probably the best technical video I've ever watched on YouTube.

Apr 06, 2013 · 3 points, 0 comments · submitted by espeed
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.