Hacker News new | comments | ask | show | jobs | submit login
GNU Guile site redesign (gnu.org)
228 points by trengrj on Nov 5, 2015 | hide | past | web | favorite | 79 comments

Nicely done. Interesting how a website design will make people take a second and consider that's being presented. I remember going to the old website and immediately dashing out thinking this was something beyond me. The current design is tasteful, and well executed.

>well executed

IMHO the execution could be better. Doesn't render properly on my Nexus 5.

Compared to what was there before, it's much better.

I'm going to disagree with most of the others here and say that I definitely do prefer the look of the old site. The simple, clear paragraphs of text give me a feeling of "take your time, relax and learn; there's plenty of interesting things to read here." In contrast, the new site feels like in-your-face flashy distracting "TRY OUR AMAZING PRODUCT NOW!!" marketing, which just evokes a visceral "go away, leave me alone" reaction not unlike that I experience from seeing ads.

In addition, I had to scroll far more in the new site to read everything than the old one. For being basically decorative, those pictures are huge.

All those pictures and all that whitespace serves a purpose: it breaks up the message into manageable chunks that are easier to digest and more approachable.

The homepage of any project is essentially an ad for the project. It needs to be at least somewhat attention-grabbing: it's a brochure. People tune out when presented with big walls of text.

I'd hardly call the new site 'flashy' though: it tries to tell a story and make you care about the project. For better or worse, the new site does a better job at advertising the language than the old site did: somebody who's not already familiar with 'Guile' is more likely to actually spend time on the new site, whereas confronted with the wall of text that they have to read are likely just to tune out and close the tab.

That's advertising, and, like it or not, it works.

In comparison to the new site the first sentence on the old one throws me off:

     Guile is the GNU Ubiquitous Intelligent Language for Extensions, the
     official extension language for the GNU operating system. 
Oh, so it is a language for writing plugins in. Kinda cool, but Python seems more newbie friendly than scheme for the same purpose. Might have a niche for some more scientific applications...

Compared to the new site:

    Guile is designed to help programmers create flexible applications that can
    be extended by users or other programmers with plug-ins, modules, or
That sounds much more general purpose. Maybe you would write the whole application in guile not just part of it.


Maybe I'm just broken, but lots of paragraphs scares me off. The new site breaks everything down by section, and that makes it much less intimidating for me to skim and even read fully.

Yeah, I know exactly what it looked like: big wall of text with navigation. The sites for Python, Haskell, Ruby, O'Caml &c., all underwent similar changes, and all promote the languages better for that reason.

guix design is 'fresh' too but a lot less inviting :)

You mean http://www.gnu.org/software/guix/? Looks ugly as sin to me...this new Guile site though. It looks more like an Apple product than a GNU project ;) (in a good way)

