[HN Gopher] Garn, a TypeScript-based Nix front end
___________________________________________________________________
Garn, a TypeScript-based Nix front end
Author : jkarni
Score : 39 points
Date : 2023-11-02 12:14 UTC (10 hours ago)
(HTM) web link (garnix.io)
(TXT) w3m dump (garnix.io)
| norman784 wrote:
| I'm interested to know if this finally will help me to enter nix
| world, I tried so many times but failed.
| soenkehahn wrote:
| (One of the `garn` developers here.)
|
| Yeah, that's definitely the intention. If you end up trying it
| out, I'd love to hear how it went!
| lagrange77 wrote:
| Have you thought about a GUI layer on top of that, named
| uberhaupt?
|
| But maybe that would create too much overhead..
| soenkehahn wrote:
| lol, no we haven't. That is hilarious though! We might
| steal that name for some future project.
| chalsprhebaodu wrote:
| I am thrilled to hear that this effort exists.
|
| What's the rationale for the heavy use of tagged template
| literals in the API? From the outside, it seems like an esoteric
| choice that makes ergonomics slightly worse, less approachable,
| and less idiomatic. This seems to fly directly in the face of the
| goals of this project.
|
| All that said, I could be convinced that the API choice isn't a
| mistake.
|
| At any rate, I'm excited to see where this project goes.
| jkarni wrote:
| It's to allow interpolation of packages and environments. But
| in practice we don't use it that often, so we were thinking of
| switching the main function to using just a second string
| argument. (In other words, I agree.)
| chalsprhebaodu wrote:
| That seems reasonable! I can't really locate any examples of
| that functionality. Could you show me what that would look
| like?
| soenkehahn wrote:
| One working example is this: import * as
| garn from "https://garn.io/ts/v0.0.14/mod.ts"; import
| * as pkgs from "https://garn.io/ts/v0.0.14/nixpkgs.ts";
| export const main: garn.Executable =
| garn.shell`${pkgs.jq}/bin/jq --version`;
|
| Put that in a 'garn.ts' file and run 'garn run main' and
| you should see the version of 'jq' that you can get from
| our 'nixpkgs' module.
|
| But yeah, I completely agree with the sentiment here. This
| is a rather cumbersome syntax to support a use-case that we
| don't even have examples for. So clearly the normal usage
| shouldn't force you to use template strings.
| chalsprhebaodu wrote:
| I can definitely the utility of it.
|
| Perhaps a standalone function (like nixRaw) could work to
| enable this.
| aidenn0 wrote:
| I use the syntax of nix (and SML derived languages in general) as
| a reminder to myself that those who complain about the syntax of
| Lisp probably just have different taste than me, because there
| are people out there who prefer the syntax of nix to that of
| Lisp.
| jflakjwoasdlf wrote:
| I really like Guix & Nix, but I can see the appeal of this.
|
| Language familiarity, first-class IDE experience, and TS's type
| system.
| rynite wrote:
| This is pretty cool.
___________________________________________________________________
(page generated 2023-11-02 23:02 UTC)