Steel Bank Common Lisp
Whenever a post about Lisp graces the front page of Hacker News, I typically observe two main categories of commenters. The first group is composed of devout Lisp enthusiasts who have either applied it to solve problems in the past or continue to utilize it in their personal and professional projects. They are well-versed in the numerous advantages of Lisp over many contemporary programming languages. Their familiarity with the language extends to its versatility in writing DSLs using its macro system, its adaptability in altering running programs, and its debugging prowess. They value the ability to scrutinize the internals, apply multiple programming paradigms, and appreciate various other benefits.<p>The second group, conversely, is characterized by its perennial question whenever a Lisp-related article surfaces: &quot;Does anybody use Lisp these days?&quot; In response, the first group can usually cite a small collection of projects that still use Lisp, including Clojure shops, a Brazilian startup, and the Hacker News website, which is written in Arc, among others.<p>This dichotomy serves as an apt illustration of how one&#x27;s perspective can be distorted, causing them to overlook the broader reality. As much as I admire and appreciate Lisp (and I genuinely do!), it&#x27;s hard to ignore that the technological world primarily operates on languages such as C, Java, JavaScript, Python, C#, and a handful of others. The communities surrounding these languages seldom feel the need to prove their viability by listing projects that use them.<p>The undeniable truth is that the world has largely embraced C-type languages, and in doing so, has achieved remarkable feats. The &quot;absolute best&quot; programming language was not a requirement for this progress.<p>Management professor and esteemed writer Peter Drucker offered valuable insight in his book &quot;The Effective Executive.&quot; He stated that effective executives don&#x27;t become preoccupied with the tools they use; instead, they employ whatever tools are necessary to accomplish their tasks. This notion, I believe, is applicable not only to management but also to the realm of programming languages.