GNU Guile site redesign
gnu.org
gnu.org
IMHO the execution could be better. Doesn't render properly on my Nexus 5.
http://web.archive.org/web/20151013161308/http://www.gnu.org...
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.
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.
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
scripts.
That sounds much more general purpose. Maybe you would write the whole
application in guile not just part of it.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.
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.
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.
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. :-)
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.
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.
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.
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.
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.
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.
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.
- 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.
Heh, as soon as we can find someone who can create one...
Anyway, I like the design, and I think the designers did a good job.
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. :)
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?"
- Compilation to native code AOT
- Tooling
- Performance (CL has value types and way better ways to go downlevel, if needed)
• 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.
(Carbonmade seems maybe to have aimed for "childish" rather than "simple", though, turning at least me a bit 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.)
That said... carbonmade is too much for me.
Though I do wish they had used the slogan "Guile goes with everything"...
> (use-modules (srfi srfi-19))
How am I supposed to remember what modules contain what utilities, when they are named like that?
Also, you might learn Scheme better by focusing on the core language first before you get into SRFI libraries.
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.