rust-lang / www.rust-lang.org

The home of the Rust website
https://www.rust-lang.org
Apache License 2.0
370 stars 288 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.

KyleKolpek commented 5 years ago

I also am not a fan of the new slogan in that I find it lacks a proper audience. The stated audience is "everyone", but fails to describe why "everyone" would care about being a "systems programmer".

The fire flower metaphor in mind, but that metaphor fails to describe what the fire flower can do for other characters! In the fire flower example there's not really much else so let's try to think of a more applicable video game metaphor. The Smash Ball that enables characters in Super Smash Bros to use their final smash:

image

The new slogan would describe this by stating "It empowers Mario, allowing him to shoot a giant fireball to devastate his opponents". But that doesn't describe a lot of what the item can do! It leaves out what the item does for every other character in the game!

A better slogan might be "It unlocks the FINAL SMASH of any character, giving them the power they need to defeat any opponent." This applies to everyone. It's still a bit vague for my liking, but it applies to EVERYONE that would use the item and tells me enough to make me want to use it.

If I see "The programming language that empowers everyone to become a systems programmer." and I don't know what a systems programmer is, or don't want to be one, then I'm out right there. If that's truly Rust's goal then maybe that's fine, but I think the ecosystem shows that other "non-systems" programmers have seen a lot of potential in the language.

I won't give a suggestion because I'm not that creative, but I think there have been some much better options brought up here already. And to be clear, I think the slogan shouldn't be afraid to be specific about what it can provide (unlike my example above), it just needs to make sure those specific things have the correct audience!

/2cents

ian-p-cooke commented 5 years ago

I was about to open a new isssue but then I found this one. My main focus is removing 'systems programming' from the slogan and replacing it with something everyone can agree on as desirable. Here's my take:

Rust is a programming language that allows safe, fast, and efficient use of all of a computer's hardware.

See more at my reddit post: https://www.reddit.com/r/rust/comments/a1jjuf/a_new_look_for_rustlangorg/earzwwy

Motivation

Essentially I believe 'systems programming' encompasses getting a computer to complete a task quickly (wall clock) and efficiently (CPU/Memory usage). It also covers extending a computer with the ability to perform tasks that it couldn't perform previously through the use of new hardware (embedded, drivers, kernel).

I think focusing on 'do your thing in the shortest amount of time possible' will attract more developers to Rust.

Drawbacks

Some people might believe the statement (without the 'safe') applies to all programming languages and thus is too generic a statement. I don't believe so. I rarely think about hardware when I'm programming Python for example. Maybe to the extent of 'how many cores can I use'. Python is more about finishing programming faster and not creating something that runs faster.

Rationale and alternatives

I can't say it's the best but I believe it's a step in the right direction and it's not a point I've seen other people make.

I think 'use of all of a computer's hardware.' might be better as 'use of all computer hardware.' The point of the 'all' in there is to imply embedded and driver programming: hardware that isn't just a PC or server. That's a pretty strong statement though: it's like, 'you have a computer? you want to use it to perform as task as quickly as possible without blowing yourself up? you want Rust.' Possibly hyperbole.

LukasKalbertodt commented 5 years ago

Sorry for even more comment noise!

Combining my first suggestion with this suggestion by @briankung (I really like the "any domain" part), how about this?

Rust lets you write extremely fast and reliable code in any domain.

Alternatively, the "empowers everyone" can be used (although I think I prefer not to use "empowers"):

Rust empowers everyone to write extremely fast and reliable code in any domain.

ceyhunkerti commented 5 years ago

Is the emphasis on the "system programming" really that necessary ? Sure Rust is one of the best options for system programming, and also there are other use cases indicated below of the page. Although I am not sure, maybe telling it is a fast and safe, general purpose lang. could be better to embrace more and more people.

EDIT: For example i use Rust, as alternative to go, not because go has garbage collector etc. , but because i think rust is better designed and a more complete lang (imho).

The emphasis on "System programming" sounds like if you are doing some system programming stuff Rust is one of the best but if you are doing other things, there may be better alternatives, which sound like a restrictive slogan. And of course there may be better alternatives always, but that should be up to the user to decide that. No salesman says; "ok you can go with other options anyway" :)

KasMA1990 commented 5 years ago

What about something more abstract for a slogan? Like

Rust - Taming the power of CPUs everywhere, with less effort

Or

Rust - Where power and control meets peace of mind

