A new look for rust-lang.org
blog.rust-lang.org
blog.rust-lang.org
The old site said to me "Here's a programming language made by programmers for programmers.".
The new site says to me "Here's a programming language which has a marketing team.".
The "Featuring" bullet list was an excellent way of calling out what makes Rust distinctive, and I felt I could trust what it said to be basically true.
But claims like "empowers everyone to become a systems programmer" or "Rust has great documentation", coming from the language's own designers, convey little information: they might be an over-optimistic view.
(Or, in the language of the blog post: I trust them to tell me what a fireflower is. I'd rather judge for myself whether I believe that it will turn me into Fire Mario.)
The new version is corporate-speak that won't appeal to.. anyone? Its underlying message is "we're trying to get you to like us and we studied how to do this".
But, like, what's the point of a programming language's website anyway? Most people who visit the site will probably be at least vaguely aware of it. You use it if recommendations online, code samples, etc are compelling, and if the early adoption story (examples and motivations) are compelling. All I ever want is a list of examples up front and center. The more words I have to get through that aren't literal actual examples that show both what the language looks like and what differentiates it... the more exhausting the whole experience.
I can rarely find it though. I wasn't quite able to grasp why, and I kind of accepted this as how it is. But after seeing the two revisions side by side, I finally get it! The important, unique information found in the old version. The majority of project web sites are closer to the new version, which hides the complexity behind colorful "screens" and headlines which are short, friendly, distracting, and very, very bland, delivering the same "simplicity, performance, productivity" message regardless of the project. Can you guess what Docker does (or does especially well) just based on the website? [0]
I've learned to cut the crap and go straight to the "about" page to understand the distinct advantages in a more condensed form, but that seems to be missing from the redesign.
Obviously the website is no longer targeted at coders: the Rust Team seems to target managers to push adoption. To me, it looks like a corporation that has to report user growth every quarter, so they start employing harmful UX to desperately try to push the numbers up.
Even though Rust's marketing pivot will likely irritate many, it's likely better for it long term.
Perhaps the old page could be moved somewhere close to the language docs instead of being removed, but I'm confident whoever is in charge has given this much more thought than I could ever give (as well as most of the commenters here).
So even though this is probably the right move for Rust, it would behoove them to keep a section of their site/blog/newslettter/slack channel/etc for the nerds to get together working on what they love.
But, in my (useless) opinion, the green is... "bold", and that part isn't very modern or approachable
Wait, let's throw all that away and develop a vomit-inducing monstrosity, complete with: in-your-face extra-bold title headers, jarring colours and colour changes, overall very large design suitable for tablets and not desktops (which is after all where most of your target audience should be accessing from)... What a complete cock-up. The web design equivalent of painting flames on your car: an immature attempt to look "cool" that turns the thing into an horrendous mess.
I can only sincerely ask why why why.
Classic case of "my nephew can do it with paint shop pro".
Ferociously bad doesn't even begin to cover it.
This is a result of Rust attempting to be "social ecosystem" instead of a "useful programming language". Sigh.
If you really wanted to improve the current website, make the "Featuring" bullets actually change the code in the runbox. Now THAT would be impressive so that people can actually see what all the fuss actually looks like.
As for the new site, I'll leave the cosmetics to people far more qualified to judge.
However, as someone who works in embedded and has been tracking Rust, the idea of putting "Embedded" on the front page and trying to advertise Rust as a useful embedded language isn't just laughable--it's dangerous. Rust is so far from useful in embedded that people who try to use it will NEVER come back and they will report to their managers that it shouldn't even be looked at for another 5-10 years.
Until I can sit down with a sparkly new Windows 10 VM, plug my board in via USB, fire of a Windows installer, double-click on a selection dialog for my current evaluation board, watch it crunch and then pop up a Debug windows with an LED blinking, we're not even at the starting line. (Most environments for embedded now are pretty good about this--getting your blinking LED really is the "Hello, World!" equivalent).
It seems to me that this comment is making a valid point, if only in a strong tone.
"the idea of putting "Embedded" on the front page and trying to advertise Rust as a useful embedded language isn't just laughable--it's dangerous. Rust is so far from useful in embedded that people who try to use it will NEVER come back"
Embedded is still at its early development stages, just like WASM and just like asynchronous network programming. Still, all those are on the front page.
WASM a year ago and wasm todays is a tremendous difference. A year ago, in my opinion, WASM was something for experimentation. Now, a lot of the ecosystem "just works" and is developing really quickly. You can write a working JS library and upload it to NPM without even touching a line of JavaScript code.
Async (network) programming in Rust with async/await is promising but still in flux, so the ecosystem hasn't settled yet. Still, a lot of systems already use it in production.
Embedded in Rust a year ago was mostly a list of blogposts, an early draft of HAL traits and some random register binding crates. You had to use nightly, and your code would frequently break. But in just a few weeks, you'll be able to use Embedded on stable, there is an active ecosystem developing around svd2rust, groups like stm-rs and lpc-rs are forming and a lot of device agnostic drivers have already been written. Combine that with a very promising preview of a new version of the RTFM framework. It's not production ready yet, but I'd estimate it will be within 2 years. See https://github.com/rust-embedded/awesome-embedded-rust for a summary of the ecosystem.
The problem with the post above is not that it's written in a strong tone. It's that it's uninformed, generalizing and unfair.
That is more an indictment of WASM and asynchronous network programming than a vote of confidence for embedded...
And I avoided commenting about things other than embedded explicitly because I don't have any background to judge those.
> It's that it's uninformed, generalizing and unfair.
You claim this statement is the problem:
"the idea of putting "Embedded" on the front page and trying to advertise Rust as a useful embedded language isn't just laughable--it's dangerous. Rust is so far from useful in embedded that people who try to use it will NEVER come back"
and then follow it with: "But in just a few weeks, you'll be able to use Embedded on stable" "It's not production ready yet, but I'd estimate it will be within 2 years."
Ummmmmm ... I think you just made my case for me.
I pull a bunch of the embedded Rust stuff about every 4-6 months and build a "blinky". I have an intern try this about every 9 months--I have yet to have an intern make any meaningful progress without me holding their hand every step of the way. Those same interns pull down Keil and fire off a blinky in about 4-6 hours without my help. Boards with their own environments like Silicon Labs or NXP are generally faster--about 2-3 hours to blinky--but are more annoying when you have to do something outside the "flow".
I'd argue that experience makes me quite specific and informed and my comments quite fair. Thanks.
If you point an embedded engineer at the Rust embedded ecosystem to evaluate, he will hand you your head on a platter. Embedded is NOT ready and putting it on the front page is going to get you a reputation for half-assed-ness.
The problem is that Rust is moving "slow and steady" in an era where everyone wants "growth hacking". Or, if I'm feeling particularly nasty and snarky, Rust "thought leaders" outside Mozilla are annoyed that Rust isn't providing the revenue opportunities for speaking and consulting that languages like Go and Swift do (like Rails used to).
Rust honestly doesn't have a marketing problem. Most of the people I know who might benefit from Rust are tracking it--even up to VP of Engineering levels (oddly, Rust appears to be better regarded than you would expect)--however these people are doing hard-headed cost analyses and don't find Rust to be coming out on the winning side most of the time. The issue is simply that most of the current languages are entrenched for various reasons and moving them aside requires that you be demonstrably better--and that implies i's dotted and t's crossed.
See Theo de Raadt about Rust in OpenBSD: https://marc.info/?l=openbsd-misc&m=151233345723889&w=2
What Rust really has is a completeness problem. The lack of completeness in Rust reminds me of Lisp quite a lot--lots of libraries at 70%, very little at 99%+. Every time I try to use Rust for a project, some library isn't up to scratch or requires some odd combination that demands nightly, has some weird showstopper bug that will be fixed "Real Soon Now(tm)" that has been extant for 24 months, etc. Fortunately, Mozilla needs Rust to be up to scratch for Firefox, so at least certain core things get driven to completeness.
I can contrast Rust at 8 years old (and I'm being generous) to Python at 8 years old (sigh, I'm now a greybeard ... "Back in my day, sonny..." <shakes cane>) Rust isn't convincing me to throw any of my languages away in spite of the fact that I really hate C. Python at 8 years old was good enough for me to throw Perl 5 away at roughly the zenith of Perl 5's popularity--now that's completeness.
I like Rust, but people need to get comfortable with the fact that Rust has a long, slow, unsexy road ahead of it.
That's what the whole post is about: why. There's plenty of room for critical opinions, but at least address the started rationale.
They had a problem that wasn't yours: they're trying to reach an audience they don't have yet and they think this might. They what to address the why you might want Rust, not the what it is, or how it does it exactly.
Disagree with that.
It's a sign of the strength of the Rust community that they feel they no longer need to persuade developers. It implies that many developers have already heard about and are interested in Rust, but need higher-ups to approve using it.
management.rust-lang.org and rust-lang.org
I love the use of color, it's very dynamic and "fun", and the typography is nice in my opinion as well. It's more engaging to me, at least.
Any C programmer can see it's factually false, but it could definitely suggest to a C-level exec that they'll have an easier time hiring in the future if they use this language.
It was a challenging exercise and so can relate to Rust's community efforts to the redesign. I wanted to offer some perspectives of what Rust's challenges must be.
1. It is really hard to capture the value proposition for a programming language. While working through Ballerina, there is a hard balance between a) describing the language design, b) explaining why language elements are valuable, c) describe the key types of programming workloads that most benefit from your language philosophy, d) direct those interested to learn more to the right information, efficiently.
2. As such, whomever is leading the Rust site evolution over the years shows a real touch and depth for messaging. It takes a lot of insight and careful observation to your community over an extended period of time to tease out which elements are fundamentally what is driving your audience. Having said this, I have a tendency to feel that the messaging in the latest version might be creating a messaging abstraction trying to appeal to a wider developer base vs. the messaging in the current site which is more strongly appealing to existing system developers. Is this a conscious choice of the Rust team?
3. The rust team has figured out, through years of promotion, that the first (and last) question language teams get is always about "who's using the language? how big is the community?". The hardest part about birthing a language is the chicken and egg problem - someone needs to be the first big production app. Dogfooding is really the only way. Rust takes this head on.
I am not a big design person, so don't have an opinion about whether the minimalistic design is better than the new flowing design. A lot of the design influences for ballerina.io came from Go and Rust lang's web site - we are fans! So, I guess you could say that we prefer the minimalism concept.
I wanted to chime in and say I'm sorry so much of the crticism on HN failed to stay on the right side of constructive. You and your team deserve more respect than that.
What's triggering people, likey fans rust fans sadly enough, is seeing their identity and fandom slipping away from focus. If this page had been presented as a why-rust.org splash page instead of a replacement for a treasured resource I'm sure those same vitrolic people would have been ambivalent at worst.
I like the new page. I'd hate to lose the old one, even if it moves to a rust-doc.org domain or something. And maybe a link to it from the splash page!
That's for all your hard work.
There's no way we can keep up the maintenance of two entire copies of the site; we can barely do the work for one.
What I really think Rust needs to grab a wide audience is an out of the box just works IDE. Also too many libraries require nightly, which is a nightmare for a business that must have stable code for deployment.
Edit: They previous had their value proposition as their slogan. It needed work for directing, i.e. don't talk about what Rust does, talk about what Rust does for you. They took it out and replaced it with a mostly meaningless catchphrase. That doesn't actually address the problem with their old slogan.
The most damning thing about the redesign is where did the link to the documentation go? All the most important stuff for people actually using the language got buried.
The buttons in the "get involved" section should better be labeled "read the book", "watch videos" and "read contribution guide".
The z-index of the "Click here to try out the new beta site!" banner on rust-lang.org is wrong when scrolling down.
I don't think those new playful colors will fit the whole ecosystem.
In particular, the "fuschia" background color makes for poor readability (at least for me).
The new one overloads you with bright, ever changing colors and useless marketing, while hiding important stuff like language documentation into a tiny link at the very bottom, next to the site terms and conditions.
It is dazzle camouflage [0] for information.
When looking at the home page, I don't know what "Get started" is going to take me to, but experience with other sites has given me a bad taste with "Get started" buttons. (The content it leads to here is good, though much of it would have been better put on the front page.)
Personally, I think trying to sell the language on the homepage is the wrong goal. I like language examples on the homepage to make a snap judgement about a language. If I can't see an example, I'm going to assume that there is a reason you don't want me to see it.
If I'm unfamiliar with the language, the things I want are:
* A code example
* A listing of properties of the language (e.g. statically typed, compiled, no gc, memory managed at compile time, etc)
* A command to install it
* A link to a tutorial where I can quickly try out the basics
* A link to the documentation so I can get a sense of its quality
* A link to the github page
It now just looks like every other generic looking product page out there.
I think if I had come to this new site, and not the old site, I might not have bothered to even try Rust out. The new look is just so 'meh'.
We love open source, but it’s one of many options to weigh. They’re also a production user of Rust, which is a pro. It’s not that there are no cons, of course... there’s just really no perfect option in this space.
Rust is a well thought language and while I don't agree with the redesign, I like that you bring the thoughtfulness to the non-language component as well.
I enjoy your blog posts.
Ps: Your parent comment was opposed to discord not discourse.
Maybe Gitter instead of Discord? After GitLab acquired Gitter, they open-sourced it.
Thanks.
(and my sibling is right, they suggested that those who don't like IRC could use Discourse instead.)
Surprising indeed. Why not to Matrix?
Additionally the website seems to take longer to load.
New one looks like some shady marketing crap put together with off-the-shelf components like bootstrap libs. But it does 'empowers everyone'. May be they can add 'No programer left behind' and we all be happy.
The one main objection is the new slogan.
> Rust: The programming language that empowers everyone to become a systems programmer.
They claim it better conveys "what you can do with Rust", but in my opinion being a systems programmer is not more descriptive than the previous statement and it can be read as Rust not being a good choice for anything else than traditional systems programming, which is obviously not true.
Additionally, and this is subjective, I perceive an elitist tone, as in somehow all other programmers should aim to become system programmers, a more elevated type of programmer. I get this is not the intention and I repeat it's subjective, but still.
I'm not a fan of the new website, but it's possible that the intent was to be "with Rust, you don't have to".
I get that you want to say what works well with Rust, but frankly few of these things are unique to Rust. With minimal changes I could turn this page into one advertising C++ or D.
It's ok to add the new content but the code example and list of unique features shouldn't have been removed.
The new slogan does not do that for me. But I might not be their main target - I like programming languages for the code itself and not the applications/domains where I can use it.
The website didn't need a redesign either imo, but it is better than the changed slogan.
Is there a way to have good keyboard support & have it look good?
Don't make it so hard for people to find the compiler and documentation. You are not going to attract users this way.
The getting started stuff is good, though.
Just a reminder that if you've got some time to type out a comment in this thread voicing your dissatisfaction you could type that comment out into a Github issue[0] and become a certified open source contributor(tm)!
One of the best things about rust is it's community and it's willingness to change and find better ways to do things.
[0]: https://github.com/rust-lang/beta.rust-lang.org/issues/new/c...
It explains both what it is and how it can be used, with a simple (but not oversimplified) presentation. It has a code sample too.
It's better to keep the the code sample on the Rust site as well.
I loved the playground editor embedded in the old front page. Any chance it can be added to this one as well?
It's better to start over. With a proper UX design, a proper visual design and a good quality frontend developer. Or at least, as close as you can get.
My first few thoughts on the design:
The design language doesn't seem to convey anything. Whoever chose that color palette? What are the core principles it's supposed to show you?
Elements are severely misaligned all over the place. There is no coherency, composition or vertical rhythm to be found. It has a hodgepodge of font sizes and weights without clear typographic hierarchy.
Links are actually missing a hover state. Buttons have a hover state, just don't expect it to be noticeable. Just like the font size on the buttons - those are 12px. We don't have 1280x1024 screens, unless I've somehow traveled back in time to 1999. 16px minimum, please.
There is too little breathing room on mobile. It's not actually responsive, it just collapses on a single breakpoint. That breakpoint is also in the wrong place (960px), making it too big on tablet portrait (750px buttons, really?) and too small on desktop (960px max on HD+ screens, even 2.5K screens - really?).
It looks like it's made with an off the shelf layout framework without any sort of customization. There's a horrible google calendar embed - why not a simple, integrated solution? There are upscaled(!) PNG logos on there (Chucklefish, Yelp) - why not use a vector file, like decent folk?
Those design patterns are barebones, but work reasonable well on the homepage. However, the moment you click through they seem to be (ab)used for anything and everything. Where are the other, less generalized patterns? And why are the patterns not actually designed for mobile as well? Just dumping all the buttons below each other and making them 100% wide does not make for a good user experience. For that matter, why are there not more effective patterns used? Code example could really use an, oh I don't know, inline code example perhaps? Fortunately, almost all links go to external (sub)sites -without warning- so you won't have to look at this for too long. Just a shame everything looks different from each other, even subsites.
Where are the loving touches? It doesn't have to be a christmas tree, but a little transitions and effects go a long way.
As for the code:
A display font is fine, but preloading six (6!) font weights of the body font, just on the homepage? And not even .woff2 or .woff, but huge .ttf files at that! That's about 3MB of fonts. Nice when you're on 3G; you can see the webpage building up.
It seems to use utility classes. The responsibility for style composition should be in your stylesheets, never in the HTML. The classes look like some clever backend developer cooked them up: "v-top pl4 pl0-l pt0 pt3-l measure-wide-l mw4 mw5-ns w-100 mw-none ph3 mw8-m mw9-l center f3". There, everybody intelligent will immediately know what it does! If you rely on good will for maintenance, this will limit the amount of developers willing to dig in.
Also, there are 4 different CSS files, separated for no apparent reason. Three of which aren't even minified.
SVG illustrations should be placed inline.
As someone with an enmity for big javascript libraries used in the wrong places, the fact that there's no JS should be wonderful. Except that I'm guessing that's part of the reason those design patterns are so barebones.
There's lots more, but let's pick the low hanging fruits first.
PS: I prefer this version: https://www.rust-lang.org/en-US/ ;-) It might be stamp-sized visually, but it does some things much better.
Please file bugs! https://github.com/rust-lang/beta.rust-lang.org/issues/new/c...
Some of this is stuff we know, and are tweaking. As the blog post about this says, this is a beta, and we have a lot more work to do. For example, the calendar thing: it's temporary. It's not trivial to style. There's been zero optimization work, which is a lot of what your comment is about. We didn't want to invest in that until we got the big picture stuff down.
https://www.webpagetest.org/result/181130_4K_96804be61480d15...
https://www.webpagetest.org/result/181130_FK_8e4d67b49b8d2ea...
Much better than the previous version. I had a Wow effect yesterday on mobile and now seeing it again on desktop, it's till wow! Strange that there are so many negative arguments here.
Also really interesting to learn about the fireflower problem - there's some truth in it! Applicable to so many things in live...
it looks fresh, but it's a lot of colours all at once sorry.
Compare it to https://www.python.org/ for example which is perfectly functional but squint and you could be on any page on the internet.
I'd love to use Rust - but my business requires support for, (in addition to Linux and Windows), Solaris, AIX, HP-UX, and OS400 for me to serve my customer base.
Rust can't empower me there, it simply isn't available.