[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: website: say what Guix is at the very top

From: myglc2
Subject: Re: website: say what Guix is at the very top
Date: Sun, 28 Jan 2018 23:14:15 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)

Hi Ricardo, 

On 01/28/2018 at 17:24 Ricardo Wurmus writes:

> Hi George,
>> You misunderstand.  I do not propose changing names. I do propose that
>> you present Guix + GuixSD to the outside world in a unified way. I meant
>> "GuixE" as a "handle" to that idea. Sorry if that was misleading.
> I understand the idea, and I recognize that this is a possible means to
> address the overlap between Guix and the distribution.
> Since you can build virtual machine images of GuixSD even if you don’t
> have GuixSD installed yourself, the difference between Guix and GuixSD
> may seem blurry.
> However, *installing* GuixSD and using it as distribution is *very
> different* from using Guix as a tool to build and share reproducible
> environments (be that as a Docker image, as a tarball, as a temporary
> environment, as a virtual machine image, or just by installing packages
> into a profile).
> GuixSD is both a natural extension of the ideas and features of Guix,
> but it is also a variant of the GNU system that you can install on
> your workstation, server, or laptop.

Agreed. But let's face it, distros are a dime a dozen. Distrowatch shows
306 distros. GuixSD is number 175. This is hardly surprising given how
difficult it is to gain user mind-share for "yet another distro".  For
anyone already running a distro with a graphical package manager on a
single-user laptop or workstation, GuixSD is a hard sell. For someone
already running another distro on servers, as you alluded to elsewhere,
Guix is more mature and probably a better pitch. So I am saying: Let's
not kill ourselves pitching GuixSD separately.

Where you say "may seem blurry" I say "is blurry". Why?  AFAICT every
guix command except 'guix reconfigure' runs everywhere.  

You say *very different*. I would say it is subtle. I wouldn't pitch the
difference hard to a prospect.  I would say to them: we don't care which
you buy: You can buy a) Guix and keep using your existing distro and
familiar package manager or b) you can buy GuixSD and use 'system
reconfigure' and gain benefits you may like. In either case, the primary
benefits are the same, users are freed from the sysadmin and the
sysadmin is freed from nonstop user package requests.

>> The Guix software environment manager creates user environments that
>> are completely and independently specified by users. Guix users are
>> never stuck needing software that a Sysadmin can't, won't, or hasn't
>> installed. A Guix user can run multiple, differing environments
>> simultaneously and can replicate any environment on any Guix run-time
>> platform.
> I wouldn’t write it like this, but explicitly mentioning that users can
> specify any number of reproducible environments is a good idea, in my
> opinion.

My goal was to express the essence of the per-user Guix experience in a
few lines. Happy to hear edits/improvements if you have them.

>> Guix provides system-wide environment management when
>> appropriate to the run-time platform.
> This sounds *really* vague, and it shows that is done just to avoid
> speaking of GuixSD as a separate entity :)

But it is a true statement, isn't it?  I didn't say more because adding
GuixSD-specific features here duplicates features already described or
injects features described later in the paragraph. What would you add
>> Creation, modification, and
>> upgrade are atomic and roll-back is instantaneous, so Guix users and
>> sysadmins are never stuck with a broken user environment or system.
> “instantaneous” is not true for GuixSD where a reboot is required.

I don't follow you. I was thinking of ‘guix system roll-back’ and ‘guix
system switch-generation’ here. Are you referring to the occasional need
to reboot GuxiSD to effect a change. If so expects to occasionally
reboot an OS. Compared to restoring a backup, rebooting and choosing a
different system generation is instantaneous IMO.

>> Guix implements a functional specification of package, user, and system
>> configurations using the Scheme language.  Guix complies with the FSF
>> Four Essential Freedoms and Free System Distribution Guidelines and
>> provides easy and immediate access to the exact source being run.
>> By
>> default, Guix uses pre-built package substitutes from the Guix build
>> farm and mirrors but users may build any package, or a complete system,
>> from package developer sources.
> I don’t think this feels at home in an introduction.  It doesn’t seem
> like much of a feature; in my opinion this is an implementation
> detail.

I know but this is here because I wanted to introduce the central Guix
concept of "substitutes" and because I wanted to mention what AFAICS is
a unique feature: the ability to easily and completely reinflate a user
or system environment from only developer source.

