news.volyx.in

Enlightenmentware (mmapped.blog)

444 points by zaik · 816 days ago · 238 comments on HN

Article summary

The article discusses the concept of 'enlightenmentware', which refers to software that not only gets the job done but also inspires and influences the way developers design their own systems. The author shares their personal experiences with various software tools, including UNIX, Git, Emacs, Boost.Graph, and Bazel, and how they have contributed to their growth as a programmer. These tools have had a profound impact on the author's understanding of software development and have shaped their approach to building systems. The article highlights the importance of such software in a developer's journey.

Main themes

  • Enlightenmentware
  • Software development
  • UNIX and Linux
  • Version control systems
  • Build systems
  • Programming languages

What commenters say

  • Bazel is a powerful build system, but its complexity can be overwhelming, and some users prefer simpler alternatives like Nix or Pants.
  • Nix is a build system that provides reproducibility and determinism, but its learning curve can be steep, and its language is difficult to understand for some users.
  • The use of Nix as a build system is often recommended, but some users are confused about its role and how it differs from traditional build systems like Make or Maven.
  • The concept of 'enlightenmentware' is subjective, and what inspires one developer may not have the same effect on another, highlighting the importance of personal experience and preference in software development.
  • Some users argue that Nix is not just a build system, but a maintained software distribution that provides consistent results and avoids dependency conflicts, making it a valuable tool for developers.
  • The complexity of Nix is not just due to its language, but also the number of conventions and layers in the stack that make up the Nix ecosystem, which can take time to understand and master.
  • Functional programming approaches, like those used in Nix, often win in the long run due to their ability to provide reproducibility and determinism, making them a valuable tool for developers.
  • The choice of build system, whether it's Bazel, Nix, or something else, ultimately depends on the specific needs and goals of the project, and what works best for one project may not work for another.