rust-lang / www.rust-lang.org

The home of the Rust website
https://www.rust-lang.org
Apache License 2.0
366 stars 285 forks source link

Rephrase slogan to include Rust's unique selling point(s) #419

Closed Flobaer closed 5 years ago

Flobaer commented 5 years ago

Rephrase the main slogan

Summary

The current slogan

The programming language that empowers everyone to become a systems programmer.

should be changed in a way that makes it clear what Rust's main characteristics actually are. Something like this:

The programming language that empowers everyone to become a systems programmer. Creating fast, safe and parallelized programs has never been easier.

Motivation

The new simplified slogan does not convey what makes Rust special. Why would I choose Rust over any of the other seemingly dozens of new languages that promise to be the next best thing and make me more productive? If I were new to Rust and trying to evaluate Rust's usefulness, Rust wouldn't really stand out to me with this new slogan.

Rationale

The impact of not changing the slogan to include Rust's key features is that new users interested in Rust might not be able to assess Rust's capabilities correctly. The slogan on the main website will most probably be the first thing anyone interested in Rust will see. If this slogan does not convey concisely what sets Rust apart from other languages, they might brush it off as just another new language not worth going into.

ashleygwilliams commented 5 years ago

When we wrote the slogan one of the most important parts was that it needed to be short. I disagree that "The new simplified slogan does not convey what makes Rust special."- it does! I think Rust is special because of its focus on empowering all types of developers. On the landing page the immediate next section explains the features of Rust, I don't think including Rust's features in the slogan is necessary, as a result.

ashleygwilliams commented 5 years ago

cc @aturon

briankung commented 5 years ago

Ah, beat me to opening a slogan issue. I was writing this:

Summary

Some reddit comments came out against the new slogan. I think there is room for improvement while appealing to the spirit of the "fireflower problem."

Motivation

To help new users understand the benefits of the Rust programming language rather than just the features. Hopefully with wide enough appeal to make sense for programmers with different levels of experience. This will help put the features of Rust into a context that makes sense for people hoping to use the language.

Drawbacks

The old slogan is fairly straightforward and moving to a new slogan could have the effect of losing both the list of features as well as not appealing with benefits.

briankung commented 5 years ago

Would the team be open to slogan suggestions in this issue?

nicoburns commented 5 years ago

@ashleygwilliams I agree that we should be conveying that Rust empowers developers. However I also prefer the old slogan.

I would like to suggest that the issue with new slogan is that it merely asserts that Rust empowers developers, it doesn't explain how that is achieved.

This makes it the moral equivalent of a resume that says leads with "I'm a fantastic developer". You might be, but that's not what people evaluating you want to hear. They want to know specific attributes about you that demonstrate that this is the case. Something more like "I'm a JavaScript developer with 5 years experience developing AngularJS applications". IMO the old slogan was more like this than the new one.

LukasKalbertodt commented 5 years ago

I don't mind the new slogan, but I would also like it to contain some more concrete selling points.

The term "systems programmer" is problematic (as it means something different to different people). This is even mentioned in the official blog post. Furthermore, some people don't really know what "systems programming" is (as they haven't heard of it before) and thus might think Rust is irrelevant to their programming world/career. So I'd say we should drop that term.

Another idea:

The programming language that empowers everyone to write extremely fast and reliable software.

It changes from "you'll be fire-mario" to "you will be able to shoot fire balls" which I think is more descriptive. I didn't use the word "safe" as this is also a pretty vague term in the programming world (memory safe, hacker safe, ...) and the word "parallelized" because it might be too specific (many Rust software doesn't need to be parallized to benefit from Rust). "fast" and "reliable" are fairly clear IMO.

Sure, this slogan doesn't contain as much information about the language as the old one, but this kind of information is just below the slogan, so I don't think it's a huge problem.

Alternative: replace "The programming language that" with just "Rust".


(as an aside: really really great work on the new website. I am super excited right now! You really made my evening a lot better ^_^)

briankung commented 5 years ago

Here are a smattering of slogans from other language home pages:

While the majority of the examples here "sell the fireflower," so to speak, I think Swift is the closest to alluding to what its users can do or become with it: "turn [your] ideas into apps on any platform." I appreciate that they have an emphasis on community, togetherness, and empowerment, as well as speaking to specifically what makes the language unique.

