unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Advantages over Nix?
@ 2020-10-26  7:42 Taylan Kammer
  2020-10-26  9:29 ` Jan Nieuwenhuizen
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Taylan Kammer @ 2020-10-26  7:42 UTC (permalink / raw)
  To: guix-devel

Hi Guixers,

Personally I'm a GNU-lover and a Scheme-lover so it's obvious why I
would choose Guix over Nix.

However, currently at my workplace I'm trying to pitch Nix/Guix as a
better way of generating Docker container images, opposed to the impure
Dockerfile way of doing it.

(I've never really worked with Docker yet so my understanding is very
shallow; I hope what I'm saying makes sense.  My understanding is that
via Dockerfiles you generate images imperatively, and the results are
dependent on the state of the universe.  Yuck!)

So now the question is: given that Nix is older and thus probably more
mature, are there any non-subjective, non-ideological reasons to pick
Guix over Nix?

I've never worked with Nix, and neither have I messed with the more
spicy features of Guix yet (like 'guix deploy') so I really have no
idea!

What I've noticed so far though, is that things like "guix pack" and
"guix deploy" are baked right into Guix and very well documented,
whereas Googling how to do equivalent things with Nix seems to often
return results related to extra tools...  Am I just bad at looking up
Nix documentation?  Currently I have the impression that it would be
much easier to create Docker images with Guix than with Nix!  But maybe
that's wrong.


TL;DR: sell Guix (over Nix) to someone who doesn't care about GNU or
Scheme?


- Taylan


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26  7:42 Advantages over Nix? Taylan Kammer
@ 2020-10-26  9:29 ` Jan Nieuwenhuizen
  2020-10-26 11:36   ` Taylan Kammer
  2020-10-26 10:41 ` zimoun
  2020-10-26 22:32 ` Ricardo Wurmus
  2 siblings, 1 reply; 14+ messages in thread
From: Jan Nieuwenhuizen @ 2020-10-26  9:29 UTC (permalink / raw)
  To: Taylan Kammer; +Cc: guix-devel

Taylan Kammer writes:

Hi Taylan,

> Personally I'm a GNU-lover and a Scheme-lover so it's obvious why I
> would choose Guix over Nix.

:-)

> TL;DR: sell Guix (over Nix) to someone who doesn't care about GNU or
> Scheme?

Have you seen Daniel Schaefer's Peering into the Land of Parentheses?

    https://www.youtube.com/watch?v=bDGzCXr6VYU

Janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26  7:42 Advantages over Nix? Taylan Kammer
  2020-10-26  9:29 ` Jan Nieuwenhuizen
@ 2020-10-26 10:41 ` zimoun
  2020-10-26 11:44   ` Pierre Neidhardt
  2020-10-26 12:42   ` Taylan Kammer
  2020-10-26 22:32 ` Ricardo Wurmus
  2 siblings, 2 replies; 14+ messages in thread
From: zimoun @ 2020-10-26 10:41 UTC (permalink / raw)
  To: Taylan Kammer; +Cc: Guix Devel

Hi Taylan.

On Mon, 26 Oct 2020 at 08:42, Taylan Kammer <taylan.kammer@gmail.com> wrote:

> However, currently at my workplace I'm trying to pitch Nix/Guix as a
> better way of generating Docker container images, opposed to the impure
> Dockerfile way of doing it.

The pitch really depends on the background of your workplace.
Providing scientific C applications running on HPC clusters is not the
same as running Python/JS/SQL web services.


> (I've never really worked with Docker yet so my understanding is very
> shallow; I hope what I'm saying makes sense.  My understanding is that
> via Dockerfiles you generate images imperatively, and the results are
> dependent on the state of the universe.  Yuck!)

The main pitfall is not the Dockerfile per se but the classical
distribution it often implies.  Well, this video is explaining better
than my words. :-)

https://archive.fosdem.org/2019/schedule/event/gnu_guix_new_approach_to_software_distribution/


> So now the question is: given that Nix is older and thus probably more
> mature, are there any non-subjective, non-ideological reasons to pick
> Guix over Nix?

I do not know Nix.  The killer features I cannot work without now are:

 - time-machine
 - environment (alone, with --pure or --container)
 - pack -f docker
 - repl


> TL;DR: sell Guix (over Nix) to someone who doesn't care about GNU or
> Scheme?

