What is you elevator pitch for Rust?

I’m curious and not wasn’t aware of this. Could you provide an example?


Also as to the type classes vs Rust’s traits comparison, IMO there’s still significant shortcomings around the fact that you can’t have type constructor classes (I don’t know what’s the right term, I’m talking about type classes with kind (Type -> Type) -> Constraint, type classes such as Functor, Applicative, Monad, Foldable, Traversable, etc).

If Rust supports this at some point in the future we can probably call it more strictly superior. I do like the coherence story in Rust a lot.

Ain't them Higher Kinded Types?

Fair enough, I'll try to dig out the project I last implemented in both languages; unfortunately, it was about half a year ago so I don't remember the specifics off the top of my head.

1 Like

Anyway, an elevator pitch depends on who is in the elevator.

To the C and C++ programmers I might say:

"You know all those hundreds/thousands of recommendations in the coding guide line documents you work to? You know how you have to invest a lot of time and effort into enforcing those recommendations in your code base, all the code reviews and tests you have to do to ensure they are followed? You know how often such standard recommendations get forgotten and terrible, hard to find bugs result. ? You know how all that is all very expensive in the end? OK, I have good news for you, if you used Rust instead then the compiler would automate the majority of such guideline checking. Thus saving a lot of work and embarrassing bugs."

To the Java, Javascript, Python programmers I might say:

"You know how easy it is to knock out code in your language, what with its slack type checking and garbage collection? You know how you often wish your creations ran faster, did not suffer from random timing stutters? Ok, I have good news for you, if you used Rust instead your creating performance and predictability would be improved by orders of magnitude, thus potentially saving the cost of all those machines you have to use to keep things running nicely."

To some random programmer I might say:

"Rust is not Just Another Language (JAL). There are so many JALs popping up all the time. Rust is the first language I have come across in decades to offer genuinely innovative and extremely useful and valuable features whilst maintaining ease of use and performance. Namely it's rigorous type and memory use checking without leaning on a performance sucking/determinism destroying garbage collector. Check it out, the notions built into Rust are interesting even if you decide not to use it."

To those you don't care about producing reliable software, well, probably better not to even mention it.

5 Likes

These are all great examples, but, what I'm going to find most difficult is persuading an organisation (my employer for example) to allow the use of rust for a new product, for example a webApi backend. Especially given that in some cases we'll have to write our own libraries when a crate might not exist for a 3rd party API.
I think most are going to say that .net is 'fast enough', or 'safe enough', or 'has all the libs available', or even simply "it's the langauge that the whole team know". I think the last 2 will be the hardest to overcome, no matter how good the elevator pitch.
Any suggestions gratefully received :slight_smile:

I'm just starting to learn rust and to help me learn I may well just write one or more such crates! But, oddly enough, I'm probably going to start (once I have enough rust knowledge) with a driver for the MCP23018 IO expander :slight_smile: so not quite 'web' :slight_smile:

1 Like

I don't think you can convince using technical arguments a manager who insists that "X is the language all people know". Some people are simply uncapable of, or unwilling to, make progress, and you are probably better off investing your time in any activitiy other than trying to convince such people.

5 Likes

Well there is the thing.

If some system, in whatever language, is fast enough, safe enough, with all the tools and people available to move it forward then there is no point in campaigning it be rewritten in some other language or new parts of it be written in some new language. Be it Rust or anything else.

A total rewrite is an expensive business that will likely introduce more bugs than safety issues it fixes.

Extending it in a different language may just be more complex than warranted.

Reality is that there are billions of lines of code out there, in all kind of languages, nobody is interested in starting over in what ever new language of the month just because someone on the team likes it.

However, if you can find a problem that can be solved with Rust rather than whatever is in use, then you have a case. An "elevator pitch". Be that a performance is issue or a correctness issue. Or likely both.

2 Likes

understood, but just for the record, I would not be suggesting a 'rewrite', I'm suggesting for new projects :slight_smile:

My plan is to start learning rust and write some personal projects and only when I have enough experience and if/when a suitable project presents itself, then I can suggest rust as an appropriate approach :slight_smile: But, as I primariliy work on web with .net, I think this is a far off land!

Yes, I think that is the best approach.

That is also wise. Seems to me that when eventually making that elevator pitch one had better be pretty familiar with Rust because there are likely to be awkward questions arising and one had better have answers off the tip of ones head.

Oh I don't know. There are plenty of people using Rust in production for web services already.

We are now using Rust every place that we formerly used Node.js for. Serving REST API's and juggling websocket streams. Although we have not yet bitten the bullet of trying to use Rust in the browser yet.

The difficulty with using rust for web, I fear, may be in the availability of developers in the marketplace. This is something that any organisation must consider, if they need to hire new developers, are they likely to find those experienced in the chosen tech.
In Europe we still have a shortage of good developers and yet half decent .net devs aren't too hard to find, but I suspect a good rust developer will be a lot more difficult, at least for a few years. Another reason why I'm learning rust :slight_smile:

trait, match, enum, performance

A post was merged into an existing topic: Rust, sloppiness, and gatekeeping