[HN Gopher] Enlightenmentware
       ___________________________________________________________________
        
       Enlightenmentware
        
       Author : zaik
       Score  : 67 points
       Date   : 2024-05-20 20:23 UTC (2 hours ago)
        
 (HTM) web link (mmapped.blog)
 (TXT) w3m dump (mmapped.blog)
        
       | jiehong wrote:
       | Speaking of Bazel, I wanted to try it out for a Java project, but
       | it felt a bit more complex than expected.
       | 
       | Would you recommend using it even for mono languages projects?
        
         | colordrops wrote:
         | If you haven't already committed, consider Nix instead.
        
           | threePointFive wrote:
           | I'm still trying to understand why people recommend Nix in
           | place of a build system. Nixpkgs stdlib by default expects an
           | autotools project. It will happily integrate with other build
           | systems, as long as you've spelled out your dependencies in
           | both. I've yet to see it generate a Makefile or make any
           | decisions about compilition that weren't spelled out in a
           | "traditional" build system. Could you shed some light on what
           | I've missed?
        
         | AlotOfReading wrote:
         | Bazel is probably at its simplest in a monolingual codebase.
         | Toolchains have a lot of complexity.
         | 
         | It's like that Churchill quote about democracy: Bazel is the
         | worst build system except for all those others.
        
         | Tijdreiziger wrote:
         | Why not Gradle or Maven?
        
       | jchw wrote:
       | Doubt anyone will be surprised by this from me, but, Nix, 1000x.
       | The amount of crazy stuff you can make work with Nix and Nixpkgs
       | is _nuts_. This weekend someone pinged me wanting a static build
       | of a Rust binary that had some gnarly bindings to C++ libraries.
       | In under 100 lines of Nix, we have everything: static musl-based
       | build, dynamic glibc build. Want an AppImage? `nix bundle` with
       | an AppImage bundler. Want an OCI image? dockerTools.buildImage on
       | top of your derivation. Throw it in GitHub actions using the
       | Determinate Nix Installer action and you get automatic caching of
       | the Nix store using GitHub actions cache; pretty useful since
       | neither musl Rust nor static LLVM are cached in Hydra. Want to
       | share your cache? Pipe a list of Nix store paths to Cachix, then
       | they can pull it down, or add the Cachix GitHub action to
       | automatically pull from and /or push to it for the CI build. So
       | if anyone wanted to re-use your cache from GitHub Actions CI
       | runs, they could, provided they trust you. You can even cross-
       | compile with MinGW, or run it on macOS.
       | 
       | It's a hugely complex time sink, but my God, it's great. Whereas
       | I don't generally recommend people go down the NixOS rabbit hole
       | unless they're convinced it's right for them, I definitely think
       | Nix is worth having in your toolbelt, it's ridiculously
       | versatile.
        
         | xyzzy_plugh wrote:
         | This 100%. It's the gift that keeps on giving.
        
           | nicce wrote:
           | You need to give the first gift, however. Time. And lot of
           | it.
        
         | renewiltord wrote:
         | Wait, this is a pretty good sell. I'm going to give this Nix
         | thing a shot. All the other times it's posted people talk about
         | things I don't care like replicable builds and stuff.
        
           | __MatrixMan__ wrote:
           | My guess is that if you use it long enough for it to start
           | being useful, you'll find that "replicable builds" solves a
           | wider variety of problems than you initially thought it did.
           | 
           | At that point, the hard part becomes getting your co-workers
           | to recognize that all of these little problems that they
           | perceive as separate are actually just facets of the the same
           | huge nondeterminism problem.
        
       | dist1ll wrote:
       | I would say the compiler explorer[0] fits the definition
       | perfectly. It may seem like a straightforward piece of software,
       | but it has immensely changed the way people discuss and share
       | knowledge around compilers and performance optimization.
       | 
       | I regularly feel the impact on the quality of forum discussions.
       | There's a lot less speculation about if "call X gets inlined", or
       | "Y gets vectorized". Bold claims can be supported or disproven
       | quickly by sharing a link. And then you have tools like llvm-
       | mca[1] or uiCA[2], if you don't mind going into the weeds.
       | 
       | [0] https://godbolt.org/
       | 
       | [1] https://llvm.org/docs/CommandGuide/llvm-mca.html
       | 
       | [2] https://uica.uops.info/
        
       | hu3 wrote:
       | Docker one of these tools for me.
       | 
       | The unspeakable amount of my time and headache it saved during my
       | consulting career puts a smile on my face.
       | 
       | Docker allows me to quickly iterate over the steps required to
       | run ancient projects.
       | 
       | Not having to install 5 different relational database servers on
       | my host OS alone is worth the learning curve.
       | 
       | Also crucial for running concurrent, reproducible, Python
       | environments in my laptop.
        
       | vvern wrote:
       | Maybe one day the buck2 ecosystem will evolve to be that bazel
       | replacement. It has a much smaller core. Right now it's lacking
       | in ecosystem support, tooling, examples, and a local build
       | sandboxing (which could be fine if there was an easy to use local
       | implementation of remote build that felt natural). Also no go
       | support is sort of painful, and it's a bunch of work as i
       | understand it to get something like rules_go to work for buck2.
        
       | delta_p_delta_x wrote:
       | > I couldn't fathom why anyone would use Windows2
       | 
       | I saw this sentence, was about to type something in response, and
       | then I expanded the footnote (side note: is it really a ' _foot_
       | 'note if it's not in the footer of the page?):
       | 
       | > I became significantly more tolerant since my early university
       | years. Windows (specifically the NT family) is a great operating
       | system. I even have it installed on my gaming pc so that I can
       | buy games I never play.
       | 
       | It's pretty rare to see such a balanced perspective with respect
       | to Windows when someone starts off with 'UNIX'.
        
       | jwrallie wrote:
       | I hope the author would consider trying Doom Emacs, he mentioned
       | knowing Vim and using Vscode, so with Evil and lsp support he
       | will feel at home, the configuration has great defaults!
        
       ___________________________________________________________________
       (page generated 2024-05-20 23:00 UTC)