For reference, Pierre started this [1] and I do not remember the end
of the story.   IMHO, the nice move is to write down typical use
cases/scenarii that Guix solves and then the audience can pick the one
they are interested in or the one that talks to them as an entry
point.  Therefore, to convince my co-workers, I pick our typical
workflow, show how it works (or would work) with Guix, pointing out
what are the current drawbacks of the current workflow and how Guix
improves the situation or sometimes only one specific part of the
workflow.  (My co-workers are biologists so they do not care much
about the computational tools since the one who is doing. ;-))

1: https://lists.gnu.org/archive/html/help-guix/2020-01/msg00002.html

All the best,
simon


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26  9:29 ` Jan Nieuwenhuizen
@ 2020-10-26 11:36   ` Taylan Kammer
  2020-10-26 23:39     ` Ludovic Courtès
  0 siblings, 1 reply; 14+ messages in thread
From: Taylan Kammer @ 2020-10-26 11:36 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guix-devel

On 26.10.2020 10:29, Jan Nieuwenhuizen wrote:
> Taylan Kammer writes:
> 
> Hi Taylan,
> 
>> Personally I'm a GNU-lover and a Scheme-lover so it's obvious why I
>> would choose Guix over Nix.
> 
> :-)
> 
>> TL;DR: sell Guix (over Nix) to someone who doesn't care about GNU or
>> Scheme?
> 
> Have you seen Daniel Schaefer's Peering into the Land of Parentheses?
> 
>      https://www.youtube.com/watch?v=bDGzCXr6VYU
> 
> Janneke
> 

I had not, but now I have, thanks!

This seems to confirm my thought that Guix is actually at a better place 
with things like guix deploy, guix pack, etc. compared to Nix, where 
things are more scattered.  I suppose it's thanks to the clean-slate 
development of Guix... or the developers are just geniuses. ;-)


- Taylan



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26 10:41 ` zimoun
@ 2020-10-26 11:44   ` Pierre Neidhardt
  2020-10-26 12:46     ` Taylan Kammer
  2020-10-26 12:42   ` Taylan Kammer
  1 sibling, 1 reply; 14+ messages in thread
From: Pierre Neidhardt @ 2020-10-26 11:44 UTC (permalink / raw)
  To: zimoun, Taylan Kammer; +Cc: Guix Devel

[-- Attachment #1: Type: text/plain, Size: 440 bytes --]

zimoun <zimon.toutoune@gmail.com> writes:

> For reference, Pierre started this [1] and I do not remember the end
> of the story.

This is the end of the story ;)

https://ambrevar.xyz/guix-matters/index.html

But all these points are valid for Nix.  For a Guix presentation to
includes a (shallow) comparison to Nix, see

https://ambrevar.xyz/guix-advance/index.html

Cheers!

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 511 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26 10:41 ` zimoun
  2020-10-26 11:44   ` Pierre Neidhardt
@ 2020-10-26 12:42   ` Taylan Kammer
  2020-10-26 16:14     ` zimoun
  1 sibling, 1 reply; 14+ messages in thread
From: Taylan Kammer @ 2020-10-26 12:42 UTC (permalink / raw)
  To: zimoun; +Cc: Guix Devel

On 26.10.2020 11:41, zimoun wrote:
> 
> The main pitfall is not the Dockerfile per se but the classical
> distribution it often implies.  Well, this video is explaining better
> than my words. :-)
> 
> https://archive.fosdem.org/2019/schedule/event/gnu_guix_new_approach_to_software_distribution
Great video!  I love the way Ludo explains things.

> I do not know Nix.  The killer features I cannot work without now are:
> 
>   - time-machine
>   - environment (alone, with --pure or --container)
>   - pack -f docker
>   - repl
I think pack -f docker is going to be the "killer feature" in this case.

Well, the following doesn't seem so complicated either actually:

   https://nix.dev/tutorials/building-and-running-docker-images.html

But I really like how 'guix pack' can generate a tarball just as well, 
which could be deployed and tested anywhere...

I'll need to make a few more comparisons.

>> TL;DR: sell Guix (over Nix) to someone who doesn't care about GNU or
>> Scheme?
> 
> For reference, Pierre started this [1] and I do not remember the end
> of the story.   IMHO, the nice move is to write down typical use
> cases/scenarii that Guix solves and then the audience can pick the one
> they are interested in or the one that talks to them as an entry
> point.  Therefore, to convince my co-workers, I pick our typical
> workflow, show how it works (or would work) with Guix, pointing out
> what are the current drawbacks of the current workflow and how Guix
> improves the situation or sometimes only one specific part of the
> workflow.  (My co-workers are biologists so they do not care much
> about the computational tools since the one who is doing. ;-))
> 
> 1: https://lists.gnu.org/archive/html/help-guix/2020-01/msg00002.html

That sounds like a sensible approach, thanks for the suggestion!


- Taylan


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26 11:44   ` Pierre Neidhardt
@ 2020-10-26 12:46     ` Taylan Kammer
  0 siblings, 0 replies; 14+ messages in thread
From: Taylan Kammer @ 2020-10-26 12:46 UTC (permalink / raw)
  To: Pierre Neidhardt, zimoun; +Cc: Guix Devel

On 26.10.2020 12:44, Pierre Neidhardt wrote:
> zimoun <zimon.toutoune@gmail.com> writes:
> 
>> For reference, Pierre started this [1] and I do not remember the end
>> of the story.
> 
> This is the end of the story ;)
> 
> https://ambrevar.xyz/guix-matters/index.html
> 
> But all these points are valid for Nix.  For a Guix presentation to
> includes a (shallow) comparison to Nix, see
> 
> https://ambrevar.xyz/guix-advance/index.html
> 
> Cheers!
> 

Bookmarked!

I'll direct colleagues to this if they want to get a big-picture view of 
what Guix is and can do, apart from hopefully becoming our "Docker image 
generating tool" of choice. :-)


- Taylan


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26 12:42   ` Taylan Kammer
@ 2020-10-26 16:14     ` zimoun
  2020-10-26 20:29       ` Yasuaki Kudo
  0 siblings, 1 reply; 14+ messages in thread