EDIT: I personally like these because they convey the feeling of Rust, without getting bogged down in details. Then, ideally, they would be followed up immediatly by how Rust actually achieves this

ghost 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.

But that immediate next section doesn't necessarily show up in posts like twitter and hyperlinks from other website, which is actually a common way people spread about(the language)

the things that make it powerful should be stated atleast in Twitter Cards, Facebook OpenGraphs etc., if not in Landing Page

pnkfelix commented 5 years ago

A slight variant on @KasMA1990 's idea with more alliteration:

Rust - power. precision. peace of mind.

godcodehunter commented 5 years ago

Some variant's for slogan:

Now the hardware needs to rust to be better.

Just rust to go deeper.

Simple and reliable - it is about rust

Concrete language for loose problems

aturon commented 5 years ago

Thanks everybody for the feedback and additional ideas! It's been very helpful to grasp that being a "systems programmer" is not necessarily a widely shared aspiration.

In keeping with the basic structure and sentiment of the slogan, a couple of the most promising alternatives that have been raised are:

We might also consider dropping "programming" to say just "The language that..."

For the sake of trying to hone this discussion toward a consensus, can we narrow any additional brainstorming to fitting within the "template" above ("The language that empowers everyone to...")?

Flobaer commented 5 years ago

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

The programming language that empowers everyone to confidently build reliable, efficient software.

I heavily favour the second version, as it carries so much more meaning. What does "strong" mean in the context of a software system? Why should other languages be less capable of that? Can Python not be used to build a strong system? Or JavaScript?

"Reliable" and "efficient" are far more useful as descriptors; I can instantly tell you why Python is not the right tool to build efficient software: it's slow. No offense, Python is the main language I use and I love it but to anyone looking for time-critical performance I'd have to recommend looking somewhere else. Where? Rust, of course! It's fast and efficient, even focuses on that characteristic on their main web page (if we're going with the second version). I can also tell you immediately why JavaScript isn't the right tool to build (large) reliable software systems: mainly because of its dynamic and weak typing system (and other quirks). Again, no offense, I use it every week but I don't feel as confident writing reliable code in JavaScript as in other languages. What other language you might ask? Rust, of course! Reliability is one of its core features, as evidenced by the slogan on their main web page, again.

I couldn't make such clear statements about Python and JavaScript (regardless of whether they are true or not, I'm not trying to start an argument about that) if the slogan's main statement was about "strength". If you asked me if I think it's beneficial to use Python or JavaScript to write strong systems, I'd probably say "sure, why not" but I couldn't tell you why. It's just that the opposite ("they can't be used to write strong systems") sounds indubitably wrong. If you asked me to compare Rust, Python and JavaScript in regards to their capabilities to create strong systems with, I wouldn't really have an answer. And that's a problem: The slogan should give me an impression of the main features of the language to such an extent that I can compare it with other languages.

So I advocate going for a slogan similar to the second version, it serves its purpose as a slogan far better.

nicoburns commented 5 years ago

"Reliable" and "efficient" are far more useful as descriptors;

Totally agree with this. Interpolating the above two a little, I quite like:

The language that empowers everyone to build efficient, reliable systems.

(Or if the wording can be tweaked ever so slightly, I think replacing "that empowers" with "empowering" makes it a little less awkward: The language empowering everyone to build efficient, reliable systems)

Another suggestion above was to add "without effort". Similarly you could have "with ease". Or something along this line of thought.

Flobaer commented 5 years ago

A small side note: What about replacing the "everyone" with "you"? Some have argued that the wording with "everyone", especially combined with the keywords "systems programming", which is generally regarded to be harder than general purpose or application programming, might come across as kind of condescending or deprecatory, à la "even idiots can use it".

Changing it to "you" would counter this (assuming the reader doesn't consider themselves an idiot) and even fits nicely with the "fire Mario" analogy: it focuses more on how I personally benefit from this and can grow as a developer. So in total I suggest something like this:

"The language that empowers you to confidently build reliable and efficient software."

repax commented 5 years ago

Can it be written even more succinctly? Assuming that anyone who stumbles onto rlo already knows something which lead them there. Even Typescript's slogan is "Javascript that scales".

Rust

Empowering everyone to build reliable and efficient software.

Centril commented 5 years ago

@repax That certainly sounds more slogan-y.

Centril commented 5 years ago

Question: Do we want to replace build with ship?

Empowering everyone to ship reliable and efficient software.

timClicks commented 5 years ago

To respond to some of the discussion so far:

What does "strong" mean in the context of a software system?

A slogan doesn't need precision. Apple's is "Think Different".

"Stronger software systems" is a term that is a) intentionally broad and b) unique. That means that its meaning can be claimed by anyone who encounters it and is also memorable.

