[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)