From: zimoun @ 2020-10-26 16:14 UTC (permalink / raw)
  To: Taylan Kammer; +Cc: Guix Devel

Dear,

On Mon, 26 Oct 2020 at 13:42, Taylan Kammer <taylan.kammer@gmail.com> wrote:
>
> On 26.10.2020 11:41, zimoun wrote:

> I think pack -f docker is going to be the "killer feature" in this case.
>
> Well, the following doesn't seem so complicated either actually:
>
>    https://nix.dev/tutorials/building-and-running-docker-images.html
>
> But I really like how 'guix pack' can generate a tarball just as well,
> which could be deployed and tested anywhere...
>
> I'll need to make a few more comparisons.

Do not miss the '--save-provenance' option. ;-)
It saves the profile/manifest which can be used to rebuild one
manifest.scm file.  You could be interested in [1].  I am running out
of time, but the profile/manifest->manifest.scm converter could be
nice to have. :-)

1:<https://lists.gnu.org/archive/html/guix-devel/2020-09/msg00221.html>


All the best,
simon


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26 16:14     ` zimoun
@ 2020-10-26 20:29       ` Yasuaki Kudo
  0 siblings, 0 replies; 14+ messages in thread
From: Yasuaki Kudo @ 2020-10-26 20:29 UTC (permalink / raw)
  To: zimoun; +Cc: Guix Devel

[-- Attachment #1: Type: text/plain, Size: 2939 bytes --]

Hi!

I was in almost the situation a few months ago and I spent a few weeks trying both NixOS and Guix.

To me, Nix felt more like a 'minimum viable product' for a startup company - it works well but seems to suffer from its own success - practicality is given priority over engineering cleanliness.

Guix felt the opposite - package installations and upgrades felt way slower (it takes much longer to download, requires more frequent lengthy compilation) , not to mention that it is outright useless without proprietary packages augmented by nonguix, etc, if you happen to have critical hardware unsupported by LibreLinux, the kernel that has been stripped of proprietary code.

I am no expert in neither Nix nor Guix but toward the end of my analysis (I have since moved to another assignment), I thought Guix would be better for the company because of its superior design (I thought)

I watched this NixOS roadmap video https://youtu.be/8M6yvJC00J4 and thought it might be running into many issues that could be more easily addressed by Guix.   I think one thing that was discussed was that Nix cannot manipulate nested Nix expressions (in order to use Nix as a replacement for Make)

I don't know enough about Guix to see if it directly solves that problem but I thought the idea of using Scheme was precisely to avoid reinventing the wheel.

I think Guix packages are easier to understand (I compared package definitions of Guix and Nix) and Guix has a far better reference manual compared to Nix.   But I have not found a good introduction guide to Guix yet.   I was following https://guix.gnu.org/cookbook/en/html_node/Direct-checkout-hacking.html  but it was far from complete.  To be fair, https://nixos.org/guides/nix-pills/ has a lot of outdated information as well...

I wish I could be more precise but this is all I know and I appreciate your question!!!

Cheers,
Yasu

> On Oct 27, 2020, at 01:15, zimoun <zimon.toutoune@gmail.com> wrote:
> 
> Dear,
> 
>> On Mon, 26 Oct 2020 at 13:42, Taylan Kammer <taylan.kammer@gmail.com> wrote:
>> 
>>> On 26.10.2020 11:41, zimoun wrote:
>> 
>> I think pack -f docker is going to be the "killer feature" in this case.
>> 
>> Well, the following doesn't seem so complicated either actually:
>> 
>>   https://nix.dev/tutorials/building-and-running-docker-images.html
>> 
>> But I really like how 'guix pack' can generate a tarball just as well,
>> which could be deployed and tested anywhere...
>> 
>> I'll need to make a few more comparisons.
> 
> Do not miss the '--save-provenance' option. ;-)
> It saves the profile/manifest which can be used to rebuild one
> manifest.scm file.  You could be interested in [1].  I am running out
> of time, but the profile/manifest->manifest.scm converter could be
> nice to have. :-)
> 
> 1:<https://lists.gnu.org/archive/html/guix-devel/2020-09/msg00221.html>
> 
> 
> All the best,
> simon
> 

