Is Smalltalk a functional language? is Lisp object-oriented?

Alan Kay says there are only 2 Object Oriented languages that he knows of: Smalltalk and Lisp. The deeper I go into the history of Smalltalk, the more functional Smalltalk looks. | Continue reading


@lispcast.com | 2 years ago

You Are in a Maze of Deeply Nested Maps, All Alike

People complain a lot about difficulties with deeply nested maps in Clojure. I’ve never had that problem. I looked at other people’s code to see what they were doing to get into trouble. In this talk you’ll get a good idea of the wrong turns people take and you’ll leave with some … | Continue reading


@lispcast.com | 3 years ago

The User Wizard Scenario

We start with a Haskell type that models a feature very well. As the feature changes, the data model eventually evolves into something like Clojure's hash maps. Discussion follows. | Continue reading


@lispcast.com | 3 years ago

The Early History of Smalltalk [audio]

We read one of the great articles by Alan Kay, inventor of Smalltalk. | Continue reading


@lispcast.com | 4 years ago

Lisp: A Language for Stratified Design

In this first episode of season 3, we analyze a great paper called Lisp: A language for stratified design. | Continue reading


@lispcast.com | 4 years ago

What Is Idempotence?

Idempotence means duplicates don't matter. It means you can safely retry an operation with no issues. The classic example is the elevator button: you press it twice and it does not call two elevators. We explore why we would want that property in an email server. | Continue reading


@lispcast.com | 5 years ago

What is an abstraction?

We explore some of the background behind the meaning of the word abstraction and why we do it. | Continue reading


@lispcast.com | 5 years ago

Clojure and Types

Rich Hickey explained the design choices behind Clojure and made many statements about static typing along the way. I share an interesting perspective and some stories from my time as a Haskell programmer. I conclude with a design challenge for the statically typed world. | Continue reading


@lispcast.com | 5 years ago

Clojure Web Security

Use the OWASP Top Ten Project to minimize security vulnerabilities in your Clojure web application. | Continue reading


@lispcast.com | 5 years ago

Can you do functional programming in any language?

Can you do Functional Programming in any language? More importantly, can you learn FP in any language? What does it mean to call a language "functional"? | Continue reading


@lispcast.com | 5 years ago

TCP/IP: The #2 most important idea in Computer Science

In my opinion, the #2 most important idea is something that came directly out of computing. But I’m not so sure. Do you know? Let me know, too! | Continue reading


@lispcast.com | 5 years ago

The #3 most important idea in Computer Science

Well, this one is probably the most controversial. But I think the #3 most important idea has something to do with the problem of exponential growth of the number of possible states we can represent as we add bits to our system. | Continue reading


@lispcast.com | 5 years ago

Clojure Error Messages Are Accidental

I've recently shifted my thinking about Clojure error messages. It is more useful to think of them as non-existent than to think of them as bad. We end with the role Spec can play in improving error messages. | Continue reading


@lispcast.com | 5 years ago

CSS and the Lambda Calculus

Using LESS, we can almost achieve the expressive power of the Lambda Calculus as applied to styling. The expressive power is enough to create reusable styles applied to reusable HTML components. | Continue reading


@lispcast.com | 5 years ago

Nil punning

Null pointers are still a problem in Clojure, but several design decisions have made them less problematic than other languages. | Continue reading


@lispcast.com | 5 years ago