>> Guix is available on multiple run-time platforms including bare metal
>> (GuixSD), Virtual Machines (QEMU image), and any GNU/Linux distro (Guix
>> Binary).
> I don’t know about this.  I still feel that GuixSD (be it on bare metal
> or on virtual machines) is a different beast; different enough to
> deserve separate intros, each with more detail than one could achieve
> by glossing over the differences.

OK. I think it helps to imagine that our prospective user has read the
intro paragraph above and decided they want to try Guix. Now what more
do they need to know to chose a download? ISTM we could show this info
in a "download comparison" table. E.g.,

| Run Mode  | Platform support                      | Delivery Format | Install 
by   | x86_64 | i686 | armhf | aarch64 |
| Native    | Bare Metal (Note 2)                   | ISO image       | USB or 
DVD   | x      | x    |       |         |
| VM        | KVM, Xen, VirtualBox, Hyper-V, VMware | qcow2 image     | not 
required | x      | x    |       |         |
| VM        | VirtualBox, Hyper-V, VMware (Note 3)  | qcow2 image     | not 
required | x      | x    |       |         |
| Distro    | any GNU/Linux distro                  | binary tarball  | manual 
setup | x      | x    | x     | x       |
| Source    | (Note 1)                              | source tarball  | GNU 
build    | x      | x    | x     | x       |
| Developer | (Note 1)                              | git repo        | GNU 
build    | x      | x    | x     | x       |

- Note 1: Minimum source build platform: GNU Guile, version 2.0.9+ or 2.2.x+,
  GNU libgcrypt; GnuTLS Guile bindings; Guile-Git, GNU Make
- Note 2: Currently in Beta. This GNU/Linux distro runs on
  any hardware supported by the linux libre kernel (Ref: libreboot HW and all 
HW that runs Debian)
- Note 3: Via 'qemu-img convert qcow2.img' ref:
- Guix and GuixSD installation requires root or su

>> Introducing Guix - the first software environment manager that solves
>> the problems of both sysadmins and users of GNU/Linux:
>> - sysadmin problems:
>>  - Because I have to modify the system to meet user needs and these are
>>    risky, I have to prototype every change on a test system
>>  - because system changes takes time, I can't keep up with user software
>>    requests and users are unhappy
>>  - Users request conflicting packages, so I can't make everyone happy
>> - user problems:
>>  - I need software that sysops won't or hasn't provided
>>  - sysops changes stuff and my environment breaks
>>  - I need software that sysops can't provide because it conflicts with
>>    other user requirements
> I’m not a fan of sales messages and that kind of language
> (“introducing”, “the first foo to do bar”, etc); I also don’t like that
> these are all worded negatively, which is something we should avoid.

OK but keep in mind that we have very little time to capture a
prospective user's attention. You normally do this by saying what is
unique about a product and what problem it solves.  This is my attempt
at points that might convince a sysadmin and/or user to try
Guix/GuixSD. We can make it less salesy. But are the points wrong?  Is
something missing? Are there better points to make?

> I agree that we can speak of Guix in a little wider terms
> (e.g. “software environment manager” instead of just “package
> manager”), but I feel even more strongly that trying to smoothen over
> the differences between Guix and GuixSD would not be a good idea.

I believe you. Can you please translate this feeling into a tangible
problem that a user that downloads without understanding the differences
will encounter?

> I do agree, though, that we could describe GuixSD as a special case of
> other Guix features: it’s a bare-metal deployment of these virtual
> systems that “guix system” can produce.
> I still think that moving the introduction and the screenshots of GuixSD
> to a sub-page would be an improvement, as it reduces confusion and keeps
> the focus on the features of Guix (which also include “guix system”,
> which has GuixSD as a special case).

Agreed. Maybe we can both be happy if we visualize putting GuixSD
screenshots on the GuixSD download page ;-)

As for the home page, it seems like screenshots and/or a video of the
Guix CLI in action would be good.  Screen shots and video of emacs-guix
would be good. A video of dropping into Guile and/or Geiser and doing
something cool would be good.

A diagram conveying the multitude of Guix run-time environments would be

reply via email to

[Prev in Thread] Current Thread [Next in Thread]