[-- Attachment #2: Type: text/html, Size: 4667 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26  7:42 Advantages over Nix? Taylan Kammer
  2020-10-26  9:29 ` Jan Nieuwenhuizen
  2020-10-26 10:41 ` zimoun
@ 2020-10-26 22:32 ` Ricardo Wurmus
  2 siblings, 0 replies; 14+ messages in thread
From: Ricardo Wurmus @ 2020-10-26 22:32 UTC (permalink / raw)
  To: Taylan Kammer; +Cc: guix-devel


Taylan Kammer <taylan.kammer@gmail.com> writes:

> TL;DR: sell Guix (over Nix) to someone who doesn't care about GNU or
> Scheme?

I’ve previously compared Guix and Nix for the crowd at Hacker News:

https://news.ycombinator.com/item?id=23529932
https://news.ycombinator.com/item?id=19809366

It’s not much of a sales pitch, but a comparison to allow people to
distinguish the two projects and to dispell the terribly mistaken notion
of Guix as merely a “GNU fork of Nix”.

-- 
Ricardo


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26 11:36   ` Taylan Kammer
@ 2020-10-26 23:39     ` Ludovic Courtès
  2020-10-27 10:35       ` Pjotr Prins
  0 siblings, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2020-10-26 23:39 UTC (permalink / raw)
  To: Taylan Kammer; +Cc: guix-devel

Hi,

Taylan Kammer <taylan.kammer@gmail.com> skribis:

> This seems to confirm my thought that Guix is actually at a better
> place with things like guix deploy, guix pack, etc. compared to Nix,
> where things are more scattered.  I suppose it's thanks to the
> clean-slate development of Guix... or the developers are just
> geniuses. ;-)

In addition to people being geniuses :-), I think better integration
stems from a common will to have a consistent tool set and from the fact
that we’re using Scheme.

For instance, there’s a first-class notion of “package” in Guix (and
“operating system”, etc.), whereas everything is a “derivation” in Nix.

Thus Guix can provide a clean UI: you can type “hello@2.10” to refer to
version 2.10 of Hello (in Nix one usually has to refer to attribute
sets), there’s a ‘guix search’ command, and so on.

That’s also what allows for search path handling
(~/.guix-profile/etc/profile etc.), for grafts (important if you are to
deliver security updates quickly!), and for “package transformations”:

  https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html

But I’m kinda biased, and I know Nix 2.0 is also a great improvement in
terms of UI!

There are all the other aspects that Ricardo’s HN comment and that the
NixCon talk mention, among which the reduced bootstrap and generally
ensuring packages are entirely built from source are big deal
security-wise and freedom-wise.