We want to avoid cliches and avoid descriptions that every other language community would use. We should strive to avoid terms that are overused and generic.

There's a hidden meaning there too. Strength is a virtue, in the Aristotelian sense of the word. It is normative, rather than descriptive. The Rust community has not been afraid of enforcing community norms, rather than pretending that technology is perfectly neutral.

People encountering Rust who are not programmers don't understand that "reliability" and "efficiency" are actually technical terms with very specific meanings within software.

Why should other languages be less capable of that? Can Python not be used to build a strong system? Or JavaScript?

The same question can actually be asked of "reliable" and "efficient". There are many languages that seek those aims. Why can't JavaScript be used to make efficient and reliable software?

Hopefully these points flesh out what is behind my thinking :thought_balloon: :smile:

ForsakenHarmony commented 5 years ago

I know inclusivity is important and I my self am part of an underrepresented group, but the emphasis on "everyone" with nothing about the language sounds like that's all you care about which I think really doesn't fit in a slogan

softprops commented 5 years ago

Just wanted to chime in again reliable and efficient are a coupling that Rust encodes for me. Not unique separately. Having them both is what makes Rust unique. There are definitely languages that allow efficiency at the cost or reliability, and languages focused reliability at cost of efficiency but rust as always been the why-not-both language for me. That's what brings to point empowerment. It makes it relatively straight forward for those too properties to just fall from it's design.

I'm super sypethetic to the "everyone" comment above and various ways than can be interpretted. Reading that a second time in myself an unclear what everyone means. One of rusts killer language features is the community. I'm not great at word smithing but it may be a nice excersize to emphasize community is part of the language ( in few words as possible ) the community thing is my take but may distract from the actual language bits. Who knows maybe the community is actual what makes rust so unique ;)

cessen commented 5 years ago

Regarding the use of "everyone" in the slogan: if this is going to be more than just marketing, and instead represent Rust in a more meaningful way, then following the slogan with the question, "But... does it really?" must lead to an honest answer "yes". And not for a hopeful future Rust, but for Rust as it is now.

I really love Rust, so I hope no one is taking my comments the wrong way. But so far, for me at least, very few of the proposed slogans have rung true in that way. Partly this is because of the "everyone" bit. Especially when it's italicized, which for me shifts it from being a figurative "everyone" to a literal "everyone".

But the more I think about it, the more I feel the broader issue with the new slogan and its iterations is that they present the aspirations of Rust (which are laudable and I agree with) as if they are current reality. And that rubs me the wrong way. I would again like to turn attention to Swift's slogan, which I think does a good job of presenting aspirations as aspirations. I'm pretty terrible at this, but maybe for Rust something like this (but better) could work:

"We're working to bring the development of efficient, reliable software within everyone's reach."

That is a slogan that, if I were asked the question, "But... are they?" I could definitely answer "yes". Because that is something the Rust team and Rust community has consistently strived for and worked at: making Rust approachable to more and more people. It speaks to the aspiration, but without confusing it with current reality.

Another way to meet the "can we answer 'yes it does'?" criteria is simply to focus on the features/qualities of Rust itself, rather than using the fire flower approach--more like the old site. Which I'm not advocating, but pointing out for the sake of completeness, I suppose.

Anyway, I realize at this point that a change away from the template @aturon highlighted is unlikely to happen. But I figured I'd toss in my last two cents before heading off, just in case it reaches anyone. In the end, how Rust develops and the quality of the community are what actually matter, regardless of slogan. And Rust is pretty top-notch on both counts, so I'm not terribly worried. :-)

scottmcm commented 5 years ago

We want to avoid cliches and avoid descriptions that every other language community would use.

I think this note from @timClicks sums up my feelings here. I look at golang.org and see

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

That's pretty much the same as either of

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

The programming language that empowers everyone to confidently build reliable, efficient software.

The "Why Rust?" section certainly elaborates, but I'd love to find the perfect word to put in the slogan to actually distinguish Rust from everyone else. (Now if only I knew what it is...)