I said 'fresh', as opposed to vanilla vintage gnu layout (http://www.gnu.org/software/screen/), not beautiful or good :)

Honestly I think that the "vintage" GNU site looks better than that one. Clean typography, sensible colors, it's even flat-design and it's not even trying!

It's honest about what it is. Designers aren't going to be downloading Guix or probably GNU Screen. The older page is much more aligned with the FSF's brand, which is utilitarian and emphasizes freedom above all else. Guix's site looks very corporate, like a dead startup from the late aughts.

It looks more 'corporate' because they paid more attention to the site's information architecture[1]: rather than presenting you with a wall of text like old sites do, you're presented with what it is, why you should care, what it's like, and all in straightforward terms. That's easier to consume than the dense paragraph of material you get in the likes of the GNU Screen page.

If you squint, you'll see things clearly: the page is broken up with whitespace into distinct sections, and there are no gigantic blobs of text. In contrast, the GNU Screen page is basically one big black blob of text between a header and a footer.

[1] https://en.wikipedia.org/wiki/Information_architecture


But at least the information on the Screen page is the god's honest truth...

This site, however, is a load of pure propaganda.

> With Guile you can create applications and games for the desktop, the Web, the command-line, and more.

You can create applications on the web with Lisp? Really?!?

And tell me about all of those wonderful command-line games!

But then there is always the "more". Whatever the hell that is.

Holy shit, the world has just gone completely insane.

>And tell me about all of those wonderful command-line games!

You can pry my MUDs out of my cold, dead hands, thank you very much.

More seriously, it simply says {applications, games} x {desktop, web, CLI}, where the (game, CLI) tuple is left for the reader to filter out. Obviously it primarily means CLI applications. I think you're being unreasonably pedantic.

And yes, server-side programming is part of web programming.

I really see nothing wrong with the new Guile website. In fact I think it's excellent both in information and artwork. :-)

>Obviously it primarily means CLI applications. I think you're being unreasonably pedantic.

My point is that that style of conveying information is more propagandistic than it is truly informative. It is in the style of a typical startup in the valley run by Stanford whiz kids who are trying to impress their classmates as much anything else. Everyone who is already hip to hacker culture knows how to correctly interpret those kinds of statements, but everyone else is just left more confused.

Gnu-ish tools like Guile really have no place in the marketplace of "hipster in a Starbucks with a Macbook plastered with shiny decals" kinds of technologies, and to pretend otherwise is to do a disservice to humanity, IMO.

I just see this style of "informing" as an end of a kind of age of innocence, when seekers of deep knowledge about technology could go to the gnu.org domain, and be absolutely certain that they weren't being sold a bill of goods.

For all those wonderful command-line games and applications on the web with Lisp I suggest reading "The Land of Lisp" ;)

>You can create applications on the web with Lisp? Really?!?

You do realize Hacker News itself is a Lisp application on the web?

>You do realize Hacker News itself is a Lisp application on the web?

...and now we finally arrive at the fundamental quarrel that I have with using the terms "web" and "application", such that, when linked, can lead to a state of confusion about the nature of the technologies involved.

In the generic sense, there is application vs theory, so that everything that has to do with a real computer program is always going to be an "application", and therefore, any arbitrary program that is used as a backend for a website, can indeed be called something of an "application for the web".

But this is not what normal human beings are thinking about when they use the word "application" in conjunction with their own computing devices. They are thinking about whatever is running on their machine that they can sense, and can thus physically interact with.

In this way, the correct dichotomy is application vs service. So, the Lisp backend for HN is just a service for the user facing application (the web browser).

All of this goes hand-in-hand with my larger point about styles of informing that are not quite as informative as they can possibly be.

> This site, however, is a load of pure propaganda.

No, it's advertising, and not dishonest advertising.

> You can create applications on the web with Lisp? Really?!?

Yes! You know, something on the server has to generate the content.

> And tell me about all of those wonderful command-line games!

They point to a game engine written with guile: http://dthompson.us/pages/software/sly.html

> But then there is always the "more". Whatever the hell that is.

Because it's a Turing-complete programming language: that's what the 'more' is. You can do practically anything you can imagine with it.

Oh sure, it's not a good design, but it has no pretenses about what it is. It's what you expect from an open source project, for better or for worse (definitely for worse in this case).

However, if we're going to expect more, it should look more like the new Guile site and less like this. The black, textured background is ugly, the dayglo buttons clash, the yellow text is the shade of dehydrated urine, and the bullet points at the top are a poor attempt at a higher information density full of buzzwords that nobody visiting the site _really_ cares about.

If you want to talk about information architecture, the three bullet points at the top aren't really about why you should care. The first is unnecessary FSF wankery, everyone looking up Guix already knows what they're all about and is tired of hearing about being liberated. The next two don't strongly differentiate the product from any other package manager in previous ways. Okay, so it does x, y, and z interesting things. The switching cost of changing operating systems is very high. Why shouldn't I keep using what I have now? What tangible benefits will I receive from using GuixSD? Why is Guix unique, specifically? WHAT MAKES GUIX DIFFERENT? (answer to all four: it's declarative, though this isn't mentioned anywhere)