HTH,
Ludo’.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-26 23:39     ` Ludovic Courtès
@ 2020-10-27 10:35       ` Pjotr Prins
  2020-10-27 13:14         ` zimoun
  0 siblings, 1 reply; 14+ messages in thread
From: Pjotr Prins @ 2020-10-27 10:35 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Quite a few of us here have used and developed against Nix in the past
and Nix certainly is a great work and the original inspiration of GNU
Guix (and doing things better). When Ludo introduced Guix at FOSDEM in
2014, however, I was convinced to change my ways on the spot - after
using Nix (from the early days).  This article is from 2008

  https://www.linux.com/news/nix-fixes-dependency-hell-all-linux-distributions/

How time flies...

In fact, at the University of Tennessee we are building a new exciting
HPC around GNU Guix right now which will also run containers and will
give researchers a lot of freedom. We'll write it up when the beast is
running.

Pj.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-27 10:35       ` Pjotr Prins
@ 2020-10-27 13:14         ` zimoun
  2020-10-28  5:58           ` Pjotr Prins
  0 siblings, 1 reply; 14+ messages in thread
From: zimoun @ 2020-10-27 13:14 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: Guix Devel

Hey,

On Tue, 27 Oct 2020 at 11:36, Pjotr Prins <pjotr.public12@thebird.nl> wrote:

> Quite a few of us here have used and developed against Nix in the past
> and Nix certainly is a great work and the original inspiration of GNU
> Guix (and doing things better). When Ludo introduced Guix at FOSDEM in
> 2014, however, I was convinced to change my ways on the spot - after
> using Nix (from the early days).  This article is from 2008

About history, couple of days ago I went to [1] from this thread:

https://lists.gnu.org/archive/html/gnu-system-discuss/2012-11/msg00000.html

1: <https://guix.gnu.org/guix-ghm-20120721.pdf>

p.100: Scheme
 - supports embedded DSLs via macro
 - can be used both for composition *and* build scripts

Well, in summary Nix provides the initial "weird paths" and Guix adds
with consistency all the powerful "parenthesis" around. :-)


Let's pick an example:  the sources.json file ingested by Software
Heritage.  Basically, Guix does that when building its website and the
relevant Scheme code is here:

   <https://git.savannah.gnu.org/cgit/guix/guix-artwork.git/tree/website/apps/packages/builder.scm#n96>

Nothing more.  Compare to what Nix does:

    <https://github.com/nix-community/nixpkgs-swh>

so pieces of Nix DSL which generates files that are parsed by Python
and then glued with Shell.


All the best,
simon


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Advantages over Nix?
  2020-10-27 13:14         ` zimoun
@ 2020-10-28  5:58           ` Pjotr Prins
  0 siblings, 0 replies; 14+ messages in thread
From: Pjotr Prins @ 2020-10-28  5:58 UTC (permalink / raw)
  To: zimoun; +Cc: Guix Devel

On Tue, Oct 27, 2020 at 02:14:18PM +0100, zimoun wrote:
> Let's pick an example:  the sources.json file ingested by Software
> Heritage.  Basically, Guix does that when building its website and the
> relevant Scheme code is here:
> 
>    <https://git.savannah.gnu.org/cgit/guix/guix-artwork.git/tree/website/apps/packages/builder.scm#n96>
> 
> Nothing more.  Compare to what Nix does:
> 
>     <https://github.com/nix-community/nixpkgs-swh>
> 
> so pieces of Nix DSL which generates files that are parsed by Python
> and then glued with Shell.

Thanks Zimoun. In a nutshell :). I am convinced that the reason that
Guix is moving fast is not that the community consists of a bunch of
geniuses, but that the code base is terse and many people in this
community understand the code base to a large degree quickly and can
contribute. Of course I don't want to downplay genius - some of it 
there is in a massive project like this. 

I also think that the choice of being a true free software project is
very important. It is a long term force driving the project forward to
a future where we have free hardware and free software as choice for
all things.

We have our first RISCV board up and running, if anyone is
interested...

Pj.



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2020-10-28  5:59 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-26  7:42 Advantages over Nix? Taylan Kammer
2020-10-26  9:29 ` Jan Nieuwenhuizen
2020-10-26 11:36   ` Taylan Kammer
2020-10-26 23:39     ` Ludovic Courtès
2020-10-27 10:35       ` Pjotr Prins
2020-10-27 13:14         ` zimoun
2020-10-28  5:58           ` Pjotr Prins
2020-10-26 10:41 ` zimoun
2020-10-26 11:44   ` Pierre Neidhardt
2020-10-26 12:46     ` Taylan Kammer
2020-10-26 12:42   ` Taylan Kammer
2020-10-26 16:14     ` zimoun
2020-10-26 20:29       ` Yasuaki Kudo
2020-10-26 22:32 ` Ricardo Wurmus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).