Voultapher commented 5 years ago

For me, I associate Rust with "Fast, Reliable, Productive. Pick Three.", that's what I've found most effective when describing it's appeal to people unfamiliar with Rust.

There are many slogans, and the old one is most likely not the best possible one. Yet I'll go out on a limb and say the new one is straight up wrong. That's because there is a caveat to "Fast, Reliable, Productive. Pick Three.", Rust is complex and requires an understanding of a multitude concepts. Learning about general programming requires at least an understanding of control flow, and likely input output to do anything observable. To use Rust proficiently one also has to understand on top of that a static type system, lifetimes and mutability. All this combined can easily be overwhelming for someone starting to program. I'd never recommend Rust as starting programming language. Nor would I recommend C++ for similar reasons.

I think Rust is an amazing project and I want more people to use it. At the same time, saying "The programming language that empowers everyone to become a systems programmer." is a bit like saying "The formula one car that empowers everyone to become a race car driver.". Not everyone wants to become a Rust programmer and if history has shown anything about programming languages with a sense of backwards compatibility, they never get simpler. So hoping for a day where Rust is as easy to pick up as Go, will likely never come, and choosing a slogan that expresses these aspirations as a fact, seems rather short sighted.

If we have to fit american social political aspects into a international programming language slogan, my vote is for:

It's both more informative and less wishful thinking.

Otherwise:

Even more succinct, and hard to misunderstand.

MggMuggins commented 5 years ago

I don't really want to add more clutter to this already extensive discussion, but I had an idea:

Clearly there's been an awful lot of debate over what slogan to use. What if, instead of a slogan, we used a word cloud (think Wordle), which would be generated based on a survey: "Pick one word that describes Rust means to you" or similar. Words could be larger relative to other words if more people selected that word. This puts the emphasis on the community, and allows everyone to throw into the "slogan" what they want to see there, basically allowing the "slogan" to convey all of the different ideas expressed here.

ian-p-cooke commented 5 years ago

my proposal

Rust is a programming language that allows safe, fast, and efficient use of all of a computer's hardware.

didn't get any traction but I still feel like there's something valuable in mentioning 'hardware' in the slogan. I feel like 'systems programming' is more of a perspective and that you want to appeal to people that have that perspective regardless of whether they would call what they do 'systems programming'. If you're thinking about how the machine is going to execute your program then you might want Rust.

None of the following are very good but maybe I can inspire someone else to pick up my idea and run with it. It's hard for me to think of something good in terms of the required template. As someone else mentioned though I do think it sounds better as 'empowers you' than 'empowers everyone'. It's more personal.

The language that empowers you to get the most out of your hardware. The language that empowers you to implement optimal solutions for your problems. The language that empowers you to become one with the machine.

or at least, something like that 😃 "efficient software" is good but the proposed

Empowering everyone to build reliable and efficient software

is too close to Go's slogan (simple, reliable, efficient) in my opinion. In fact the similarity leads to the negative thought "oh, so it's like Go, only not simple''.

Rust: a complex beast that uses every cycle of your computer efficiently to annihilate your problems as quickly as possible.

that last one is a joke 😄

Zaechus commented 5 years ago

I'm not exactly sure of what the slogan should be, but it might be a good idea to parallel the intro to the Book but more concise:

"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."

EDIT: I revise my statement. The current slogan is kind of catching on to me and I find that it does mirror the intro to the Book and still highlights what makes Rust special. The slogan doesn't need to say everything Rust can do. Scroll down and that info is already there.

softprops commented 5 years ago

It maybe helpful to answer this question. Are we working towards a "why rust?" Or "what is rust?" in this gh issue?

Classic fail example home page of java says nothing about what it is

https://www.java.com/en/

Google Java and the first result is https://www.java.com/en/download/ which still doesn't really mention the programming language

Java technology allows you to work and play in a secure computing environment. Upgrading to the latest Java version improves the security of your system, as older versions do not include the latest security updates.

Java allows you to play online games, chat with people around the world, calculate your mortgage interest, and view images in 3D, just to name a few.

Java software for your computer, or the Java Runtime Environment, is also referred to as the Java Runtime, Runtime Environment, Runtime, JRE, Java Virtual Machine, Virtual Machine, Java VM, JVM, VM, Java plug-in, Java plugin, Java add-on or Java download.