None of these are addressed. Nix is not even mentioned, even though Guix is Nix with a Guile wrapper around it. The nixos.org website, on the other hand, is superlative. Why do you want NixOS? It's Declarative, Reliable, and DevOps friendly. It's "The Purely Functional Linux Distribution". Those five words say more about it and why a prospective contributor should be using it (it's mostly functional programmers and declarative programming nerds who are interested in Nix/Guix, though Nix being akin to Chef/Puppet/Ansible on steroids is helping it gain ground among DevOps people) than the entire GNU Guix homepage does.

Sorry but I have to disagree on pretty much every single point. In part you simply make factual errors.

I think the page looks fairly stylish. Could improve, but pretty great already in choice of colors and layout. ("Dehydrated urine" for a simple gold color? Seriously? Stop watching watersports.)

Being 100% free software as in GNU, meaning being entirely free of uninspectable binary blobs, and working hard to make the system easily improvable and amendable by the user community, is a big deal. Deal with it. GNU aims for people for whom these are important criteria.

The features listed in the second point are based in concepts that are nontrivial to grok. There is no short way to explain them on an intro front page, but not mentioning them would be silly since they are what sets Guix apart from standard package managers (which ironically is what you request being listed). Maybe you should look up the meanings of those terms instead of straight out assuming they're marketing buzz. Transactional updates, and unprivileged/user-level package management are pretty big deals. Likewise, providing clean APIs in a high-level programming/scripting language is very much a big deal; see how easily a web front-end could be made for Guix.

Redirecting newcomers to Nix would just add an unnecessary layer of indirection. The name is clearly a homage to Nix, and also otherwise "everybody knows" that Guix is Guile+Nix, so claiming there's malicious intent in leaving out a mention of Nix would be just silly. And Guix is not a Guile wrapper around Nix; it has an entirely different package recipe format and database. You don't use Guix to work with a Nix system; rather the Guix system uses a low-level component taken from Nix. Casual users don't need to know anything about Nix.

Lastly, functional package management brings immense pragmatic benefits (source-binary correspondence, reliability of transactional updates, etc.), i.e. it's not simply a dogmatic application of FP concepts to package management. You'll note that Guix uses Scheme, not Haskell. I think most people interested in functional package management are so for the practical benefits, so I think you have a pretty wrong image of those folks.

All in all, please make sure you have a proper understanding of a topic before making such inflammatory remarks. It doesn't help anyone.

I do have a proper understanding of the topic. One of my servers runs NixOS, and I am a big proponent of declarative programming in general but functional programming in particular. There are of course MASSIVE BENEFITS to declarative package management, I myself use Puppet and Boxen to manage my development environment. I don't think I denied that? I was just saying that in my experience the people who are able to see the practical benefits are functional programmers in large part due to their prior experience with declarative programming. I'm speaking from my experience with the NixOS community that a much greater proportion of its users are functional programmers than probably any other OS.

Maybe the same isn't true for Guix. I don't know. However, I do have to contest got point about free software. Yes, it's extremely important, but it's also true for every GNU project. I know it's free software because it's a GNU project, not because they told me at the top of their website. It's their brand. It's like if Apple put "Bauhaus-esque minimalist design" at the top of every product page. It's their brand. Now I don't expect the FSF to be very aware of their brand identity, but that's not a good thing and if you think it really needs to be said that Guix is a free software project when it's hosted on gnu.org I'm not sure why we're having this conversation.

Perhaps buzzwords was the wrong word. Yes, I understand that these concepts are nontrivial. In fact, I understand it well because I do grok them, and that's part of why I'm able to say that it's very daunting for a newcomer to see all of those words and not understand what they mean. This hews very close to the free software tradition of "if you don't understand this immediately you don't deserve to be here" which is a toxic attitude that needs to be eliminated. At the very least, it looks clumsy and more than anything else it's abundantly clear that the writer of those words has forgotten what it's like to be a newbie.

I don't think they should redirect to Nix, far from it. It's a different project. That's simply irrational. I meant to imply that I was surprised that their site sucked so bad when their project is downstream from a project with one of the best homepages I've ever seen for a free software venture. And no, the casual users don't need to know about Nix, but if it's important that the name be an homage to it should it not at least be mentioned?

Yes, I'm completely aware of the difference between Scheme and Haskell, and I know what Guile is or I wouldn't have clicked on this thread in the first place. (a decision I'm rapidly beginning to regret)

The bottom line is that there are simpler and more lucid alternative ways of saying what they want to say there and it's not for want of examples that they don't. Good artists copy, great artists steal, as the saying goes. They should be great artists and alter their design to reflect principles that are obvious in the design of nixos.org. Or alternatively, since their project is a derivative, they could ask the Nix maintainers if they could use some of the look and feel.

And it is absolutely a Guile front end to the Nix system, this is completely uncontroversial and expressed clearly in their readme:

"GNU Guix is Nix[0] from Guile[1]!

Concretely, it allows Nix package management to be done entirely in Scheme. The goal is to investigate whether Scheme, and in particular the ability to define EDSLs, would allow it to fulfill the role of the Nix language."

"* How It Works

Guix does the high-level preparation of a /derivation/. A derivation is the promise of a build; it is stored as a text file under =/nix/store/xxx.drv=. The (guix derivations) module provides the `derivation' primitive, as well as higher-level wrappers such as `build-expression->derivation'.

Guix does remote procedure calls (RPCs) to the Nix daemon (the =nix-worker --daemon= command), which in turn performs builds and accesses to the Nix store on its behalf. The RPCs are implemented in the (guix store) module."

It builds from the Nix package archive, it works by communicating with the Nix daemon, it wouldn't exist without Nix.

I'm not sure how else I can express this, you spent your entire post trying to prove that I don't know what I'm talking about by repeating concepts I am intimately familiar with.

There are absolutely short ways to explain the nontrivial concepts, and NixOS does it well.

> However, if we're going to expect more, it should look more like the new Guile site and less like this.

I was referring to both sites. Both the Guix and Guile sites are better than your typical impenetrable GNU project website. Guix, unlike Guile, isn't a mature project, so it's content isn't going to be all that great.

Keep in mind that the site is for _GuixSD_, not Guix itself. That's the reason for that blurb in the first bullet point: they're differentiating it from other distros not package managers.

You're wrong about the second bulletpoint. That state quite clearly what the benefits are: "transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and more". That's all because it's functional, but simply saying that Guix a functional package manager doesn't really communicate what's going on. Stating that Guix is declarative doesn't tell you anything: RPM .spec files are mostly declarative, but simply being declarative doesn't give you the benefits of a functional package manager, like Nix and Guix. Nix's (and Guix's) declarative nature is a side-effect of their functional nature, nothing more.

They don't care about Nix, not in the slightest. Nix is a means to an end, nothing more.

Could the Guix site do with improvement? Certainly. Do I think the Guile site is better? Definitely! But compared to the average GNU project site, the Guix site isn't all that bad.

answer to what makes guix different (for me): I can install it as a user on top of my existing distro. Like PyPI done right; for the whole system.

Both have problems. Base vintage layout is too dull and doesn't correspond to the kind of project presented. Having guix at the same level as `less` is wrong IMO. I'd allow an exception for a whole OS/distribution. It's a major thing, and a recent one at that. So a bit of 'appeal' couldn't hurt, now it's not proper as done now, but guix is still growing, the fact that it has a page is already amazing in itself :)

What about the GNU Octave site? Ugly as sin or uglier?


No, it looks much better. The drop-shadows are a bit cringey but again, the colors make sense and for what it's worth it's an honest design. This is clearly the homepage of a free software project.

A few suggestions:

- The front page needs some short code samples and their output. Also, maybe showcase some libraries or projects the Octave community has created.

- Make 'Documentation' a top-level menu entry.

- Provide some 'Getting Started' documentation. I know there's a section in the manual for that, but I don't dive into the manual when I'm just trying to get a feel for what something is.

- The download page should have distro-specific installation instructions (e.g., apt-get install octave, pacman -S octave). For Windows, link directly to the exe. For OS X, link directly to the dmg.

Other than that I think it's fine. The design on the navigation menu looks a little dated, but it's not a big deal.

Isn't it really rather pointless to show distro-specific installation instructions. Someone who can program in scheme or octave really doesn't need help on using apt-get. There's many options if you want to cover a good range of distributions. Someone that clueless will probably not realise the commands need running as root, either. It only makes sense for Windows and OS X.

I disagree. As someone who knows how to use my system's package manager, it saves me from having to figure out the name of the package and whether or not I need to enable a 3rd party repository. Also, I know at least two people who use Octave that aren't comfortable with their system's package manager. Both of them use Ubuntu for their research because it's easier to get compilers (Fortran and C++) working properly, but they use Windows for general (non-research) computing. One of them is a biophysics graduate student and the other is a chemistry undergraduate.

Someone who is learning scheme or octave may not know these things. This may be their first time installing something like this.

> For OS X, link directly to the dmg.

Heh, as soon as we can find someone who can create one...

How about "brew install octave" .

Slow, error-prone, obscure. Remember that Octave is used by people who regularly call themselves "not a programmer".

Probably most Octave users (including me) prefer to use the command line client, but I don't think the new GUI is so terrible to not show it in the front page.

Minor UX issue: Your side nav `buttons` should be able to be clicked from the sides. Not just the text. Similar to the `continue` button in the donate section.


In terms of site design, I prefer Guile > Octave > Guix.

I have nothing against it per se, but it seems that there is a trend in which "serious stuff" is graphically designed as if it were meant to be used by only children. There are many examples. One good example is carbonmade [1] which is a website to showcase professional portfolios (quite "serious stuff" if you ask me). I genuinely wonder where that trend is coming from. Is it because the current generation of engineers grew up watching cartoons? (Just guessing) Or is it because it is a simple way to make difficult stuff appear more friendly?

Anyway, I like the design, and I think the designers did a good job.

[1] https://carbonmade.com/

It's a worthwhile question. I'm a huuuuuuuge supporter of the current design though! This conversation came up on the guile-devel list, and I gave my response there too: https://lists.gnu.org/archive/html/guile-devel/2015-09/msg00...

Basically, I think that Lisp and Scheme have a reputation for being unapproachable. This reputation partly comes from how we structure our communities, who we reach out to, and etc. But it also depends on how we message ourselves.

There's a very conscious decision in the new design to make things look playful and inviting, to encourage experimentation. I think that's super important. It seems like it's having some effect on encouraging people to become engaged, and it certainly doesn't seem to be doing any harm to those who are already into hacking parentheses. :)

> Basically, I think that Lisp and Scheme have a reputation for being unapproachable.

I don't think Lisp itself has that problem any more. Everyone knows that Clojure exists and is an approachable Lisp.

The question has now become, "why should I pay attention to any Lisp that's not Clojure?"

From the point of view of commercial ones:

- Compilation to native code AOT

- Tooling

- Performance (CL has value types and way better ways to go downlevel, if needed)

Agreed. It's very inviting.

Honestly, the Guile site reminds me variously of:

• the illustrations on O'Reilly book covers

• the doodles in Learn You A Haskell and Learn You Some Erlang

• _why's Poignant Guide to Ruby

• Le Petit Prince

None of which are "childish" per se, in content or in form—but which all-save-one happen to try to include children in their target audience.

Curious, which one? I think only the last two are intentionally for children.

Add the little Schemer

I don't think it is simple to do successfully, but it is certainly a way to make difficult stuff more approachable. If you want to convey difficult stuff, you should make it approachable. Feynman, for example, was a master of using simple words to explain complex matters. We should try to do the same with graphic design.

(Carbonmade seems maybe to have aimed for "childish" rather than "simple", though, turning at least me a bit off)

I think it's cute - unlike carbonmade which really turns me off.

My only quibble is the cartoon next to "Guile is an extension language platform" - the main character is facing out off the edge of the page. I'd flip it to make the cartoon draw your eye toward the text.

(The same could be said for the cartoon at the top of the page, but I like that one the way it is.)

I had noticed this too, when docker.com seemed to slowly become more and more cartoony and juvenile, for lack of better words. I don't quite hate it either, it certainly makes the technology seem more approachable, but I think they may have taken it a bit _too_ far.

Stallman considers hacking to be "playful cleverness". To him and a lot of the old-time hackers, programming is fun and even "immature" or at least not super serious. Look at The Little Schemer, for example. Even Knuth allowed some jokes in his Concrete Mathematics textbook!

That said... carbonmade is too much for me.

Lisp and Scheme both have a long history of accessible artwork to children. Just look at The Little Lisper.

I love the design. The little kid in the Where the Wild Things Are style gnu costume gives me a warm, Katamari Damacy type feeling. And that's what Guile needs, because it's so comfortable to use but there's no marketing suggesting that it would be better to use than, say, Perl (ugh) or Python (less ugh, but scoping rules=fail).

Though I do wish they had used the slogan "Guile goes with everything"...

Here are the source code for the new website, and it is written in guile itself http://git.savannah.gnu.org/cgit/guile/guile-web.git

I love simple, hand drawn images on websites. Something about it makes the website/service appear much more user friendly. www.dropbox.com/ and www.basecamp.com/ seem to agree..

Whenever I try to get into Scheme, this is one of the things that really blocks me:

> (use-modules (srfi srfi-19))

How am I supposed to remember what modules contain what utilities, when they are named like that?

The list of supported SRFI is here: https://www.gnu.org/software/guile/manual/html_node/SRFI-Sup... and the name SRFI means Scheme Request For Implementation, the process of managing them is explained there: http://srfi.schemers.org/srfi-process.html

If you're trying to get into a new language, aren't you looking in the documentation all the time anyway? If not, try keeping an emacs buffer open to http://www.emacswiki.org/emacs?action=browse;oldid=SchemeCom...

Also, you might learn Scheme better by focusing on the core language first before you get into SRFI libraries.

I like how the download page refuses to mention not only proprietary OSes, but also Arch (naming Parabola instead), and only grudgingly names Debian.

A lot of Guix devs use Debian as our host distro. Debian's main website doesn't mention Arch or Guix either.

Another lot of Guix devs use GuixSD, I think. ;-)

That's by design. It only mentions fully free OSes.

I agree the site looks nice. One thing though, the cosplay guy in the illustrations on the page had me immediately thinking of Beastie which I found surprising seeing as GNU has a bit of a different ideology from BSD. GNU has long been using a gnu as their mascot so I guess the suit might be supposed to resemble a gnu calf.

Edit: Specifically I think it is the cover artwork of Kong's 2007 book Designing BSD Rootkits published by No Starch Press [1] combined with the FreeBSD logo [2] that caused me to think of Beastie when I visited the new Guile site.

[1]: https://www.nostarch.com/rootkits.htm

[2]: http://www.FreeBSD.org/logo.html

The first little programmer looks more like the BSD mascot (Beastie) [0] than (presumably their intention) a gnu. Otherwise, a nice site indeed.

[0] https://en.wikipedia.org/wiki/BSD_Daemon

I wonder if I could convince the one apparently responsible, Luis Felipe López Acevedo, to make us a better website for GNU Octave too.

It wouldn't have the cool art, but it wouldn't be too difficult to produce a first approximation of a similar website using existing frameworks like Bootstrap.

is guile a general purpose programming language? or is it mainly an extension language? like lua for example

Yes. It can be embedded, however, since it is a Scheme, it is also general purpose.

I think the consensus is that the site looks great... I have to agree :)

Nice redesign, just it would be fair to note number of applications who are locked into Guile and they are desperately trying to get rid of it ;) (I know for sure GNUCash is in this category).

Why would they be desperately trying to get rid of it? It's immensely good.

Could you elaborate on that? I can't find anything about the GNUCash developers trying to get rid of guile. What made you believe so and why would they get rid of it? What other applications besides GNUCash did you have in mind?

There are also applications that are not like that. gdb and GNU Make added Guile support recently.

It seems like the link to "for the web" should go somewhere explaining what web support is built in. (Is it just server-side or is there also JavaScript compilation?)

Great redesign. Too bad they didn't bother with higher resolution images as it does look quite blurry on a retina screen. At least the logo could be an SVG.

Very nicely done. Most of the Gnu pages look like relics from 1995. Hopefully whoever did that page has plans to reskin the rest of the Gnu pages.

As cute as illustrations in "Schemer" book series. Love it.

this is a fantastic design.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact