4 ms·
> But all of Rich's ideas/"features" can be applied in your language of choice. Not just can, but have been and are. Clojure is one of those languages (like Sm
by jballanc 9y ago
> But all of Rich's ideas/"features" can be applied in your language of choice.
Not just can, but have been and are. Clojure is one of those languages (like SmallTalk) where, even if it's not the most "successful" or "popular" language in the long run, it has had an oversized impact on how we program in general.
- deleted 9y ago[deleted]
- rufugee 9y agoGenuinely curious...what are these over-sized impacts?
- kimi 9y agoImmutable data structures?
- bjoli 9y agoLike... Singly linked lists? I even remember using VLists (work by Philip Bagwell, that probably inspired the data structures in clojure) in 2006, and I am not even a programmer.
- kimi 9y agoNo: the idea that immutable is a sensible default, and active enforcing of immutability. In Java, e.g., a linked list's cell might be immutable, but its contents are most likely mutable - so back to page one. It is definitely possible to write code for structures that are immutable by interface or convention, but the environment does not help you doing so.
- didibus 9y agoYea, not VList exactly, but similar and also pioneered by Phil Bagwell. They're implemented as a trie under the hood. And provide a list or set or stack or queue or map like interface. You can not mutate the value at any node, instead edits are diffs in the tree, a bit like git commits. So they end up being almost as fast as their normal mutable counterparts, and with similar and sometimes better memory consumption, because nothing is ever copied under the hood. This allows them to be good enough to be made the default datastructures. Clojure was the first to make this gamble, and show that the state of the art immutable datastructures mostly pioneered by Bagwell were practical and could replace immutable ones for the 99% use cases.
- eastWestMath 9y agoClojure did not invent immutable data structures!!
- didibus 9y agoI think Clojure contributed to the functional and meta programming resurgence. It didn't innovate on any one feature, but it brought a whole lot of old forgotten ideas back together, and showed their value.