The author draws a parallel between blacksmithing and Lisp programming, arguing that both involve a transformative process of shaping raw materials into refined artifacts. Blacksmithing transforms metal through iterative heating, hammering, and cooling, while Lisp uses functions and macros to mold code into elegant and efficient structures. Both crafts require a deep understanding of their respective materials and tools, allowing practitioners to leverage the inherent properties of the medium to create complex and powerful results. This iterative, transformative process, coupled with the flexibility and expressiveness of the tools, fosters a sense of creative flow and empowers practitioners to build exactly what they envision.
Deep in the Burgundy forest of France, Guédelon Castle is a unique ongoing experiment: building a 13th-century castle entirely from scratch using only period-correct tools and techniques. This ambitious project, begun in 1997, employs skilled craftspeople who quarry stone, make mortar, forge iron, carve wood, and practice other medieval trades to construct the castle, offering visitors a living history lesson in medieval architecture and construction. The project aims not just to recreate a castle, but to understand the process and challenges faced by medieval builders.
HN commenters express fascination with the Guédelon castle project, praising its commitment to authentic 13th-century building techniques. Several discuss the surprising efficiency of medieval methods, noting the clever use of human and animal power, and the sophisticated understanding of material science displayed by the builders. Some commenters draw parallels to software development, highlighting the iterative, experimental nature of the project and the value of learning by doing. Others lament the loss of traditional craftsmanship and knowledge in modern society. A few express skepticism about the project's complete authenticity, questioning the influence of modern tools and safety regulations. Overall, the comments reflect a mix of admiration, curiosity, and nostalgia for a pre-industrial way of life.
Summary of Comments ( 14 )
https://news.ycombinator.com/item?id=43566651
Hacker News users discussed the parallels drawn between blacksmithing and Lisp in the linked blog post. Several commenters appreciated the analogy, finding it insightful and resonating with their own experiences in both crafts. Some highlighted the iterative, feedback-driven nature of both, where shaping the material (metal or code) involves constant evaluation and adjustment. Others focused on the power and expressiveness afforded by the tools and techniques of each, allowing for complex and nuanced creations. A few commenters expressed skepticism about the depth of the analogy, arguing that the physicality of blacksmithing introduces constraints and complexities not present in programming. The discussion also touched upon the importance of mastering fundamental skills in any craft, regardless of the tools used.
The Hacker News post "Blacksmithing and Lisp" (https://news.ycombinator.com/item?id=43566651) has several comments discussing the analogy between blacksmithing and Lisp programming.
One commenter argues that the core similarity lies in the iterative, feedback-driven process inherent in both crafts. They point out that blacksmiths, like Lisp programmers, start with a basic form, apply transformations, observe the results, and then refine their approach based on this feedback. This iterative cycle of shaping, evaluating, and adjusting is central to both disciplines. The commenter emphasizes the importance of developing a "feel" for the material, whether it's hot iron or code, through repeated interaction and experimentation. This "feel," they suggest, allows for more intuitive and effective manipulation.
Another commenter draws a parallel between the composability of Lisp code and the modularity in blacksmithing. They explain that just as a blacksmith can forge individual components and assemble them into a larger, more complex structure, Lisp programmers can create small, self-contained functions that can be combined to build powerful programs. This modularity promotes code reuse and simplifies the development process.
Furthermore, a commenter highlights the elegance and expressiveness of both blacksmithing and Lisp. They suggest that both crafts allow for a certain degree of artistry and creativity in shaping the final product. The simplicity and power of Lisp, they argue, allow programmers to express complex ideas with concise and elegant code, much like a blacksmith can create intricate designs with skillful manipulation of metal.
Another perspective offered in the comments focuses on the importance of understanding the underlying principles. Just as a blacksmith needs to understand the properties of metal and the effects of heat and pressure, a Lisp programmer needs to grasp the fundamentals of the language and its underlying mechanics. This deep understanding, according to the comment, allows for more effective and efficient creation.
Finally, a comment mentions the joy and satisfaction derived from mastering a craft, whether it's blacksmithing or Lisp programming. The process of learning and improving, overcoming challenges, and creating something tangible or functional, they suggest, is intrinsically rewarding in both domains. The challenge and subsequent mastery are highlighted as a core shared element.
In summary, the comments on the Hacker News post explore various facets of the analogy between blacksmithing and Lisp programming, focusing on the iterative process, modularity, elegance, the importance of understanding underlying principles, and the inherent satisfaction of mastering a craft.