Message from the host 💬
Hey y'all! A subset of the Rust core team is now here and we'll be answering from our personal perspectives. Keep the questions coming!
EDIT: And we're done! Thanks for the great questions, everyone! This was a lot of fun.
Does pineapple belong in pizza?
Hi Rust team! Thanks for doing this AMA. One question that beginner developers always ask about Rust is:
With C++17 being such a great and easy-to-use language, why would anyone use Rust?
Would love to hear your thoughts on this.
Can I replace my Rails/Django/Flask with Rust? Is it ready for web development already?
I feel learning Rust needs functional programming experience, being coming from C background I am facing difficulty in solving problems rust way.
I would like to learn rust by contributing to the open source code, for now can you please recommend some rust projects where I can contribute as a beginner?
I am also interested in embedded systems, what's the plan to support micro-controllers like ARM cortexM3 and friends? Is anybody is doing work on this?
What is your personal vision for Rust in 10 years? I'd love to hear a few random interesting personal highlights from what you hope or envision the Rust language or ecosystem looking like 10 years from now in 2028. Specialty, language feature, adoption pattern, notable success story, however you envision it!
Complex constraints and code abstractions can be handled in different ways, including with advanced type systems including higher-kinded types (as in Haskell and Scala) or by including advanced code-generation capabilities (as in C++ templates and Scheme macros). Both come with drawbacks, however (large learning curve and difficulty in figuring out where behavior is coming from, respectively).
Other languages (e.g. Go) eschew such features. This makes programming feel simple; simple tasks are simple to understand, and you handle complexity face-to-face (manually--the compiler doesn't help you).
Rust already has a sophisticated type system (especially if lifespans are counted), a robust macro system, and plans are underway to add to both capacities. What is the ideal end-goal? Is there a balance to be had between language simplicity and language expressivity? When should the type system carry the burden of taming complexity and when should metaprogramming (macros)?
What RFC or other language feature are you most excited about in Rust?
Are there any plans for any sort of official (or at least standard) GUI solution in rust?
Explain like I'm 5: Why would I want to use Rust rather than C? Give as many reasons as you can.
Do you think every security related C code should be rewritten in Rust to prevent vulnerabilities like Heartbleed in the future? And are there already any plans of famous projects to do this?
Do you have any wishes or plans – no need to be concrete ones or anything – to address the "rental" problem? (References to other fields in the same struct?) I feel that that is one of the next big expressivity problems in the borrow system after non-lexical lifetimes.
What do you think the Rust language and ecosystem needs before anyone, even complete beginners to programming, can come in and start writing Rust?
People learn C++ as their first language so Rust is definitely possible too. :)
Besides "The book", do you guys recommend any other book? I've been struggling for a while in my path of being a Rustacean.
I have come across a Blockchain project where in Rust is being used at the core. Can you tell me how does rust compare to Go for network concurrency stuff? or whats the difference between them and where would I use which one?
What got you involved with Rust?
What's the plan with RustBridge? It's interesting, but the website doesn't seem very active.
In what cases you wouldn't recommend using Rust?
For someone who wants to start contributing to the Rust community, what libraries seem to be missing that you think would be most beneficial? And anything simple enough that someone without much experience in Rust could start working on?
WebAssembly is on track to receive a number of features to improve targeting it from languages with large runtimes. What wasm features would you like to see to help Rust be a useful choice for libraries and applications on the web? What work might be done on Rust and in the ecosystem to make it more competitive when targeting the web?
I wanted to learn Rust for http://exonum.com/ project, but I think the syntax of the language is quite complicated. In what other development environments can I use it and why it is better than Python or for example Java?
Thanks in advance.
P.S Language actually is very interesting, I think that it has a really lot great features built-in.
Go Rust ! ⚙️
Would you recommend Rust as your first programming language?
What is the plan regarding Rust and Gnome? Is there a complete integration of Rust and GTK planned? In a few years, would it be possible to use Rust for high quality GUI's on Linux? Could such GUI's be ported to the web through Webassembly?
I've been longing for a clean, integrated, powerful, native GUI toolkit for a long time, and I was hoping maybe Rust could be just that ...
In other words, do you eventually envision Rust able to write both the application logic as well as sophisticated graphical stuff?
How stable is Gotham? Would you recommend using it to build high scale production ready apps?
Pi or Tau for the ultimate circle constant?
I've seen a lot of comparisons recently between Rust and Swift. How do the two compare, and do you view Swift more as competition or as a complement?
What do you think about Rust applicability in the field of cryptography? Not only in technical terms, but also regarding how to attract professional cryptographers to write in Rust. Can we in 5-10 years get a pure Rust OpenSSL replacement which hopefully will be free of all those horrible memory bugs or there is some obstacles which will be hard to overcome?
I'm currently working on code involving cryptocurrencies like blockchain explorers and market aggregators. I know many languages but I mainly use Go and Rust for most things. Unfortunately, this project is going to be very large and I was not comfortable with the delays Rust imposes on the code-build-run cycle, so I went with Go for the core of this project (though I use Rust for other smaller services).
I know incremental compilation has landed and helped a ton, but it's still magnitudes slower than Go compilation. Is there any plans to improve this and is there a timeline (like alternative compiler backends)?
Are there any plans for other platforms to use rust as a primary language? E.g. how the Android framework is with Java
Hey! I'm one of the organizers of the Rust NYC meetup. If any of y'all (whether you're part of the Rust team or not!) are interested in presenting, we are always looking for speakers. Message me through meetup :)
What are the risks that a programmer ought to be aware of when using features only available from rust nightly?
If you could create a new English word, what would it be and what would it mean? Your favourite word (Not necessary English one)?
what about rust-lang learning resources? "Ask about Getting started with Rust"
Hello and thanks for the AMA! :)
How did you guys end up being part of something as cool as Rust, and what advise would you give to a dev at the beginning of his or her career in tech?
Why does not pass variables by reading by default? Rust is plagued of '&'.
Any plotting library for scientific community?
What is being done to bring compile time down?
How much slowdown do you see in Firefox build times, now that parts of the browser are written in Rust?
There are lots of great language improvement ideas flying around in the RFC repo. Non-lexical lifetimes, module system revamp, const fns, variadic generics, extensions to the trait system, and so many others... I assume there are a lot more people proposing ideas than people working on the language, so how do you manage to cope with the flux, examine all of the proposals, and prioritize those that get accepted for implementation?
Will there be a gitbook on how to approach hacking the rust compiler
What would be the hardest question you could be asked? :P
Is science invented or discovered?
Are there any advantages of using Rust over Go?
A large fraction of the Rust team works at Mozilla, and I've always been a bit curious about how that came to be. I mean, I work with some MLOCs of hairy legacy C++ code at work, so I can understand the desire to have a better systems programming language, but there is a difference between dreaming that and hiring quite a large team to actually make it happen! Could you give me a bit of perspective on this?
Is there anything that was removed from the language that you'd like to bring back in some way (another form, different syntax, etc)?
Would you choose to live forever (assuming you are invulnerable and keep your current health)? Even if that means that you exist at and beyond the heat death of the universe?
Currently Rust is very slow to create some prototypes. Are there some IDEs with better support for creating Rust projects? Also some better intellisense would come handy.
Zermelo–Fraenkel set theory or homotopy type theory? Or should we accept pluralistic view for foundation of mathematics instead?
About error handling.. Let's say i'm a crate creator. For now recommended strategy for error handling is to make own error type:
and wrap all possible error with it.
Let's say someones uses my crate and he/she also need to wrap around my error with its own error type. Now when error occurs in 'ending' crate then there is a chain of converting errors, like:
std::io::Error > some-lib1 > some-lib2 > ..
which a lot of conversion is made + a lot of wrapper code is needed
Is there a way of doing it better?
Which game is better: Rust or Go?
Why don't rust compiler warn when doing multiple imports?
Is Rust used in any of geospatial operations? Kakadu for jpeg2000 is written in C++. Do you have some benchmarks where Rust could outperform C++?
I don't know enough about formal verification (or even if that's the right term), but do you guys see Rust making it relatively easy to verify that a program does what is supposed to do and only that? In time, does Rust have the potential to bring an even higher degree of program soundness than just memory and thread safety?
As an iOS engineer, why should I learn Rust?
Hi Rust devs! I love your language, it is a great experience to code in. Got question about simple C++-like "std::cin" manipulation. Doing pretty advanced things on an online judge platforms are fairly straitforward except input handling in performant manner. On spoj for example you can't - as far as I know - use extern crates. What do you think about adjusting std lib or docs to simplify the process?
Are deep learning or machine learning in rust a near future?