• 16 Posts
  • 8 Comments
Joined 6 months ago
cake
Cake day: April 4th, 2025

help-circle




  • The company’s development and expansion of its services will rely in no small part on massive data center projects, which will require the same amount of energy to operate as New York City and San Diego combined—energy that currently isn’t even available.

    In that case, there is a little but fundamental problem. It is based on basic physics: You can fake securities or earnings, or you can print money. But you can’t fake energy because that violates the laws of physics.


















  • Yes, having programmed bash and its predecessors for 30 years and several lisps (Clojure, Racket, Guile, a little SBCL) in the last 15 years, I very much prefer the Scheme version in this place.

    Why?

    • This code fragment is part of a much larger system, so readability and consistency counts
    • The Guile version supports a more powerful functionality, which is that evaluation of a package can have several extra results (called outputs). It is over a year that I read about that in the Guix documentation and yet I recognize it immediately.
    • the code tells me that it is removing examples.
    • the code fits neatly into a tidy system of several stages of build and packaging
    • the code uses a structured loop. Of course you can do that in shell as well - I am pointing this out because the bash version is a bit shorter because it does not use a loop.
    • Scheme has much safer and more robust string handling. The code will not do harmful things if a file name contains white space or happens to be equal to 'echo a; rm -rf /etc/*'.
    • Scheme strings handle Unicode well
    • If there is an error, it will not be silently ignored as is the norm in shell scripts which are not written by experts, but will throw it.
    • the code has less redundancy. For example, the bash version mentions three times the subfolder “lib”, the Guile version only once. This makes it easier to refactor the code later.