"Agility & Robustness: Clojure spec" by Stuart Halloway
Strange Loop Conference2 HN recommenders · recommended in 2 months, 2016-2022
25K views · 10 years ago · talk · dated
Stuart Halloway shows how Clojure's spec library lets you build programs that are both agile and robust. He covers declarative, predicate-based specification layered on interactive REPL development.
Cited as an argument for runtime specs as an alternative to static typing, including a comparison of types, tests and spec.
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
176K views • 9 years ago
1:03:29Maybe Not - Rich Hickey
ClojureTV
181K views • 7 years ago
39:40"Type-Driven Program Synthesis" by Nadia Polikarpova
Strange Loop Conference
15K views • 8 years ago
34:55"Outperforming Imperative with Pure Functional Languages" by Richard Feldman
Strange Loop Conference
98K views • 5 years ago
1:01:39"Simple Made Easy" - Rich Hickey (2011)
ClojureTV
434K views • 5 years ago
40:31Understanding Specter: Clojure's missing piece
Misophistful
12K views • 9 years ago
1:01:39"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
219K views • 5 years ago
50:01Simplicity Ain't Easy - Stuart Halloway
ClojureTV
24K views • 13 years ago
1:02:26Solving Problems the Clojure Way - Rafal Dittwald
Clojure/north
87K views • 7 years ago
1:16:14Spec-ulation Keynote - Rich Hickey
ClojureTV
135K views • 9 years ago
46:22"Clojure in Unity 3D: Functional Video Game Development" by Ramsey Nasser and Tims Gardner
Strange Loop Conference
24K views • 12 years ago
32:44Clojure in a nutshell by James Trunk
Func Prog Sweden
104K views • 5 years ago
33:32Condition Systems in an Exceptional Language - Chris Houser
ClojureTV
16K views • 10 years ago
53:56Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure
jasonofthel33t
119K views • 13 years ago
43:04"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)
Strange Loop Conference
468K views • 4 years ago
41:19Stuart Sierra - Components Just Enough Structure
ClojureTV
36K views • 12 years ago
49:09Debugging with the Scientific Method - Stuart Halloway
ClojureTV
25K views • 10 years ago
36:14Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt
ClojureTV
8K views • 9 years ago
1:09:24Effective ML
Jane Street
30K views • 10 years ago
40:42Lucas Cavalcanti & Edward Wible - Exploring four hidden superpowers of Datomic
ClojureTV
29K views • 11 years ago
3 comments from Hacker News
..... you realise clojure has one of the most powerful ways to 'type' your language? Like 100x more powerful than the typescript or whatever type language you are using now ;p ▶ this video
Since they cite me (and my essay from 2014) as part of their decision making process, I want to throw in 2 cents here. They ended up deciding on Go, whereas I have ended up preferring Clojure, yet I agree with a lot of what they say, so I'll try to clarify why I ended up with a different decision than what they made. I understand what they mean when they write: I think the first time I appreciated the positive aspects of having a strong type system was with Scala. Personally, coming from a myriad of PHP silent errors and whimsical behavior, it felt quite empowering to have the confidence that, supported by type-checking and a few well-thought-out tests, my code was doing what it was meant to. There are times when I appreciate the strict type-checking that happens in Java. I do get what they mean. But there are also a lot of times when I hate strict type-checking (in particular, when dealing with anything outside of the control of my code, such as whimsical, changing 3rd party APIs that I have to consume (for some business reason), or even 1st party APIs that feel like 3rd party APIs because they are developed by another team (within the same company) or for some reason we can not fix the broken aspects of some old API that was developed in-house 6 years ago.) Because of this, I have become a proponent of gradual typing. If I am facing a problem that I have never faced before, I like to start off without any types in my code, and then, as I understand the problem more, I like
There have been some fantastic conversations on Hacker News about type systems. I've learned a lot about the different arguments for dynamic typing, versus strict typing, versus gradual typing. Java's type system may or may not have represented new thinking when it was under development in the early 1990s, but it certainly seems a bit dated in the year 2016. The limits of the Java type system have been discussed both here on HackerNews and also elsewhere, many times. For those who want to consider arguments against Java's style of strict typing, 2 things I would recommend include "Agility & Robustness: Clojure spec, by Stuart Halloway": ▶ this video He offers a chart that shows the strengths and weaknesses of strict typing versus unit tests versus the run-time checks offered by Spec. It's worth a look. The discussions around gradual typing have been interesting, but to see how far the limits of this can be pushed, I would suggest everyone check out the Qi/Shen programming language: link "Qi makes use of the logical notation of sequent calculus to define types. This type notation, under Qi’s interpretation, is actually a Turing complete language in its own right. This notation allows Qi to assign extensible type systems to Common Lisp libraries and is thought of as an extremely powerful feature of the language." This next quote is from someone who has spent a long time experimenting with different Lisps: "Qi (and its successor Shen) really push the limits of what we might call a