nicoburns commented 5 years ago

For comparison, I've collected some slogans from other programming language websites:

JavaScript, Kotlin, C++

No slogan at all.

Python https://python.org

Python is a programming language that lets you work quickly and integrate systems more effectively.

PHP https://php.net

PHP is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

Swift https://developer.apple.com/swift/

The powerful programming language that is also easy to learn.

Scala https://www.scala-lang.org/

Scala combines object-oriented and functional programming in one concise, high-level language.

Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries

Nim https://nim-lang.org

Efficient and expressive programming.

Nim is a systems and applications programming language. Statically typed and compiled, it provides unparalleled performance in an elegant package.

  • High-performance garbage-collected language
  • Compiles to C, C++ or JavaScript
  • Produces dependency-free binaries
  • Runs on Windows, macOS, Linux, and more

My overall conclusion from this survey is that we could actually make the "slogan" quite a bit longer than it currently is. My personal favourite is the Scala one. It accurately and reasonably concisely summarises what is different about Scala, and the benefits of using it.

aturon commented 5 years ago

@briankung

Would the team be open to slogan suggestions in this issue?

Definitely, though please understand that the current slogan is the result of a substantial amount of discussion and iteration already, so there's no guarantee that we'll end up changing it further :-)

tshepang commented 5 years ago

@aturon where can one find those iterations and discussions?

briankung commented 5 years ago

@aturon got it!

Here's a thought: the focus on "empowerment" might be a red herring. Programmers, at the least, might take empowerment for granted - they want to know what kinds of powers a language affords them, while taking empowerment itself for granted. It might serve to dig deeper into the Foreword of TRPL:

It wasn’t always so clear, but the Rust programming language is fundamentally about empowerment: no matter what kind of code you are writing now, Rust empowers you to reach farther, to program with confidence in a wider variety of domains than you did before.

Reading the foreword, I would focus on confidence and reach as aspirations and speed, efficiency, ergonomics, and addressable domains as the features.

The best formulation of a slogan I can think of right now is "Rust lets you write fast, confident code in any domain."

Fast meaning runtime and memory space, confident meaning safety and concurrency, any domain meaning anywhere from systems programming to web development. The emphasis in this slogan is on the programmer rather than the programming language, and it leaves room for elaboration on the first two points, and a bit of intrigue in the last - any domain, really? Well, not really, but a whole lot of them, yes - and probably yours!

Anyway, I've spilled enough digital ink in this thread. I'm sure the team has agonized over this far more than we have! Cheers! 🥂

Boddlnagg commented 5 years ago

