Elements of Clojure @elementsofclj
A book by @ztellman about the philosophy of software, through the lens of Clojure elementsofclojure.com Joined July 2018-
Tweets275
-
Followers931
-
Following1
-
Likes12
In the software literature, sometimes "transparent" means transparent, and sometimes it means opaque. This week, I explore the history behind both uses, and try to find a synthesis: explaining.software/archive/transp…
For the next few weeks, we'll be exploring both sides of this coin. To start, we'll look at the simplicity of keeping things apart: explaining.software/archive/the-si…
This intuition arises from our industry's decades-long treatment of coupling as, at best, a necessary evil. And, in my opinion, it's entirely wrong. Cohesive code doesn't have to be understood all at once. Rather, it's best understood incrementally: explaining.software/archive/the-si…
Almost every discussion of simplicity in the software industry builds atop the coupling/cohesion dichotomy introduced by Stevens et al in dl.acm.org/doi/10.1147/sj…. There, they defined relationships inside functions as "cohesion", and every other relationship as "coupling".
I wrote about why coupling has an unfair reputation in software design explaining.software/archive/coupli…
I wrote about the three-part structure of explanations in software development: explaining.software/archive/the-an…
For the past few years, I've been working on a book about software design. Lately, I've been feeling the need to ensure that its core ideas resonate with a broader audience. As such, I've started a newsletter: explaining.software/archive/a-brie…
I recently gave a talk on some ideas from my upcoming book on software design: youtu.be/tHThXQr7wwA. There’s a lot I didn’t have time to cover, but I think it conveys the general perspective I’m taking and some of the central themes.
Earlier this year I went part-time at Microsoft to work on a new book, which will cover many of the same topics as Elements of Clojure, but more clearly and completely articulated, and hopefully accessible to a broader audience.
Elements of Clojure leanpub.com/elementsofcloj… by Zachary Tellman is the featured book on the Leanpub homepage! leanpub.com cc @ztellman
The tick's model of its environment cannot guarantee a consistent outcome. For any given values of heat and sweat, there are scenarios that lead to success and scenarios that lead to failure. Nevertheless, the tick survives; its simplistic model satisfices.
Consider how the world is seen by a tick.
Self-consistency is necessary, but not sufficient. When evaluating software, we cannot ignore the broader context. We must take advantage of every available perspective. We must be dissatisfied with easy answers. We must be curious.
There are countless resources for creating self-consistent abstractions, but few for creating useful abstractions. This is in part because self-consistency is an objective property, while utility is hopelessly subjective.
In software, we don't have the luxury of ignoring context. We need our models to be self-consistent, but we also need them to be *useful* within our given environment.
Hoare's abstraction function, like the Church numeral, is a mathematical abstraction. It describes a model which has provable qualities and is often described as "correct," which means it is self-consistent. By omission, it deems the context unimportant.
But the cons cell is not timeless; since its invention in the late 1950s, computers have changed. Notably, processor speed has improved more than memory latency, and so the relative cost of following a reference has grown over time.
For a table to be useful, it must avoid conflicts. One way to accomplish this is to keep the table private so it reflects only our vision of how keys map onto behavior. Alternatively, we can extend the table using only private keys so no one else can shadow our behavior.
A reference *conveys* values, and a conditional *decides* based upon values. These are complementary primitives and are present in every modern language. Through their composition, we can create software of arbitrary complexity.
A name is a lexical reference that is dereferenced at compile time. A pointer is a memory reference that is dereferenced at runtime.
Indirection provides separation between *what* and *how*. It exists wherever "how does this work?" is best answered, "it depends."
Peter Strömberg aka ... @pappapez
2K Followers 1K Following Love, Family and Liberty! #AFUERA! Husband. Father of five. Also Love and #Clojure! Creator of Calva: https://t.co/rWdQboGDaF
Kevlin Henney @KevlinHenney
20K Followers 1K Following I only X for RTs, DMs & promos. For thoughts & discussion, find me over at https://t.co/muoXTbOj9C & https://t.co/HsnrFljtCo.
Wilfred Hughes @_wilfredh
4K Followers 3K Following Programming language development, human factors, and a healthy dose of Emacs. Also https://t.co/faGheKDz69 and https://t.co/sqqeQ20uHV
alhazrod @alhazrod
1 Followers 143 Following “That is not dead which can eternal lie, And with strange aeons even death may die.”
braindeer @braindeer86
0 Followers 8 Following Caught in the brilliance of profane novelty, the Creativity delivers Art with great pretension. CyberPrime is now available at your prehension.
Юрий Синици... @USinitcin
3 Followers 224 Following
Diego @dmrq70
63 Followers 397 Following
λ𝑥.𝑥 @bipolarlisp
35 Followers 649 Following
Uncode @jahyun_gu25923
15 Followers 195 Following
यूरेशिय... @ExNastik
23 Followers 108 Following रथवाहक, श्यामवर्णी तथा तन्त्रांशाभियन्ता । कृण्वन्तु विश्वमार्यम् । "स्वाध्यायान्मा प्रमदः"
ORB-NRG @ORB_NRG
32 Followers 453 Following
alper @alperyildrm
62 Followers 688 Following
Nathan Smutz @SmutzNatha77462
5 Followers 9 Following Created this account after my original got hacked. 8/1/2024
Cameron Candelori @CandeloriCodes
6 Followers 110 Following
Renan @renan4241
0 Followers 321 Following
Robert Olivier @RCPOlivier
19 Followers 375 Following
Jules Gosnell @JulesGosnell
69 Followers 83 Following
yalu 🔆 (🤖,🌏) @bitsikka
868 Followers 5K Following Community, App integration @BrightIDProject Views expressed are through my own being, and no other is response-able for them.
Dr Rajesh S Kempegowd... @rajesh_sk76
252 Followers 1K Following Senior R&D in Energy | Building https://t.co/09Z9GKpACK — Next-gen simulation for tyre/plastic pyrolysis, biomass gasification industrial decarbonization
Matt Tuel @SimpleTuel
74 Followers 1K Following You can just do things, and you don't have to be conventional about it.Jan Wedekind @wedesoft
188 Followers 493 Following Web: https://t.co/wMC6BavqMs Nostr: https://t.co/LvJYc6Izrh
𝒫𝑒𝓇 𝒜𝓇... @per_arneng
1K Followers 3K Following 🧠 AI Engineer | 💻 Software Architect | 🌍 Ethical Acceleration #ethacc | Diving deep into the matrix of AI and programming languages. @perarneng.bsky.
lejian xiwen @xmobyyyy
0 Followers 46 Following
Biut Thapa @BiutThapa
289 Followers 3K Following Explorative steps toward what matters most. Writing and/or Building. Lover of Individual Rights including Property Rights.
Tuomo Sahipakka @tuomosa
1K Followers 3K Following Tech entrepreneur & consultant | UNIX/suckless greybeard | Self-host everything, encryption rights, free speech & decentralized options
Jairo Saavedra @rho_high
85 Followers 575 Following Physicist and Software engineer. Born to shit, with the moral obligation to wipe.
Jason Agbebaku @AgbebakuJason
187 Followers 630 Following game dev, product manager/dev rel @Rosebud_AI ✝️
William Roy James @JamesWilli36333
522 Followers 4K Following These posts may be a discovery.The question here is why has this not been discovered, it is so simple.What could the reason be.Can you help to find the answer ?
Aram @AramCandy
7 Followers 91 Following
Turjan of Miir @turjanofmiir
186 Followers 404 Following These are your father’s parentheses. Elegant weapons for a more civilized age.
Vlad A. Barbu @vladddbbb
1 Followers 352 Following
Νέμεσις - Κο... @Sirios1983
2K Followers 7K Following
Damian @sotod
107 Followers 2K Following
zhihong zhang @hellomywd666
0 Followers 102 Following
. @dfwij
2 Followers 511 Following
White Apathy @fundcruncher
381 Followers 1K Following 🥓 One country, one culture 🥓 Genetics is not skin deep 🥓 The West is being strangled
Qualibaba @qualibaba
3 Followers 209 Following
braai engineer @BraaiEngineer
2K Followers 2K Following braai/acc. I put the ai in braai. making software for 20+ yrs. BEng E&E w/Comp Sci. #Clojure. EACL AuthZ: https://t.co/8d7whW9IvY. 🤠🎸 @IndianaTunes on IG. 🔥🪵 @BraaiSim
🤐 @andrewnimmo
61 Followers 925 Following
nathanwh71 @nathanwh71
1 Followers 128 Following
Michel Oosterhof @micheloosterhof
791 Followers 2K Following ॐ・@google・climber・🚲・🤿・lapsed physicist・#cowrie developer・my opinions are my own・Πάντα ῥεῖ・🇳🇱
Ganesh Rajendran @ganeshrajendran
429 Followers 3K Following Visual artist (Bootstrapped startup - NOT raising funds)