Since the beta page goes right into the why rust after the bits were debating maybe it would be helpful to keep focused on the "what is rust?" question.

forrestthewoods commented 5 years ago

I still think the best tagline is that from 'This Week in Rust'.

Rust is a systems language pursuing the trifecta: safety, concurrency, and speed.

Within the guidelines that'd be something like:

I might like #3 best. But I think the newsletter version is better.

I love the Mario fireflower analogy. But it's also easy to take it too far. Lord knows we've all visited websites that focus entirely on what the product will help you achieve and give you zero indication of what their damn product actually is.

Knowing that a language is pursuing safety, speed, and concurrency tells me a lot. Those keywords provide clear differentiation from other programming languages. The phrase 'to build stronger software systems.' could apply to literally any programming language. C++, Python, JavaScript, Haskell, etc. It doesn't add any information to "this is a programming language".

/my 2 cents

DrizztVD commented 5 years ago

Perhaps:

The programming language that empowers everyone to be a systems programmer, and craft any program with safety, concurrency, and speed.

The term "systems programmer" is very important. There are 10s of applications languages out there and many more coming, surely. There is only one C/C++ alternative, and it is called Rust. If the core systems programming focus of Rust is compromised, it would be a very sad day indeed.

Secondly, individuals who have not programmed basic microcontrollers sometimes think Python or Go and Rust are similar technology-wise. Leaving the term "systems programming" out would open up many incorrect comparisons of Rust to the many garbage collected (GC) languages out there. It's paramount to emphasise this bare-metal programming capability of Rust front-and-centre by stating "system" in the slogan.

benwiley4000 commented 5 years ago

I love @zxey's suggestion earlier in the thread:

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

It's such a subtle change from the source quote but for me, someone who wants to get into Rust more and hasn't yet, it's the most effective at making me want to jump in. :)

The word "fearless" indeed seems to be a great summation of the affordances that Rust gives you, while still focusing on the empowerment of the user rather than a bunch of technical jargon.

DrizztVD commented 5 years ago

The word "fearless" indeed seems to be a great summation of the affordances that Rust gives you, while still focusing on the empowerment of the user rather than a bunch of technical jargon.

I just don't find generic statements that compelling. All languages want to make people fearless programmers, all languages want to be super fast, essentially, they want to be everything to everyone. That is just not a physically achievable goal.

Stating "everyone to become a fearless programmer" is just a statement that I distrust. It makes me think the language is over-promising.

llogiq commented 5 years ago

I have suggested this elsewhere, so for posterity, my vote goes to: "Relentless Performance & Productivity Without Cutting Corners"

Rationale: I'm wary of fear-based advertisement, also many programmers will not experience fear, and gleefully run into UB-land instead. Also the "empowering" verbiage is uncompelling to programmers who already feel powerful, either by the abstractive acumen of their high-level language or the down-to-the-bits raw power of their low-level language.

Instead my slogan touches three of the main selling points of Rust: Performance, Productivity and Reliability (the latter because avoiding cutting corners leads to reliable software).

tshepang commented 5 years ago

@llogiq why "relentless"? Your proposal looks good enough without that word.

DrizztVD commented 5 years ago

Without Cutting Corners

I can live with that wording. It hints at the fact that Rust can function without a runtime (GC), while providing sufficient user-friendliness to be ubiquitous. Newcomers need to know that the learning curve is steeper than most other languages for a very good reason. Else they'll become disillusioned.

weihanglo commented 5 years ago

Just found this in a post on the official Rust blog:

The Rust team is happy to announce the latest version of Rust, 1.12. Rust is a systems programming language with the slogan “fast, reliable, productive: pick three.”

I wonder why this slogan had been abandoned.

https://blog.rust-lang.org/2016/09/29/Rust-1.12.html

llogiq commented 5 years ago

@tshepang because we will not compromise performance for, say, learnability.

aturon commented 5 years ago

I'm sorry I haven't been able to participate more directly in this thread due to travel and the short timeframe. But I've tried to take some of the rough consensus here and shop it around the core team for buy-in.

Everyone is feeling comfortable or good with:

Empowering everyone to build reliable and efficient software (no italics)

(Very close variants of that slogan have appeared many times on this thread).

Since we ship the site live tomorrow with Rust 2018, this will be the final slogan! Thanks y'all for the input, and in particular helping us see how the "systems programmer" aspiration wasn't hitting quite the right notes.