My first thought when I read the new slogan was something like "Oh, it empowers everyone to become a systems programmer, so it's not for me, because I already am a systems programmer ... why is it better than what I currently do?" (of course I know why it's better ...) I think that other "already" systems programmers (coming from C/C++) might feel the same way. I agree, though, that speaking to people who are not yet systems programmers, in the way that the new slogan does, probably reaches a larger audience.

tshepang commented 5 years ago

@briankung no one will guess that "fast" includes "low memory usage", so perhaps just spell it out. I'd modify your slogan...

Rust lets you write fast and efficient code in any domain, with confidence

repnop commented 5 years ago

@aturon IMO maybe releasing the site to the public earlier in the process would have helped with some of these issues then. Obviously that can't be done now, but there's plenty of things like the slogan that probably would have benefited from more public opinion -- we're the ones consuming the site, after all. Also, just because something has had a lot of effort put into it doesn't mean its perfect and couldn't be improved.

tshepang commented 5 years ago

@briankung curiously, which domains does Rust find itself not suitable?

repnop commented 5 years ago

@tshepang I think that slogan sounds pretty good, though if not a bit vague, however that's something easily solved with other parts of the site. (also good talk at Rust Belt Rust btw!)

Keats commented 5 years ago

I really like the one from @LukasKalbertodt

A slogan needs to be straight to the point and if everyone has a different definition of "systems programming", it's not going to help. My own definition and seemingly the one from Wikipedia seem to be the same:

systems programming aims to produce software and software platforms which provide services to other software, are performance constrained, or both (e.g. operating systems, computational science applications, game engines and AAA video games, industrial automation, and software as a service applications)

No idea what SaaS is doing there but in my mind and according to this page systems programming doesn't include anything application related and even less JS through Wasm.

I do mostly Python/JS for work and If I was finding Rust only now, I don't think this slogan would attract me: I'm not really interested in the kind of systems programming mentioned on Wikipedia. At the time I found Rust, I was mostly looking for a fast and typed language.

Having the main value propt as the header is very common in business sites but since they are usually vague due to being short, they typically have a small paragraph describing in a bit more details. See https://sentry.io/welcome/ , https://www.drip.com/ or https://www.dropbox.com/ for some examples.

richardhozak commented 5 years ago

When I read the slogan:

Rust: The programming language that empowers everyone to become a systems programmer.

I immediately thought that the systems is not that descriptive because Rust is so much more. Then I though about this slight change:

Rust: The programming language that empowers everyone to become a fearless programmer.

It just sounds so much more powerful and that's what is Rust all about. Also the term fearless is used a lot across the whole Rust ecosystem (and rightfully so).

briankung commented 5 years ago

@tshepang I was allowing for platforms at, say, tier 3 and beyond, but admittedly those don't necessarily count as business domains. Still! I think the ambiguity and the overall truthiness of the statement works for Rust. And if you don't mind my rewording your own remix, I might put it like:

Rust lets you write fast, efficient, and confident code in any domain.

Alternately, if we follow many of the other programming language's examples (x is a y):

Rust is a programming language that lets you write fast, efficient, and confident code in any domain.

zesterer commented 5 years ago

At the risk of sounding like a gatekeeper, or jumping on the bandwagon:

I'm really disappointed to see that Rust's technical capabilities have been relegated to a tiny subsection that one has to actively scroll down to take a look at.

What Rust has is really special. There are some jaw-droppingly powerful ideas that underpin the language, and by replacing these ideas with a generic "this tool can empower you!" slogan (a trend that virtually every product site under the sun seems to be adopting), we fail to advertise the things that developers really care about.

In an attempt to convince you all further:

The people that come to Rust are rarely those with no programming experience. As the Rust 2018 survey showed, almost all newcomers to the language arrive with at least a moderate level of programming competence. Most of them know what segfaults are. Most of them know what data races are. Most of them know the frustration of performance (or lack thereof). They understand these problems well, and advertising that Rust mitigates them is an immediate head-turner.

In an age when marketing is becoming ever more generic, it feels like a real shame to blend with the crowd. As a systems language, Rust is unique in that its target audience is chock full of intelligent, switched on people that keenly understand the problems they face. If we fail to directly engage with that, I feel we're doing the community and language as a whole a disservice.

EDIT: On an unrelated note, the following is a screenshot of my browser when I load the new frontpage. It looks good, there's no denying that. But it's also failing to properly utilise the available screen space. The current rust-lang.org, however, uses a double column to give me both a description of features, an eye-catching slogan and an example of the syntax (however much I've complained at the example code in the past) all without looking overcrowded or confusing. image

tshepang commented 5 years ago

@briankung calling code confident is strange, something I've not seen before... it's as if code is conscious.

zesterer commented 5 years ago

@tshepang I feel like the words 'reliable' or 'solid' are perhaps a better choice.

briankung commented 5 years ago

@tshepang I'm referencing Avdi Grimm's Confident Code talk and Confident Ruby book:

tshepang commented 5 years ago

@zesterer "reliable" is a nice word, but it probably is a bit much... you can write trash in any language. I like "confidence" more, because the strict compiler gives you that.

tshepang commented 5 years ago

@briankung if you have to give a reference, you gotta choose a more accessible/common phrase.

nicoburns commented 5 years ago

An iteration on the suggestions above:

Rust is a programming language that enables everyone to write performant, reliable code with confidence.

@tshepang I think "reliable" is accurate. Rust gives you a lot of tools to encode the logic in the type system (Result, Option, enums and pattern matching in general, traits, etc). In my experience this has lead my Rust code to be super-reliable. Amazingly so coming from a JavaScript background.

zesterer commented 5 years ago

@nicoburns I completely agree. It's like saying that 'fast' is an inappropriate word to use when describing Rust code simply because it's technically possible to write terrible code that runs like a snail. It ignores the fact that in the normal case, Rust code is more reliable in virtually every metric you care to consider compared to the vast majority of other languages.

tshepang commented 5 years ago

@briankung I never thought of domains as having anything to do with targets. My understanding is examples like these: embedded, web, cli, gui, networking, etc. And even if targets were considered domains, it would still be lack of maturity, no a fundamental limitation.

briankung commented 5 years ago

@briankung if you have to give a reference, you gotta choose a more accessible/common phrase.

Respectfully, I disagree. I think "confident code" is a great turn of phrase!

tshepang commented 5 years ago

@nicoburns fair enough, though I still find it more easy to defend "confidence" than "reliable"

magnet commented 5 years ago

I also have doubts about the slogan. It presents "systems programming" as some kind of holy grail (which it is not to everyone, people just want to get things done!) and somehow Rust gets the credit instead of the developer ;)

I have no proposition, but Rust helps developers get things done, of any kind (starting at the systems level and upwards) without sacrificing design quality or safety. I really liked that one I saw on Discord: Fast, Reliable, Productive. Pick Three.

nicoburns commented 5 years ago

Fast, Reliable, Productive. Pick Three.

I like this. Really gets to the point!

nicoburns commented 5 years ago

@zesterer Agreed on use of screen space on the home page (relevant to this discussion, because if we can fit more on the page then it might change what information we include).

I've put together a quick mockup of what it could look like if everything was moved up a bit:

screenshot 2018-11-29 at 21 28 48
nicoburns commented 5 years ago
screenshot 2018-11-29 at 21 36 11
ashleygwilliams commented 5 years ago

hey folks! i want to mention that this issue seems to be drifting into different ideas... if possible, please try to keep the issues scoped, and if you come up with a new idea (like the spacing, which i super agree with btw!) please open a new issue :)

aturon commented 5 years ago

Y'all might be interested in the lengthy debate about slogans that played out in https://github.com/rust-lang/rust-marketing/pull/20

nicoburns commented 5 years ago

For people interested in effective use of space on the page, see https://github.com/rust-lang/beta.rust-lang.org/issues/412

repax commented 5 years ago

The programming language that empowers everyone to become a systems programmer.

This slogan is overselling it. Rust is known for having quite the learning curve so it is a bit insincere, I think.

Also, becoming a systems programmer isn’t obviously what everyone wants. What kind of goal is that?

I think what people want more is to get things done, solve problems, create awesome software...

huxi commented 5 years ago

When we wrote the slogan one of the most important parts was that it needed to be short. I disagree that "The new simplified slogan does not convey what makes Rust special."- it does! I think Rust is special because of its focus on empowering all types of developers.

I'm a bit concerned about the "systems" in the slogan. It's vague and oddly specific at the same time and does not really convey the "all types of developers" part of your statement.

A seasoned developer may think that the language is only interesting for kernel and driver development while it may scare off people new to programming. "Systems? I just want to write some small programs! Whole systems sound way too complex for me..." That already bugged me in the previous slogan iteration.

Why not simplify the slogan even more and change it to "The programming language that empowers everyone to become a programmer.", perhaps with a nice adjective instead of "systems".

repnop commented 5 years ago

@huxi that's far too broad and kind of useless imo. anyone can become a programmer without ever learning about Rust.

cessen commented 5 years ago

I made a comment on the reddit thread already, but I'll post the relevant bit here as well:

I'm also not sure if I agree with the fire flower approach in this case. Cosmetics companies also take the fire flower approach: you'll be a more beautiful you! Car manufacturers too: you'll be a free, adventurous you! I think there's a deeper discussion to be had here, but for me the gist of it is that the fire flower approach carries a higher risk of being manipulative. In particular, for it to be honest you have to be pretty sure that you actually do turn people into the Fire Mario you're claiming.

Given the number of people who still seem to struggle with Rust, it's not at all clear to me that the new slogan is honest. A lot of people clearly aren't becoming the Fire Marios that the new slogan promises. Of course, we want to be able to promise this. I absolutely agree with the goal of making Rust as approachable as we reasonably can. But goals for the future are not the same as current reality. And I think any official Rust material should be very careful not to confuse the two. Unfortunately, I think the new slogan does.

I want to clarify that I absolutely don't mean that anyone involved in coming up with the new slogan was being dishonest in the intentional sense. I mean, essentially, accidentally dishonest. It's easy to get excited about something and over-sell it because of that excitement.

Up-thread someone posted Swift's slogan, which I think works really well:

Welcome to the Swift community. Together we are working to build a programming language to empower everyone to turn their ideas into apps on any platform.

They speak explicitly to their goals and what they are working to achieve. They're highlighting their direction, their mission, so to speak. I think that comes across much better than if they had written, "Swift is a language that empowers everyone to turn their ideas into apps on any platform." It seems so subtle, but I think the difference is enormous. The way they wrote it also places a lot more emphasis on the community, which I really like. It's not, "We're the Rust people, use our product," it's, "This is a community project, join us!"

wilg commented 5 years ago

I just thought I'd throw some slogan ideas into the mix. I agree the new slogan is a bit too generic. For what it's worth, as someone coming to Rust from much higher-level languages I was excited by the prospect of learning what a "systems language" is and expanding my skillset into high performance. So I think it's good to hint at what you can achieve with the language.

Rust is a thin layer on top of the metal. It lets everyone write the fastest, safest, and cleanest code.

Rust is the systems programming language for everyone. Fast, safe, clean, with zero-cost abstractions that change the way you think about code.

A programming language that lets everyone write clean, friendly code that outperforms everything else.

huxi commented 5 years ago

@rep-nop But Rust is way broader than "just" systems programming. It's also very much about end-user application programming, especially with WASM on the horizon. Rust is so efficient that it can even be used for systems programming, but not exclusively.

I personally love "Fast, Reliable, Productive. Pick Three." but one has to understand that being able to pick all three at the same time is very, very unusual. It's a bit like an inside joke and that's not ideal if you truly want to embrace everyone.

NickeZ commented 5 years ago

I also find the word system a bit too vague. If you tell someone that you are a "systems programmer" you will without a doubt get the question "what do you define as a system?" back. System is a generic and not especially meaningful word.

t-botz commented 5 years ago

I am not a system programmer and this slogan makes me feel this language is not for me. I really dislike it. I feel like this slogan is just really bad as it neither target developer nor manager and can only have a negative impact.

I don't usually mind slogans, i liked the old one but indeed it was targetting developers.

If you want something more oriented towards manager, i would much rather something like "Empower developers to write fast and maintainable software without efforts"

It's probably not great either but I really feel like it can't be worse than the new one

repnop commented 5 years ago

@huxi that's not what I was conveying with my comment. there's nothing Rust specific about "empowering anyone to be a programmer", if anything there are languages that are far better at doing that because Rust has a fairly steep learning curve.

briankung commented 5 years ago

It's remarkable how many of our suggestions have already been covered in https://github.com/rust-lang/rust-marketing/pull/20/files

Another minor thought regarding "everyone" - I agree that it's misleading. I think the reach aspect of Rust is not about being for everyone, but about reaching everywhere. In other words, it's not necessarily for everyone, but it can go anywhere/everywhere should you choose it.

MggMuggins commented 5 years ago

I like "Fast, Reliable, Productive. Pick Three." because that's what Rust means to me.

It also makes zero assumptions about what kind of programming you're doing, implying that Rust is general purpose. A lot of languages are touting "systems programming" these days, and like everyone else has said, I think it's best to stay away from that.

timClicks commented 5 years ago

I really hate to add to the noise, but here is my recommendation for the new slogan:

The programming language that empowers everyone to build stronger software systems.

I think that this strikes a good balance between all of the goals.

isaacg1 commented 5 years ago

I don't think the problem is that Rust's unique features aren't in the slogan. I think the problem is that Rust's unique features are tiny and hard to spot, in 12pt text, in the middle of various paragraphs (The 3 long paragraphs on the green background).

Basically, a user needs to be either looking for that text or reading the entire page in detail to find what makes Rust special.

On the current site, a casual reader of the page will see something of what makes Rust special no matter what. That's what we need to ensure in the new page. The importance isn't that it's in the slogan, necessarily, but that it's immediately presented to any casual reader.