We always knew what we wanted Rust to be, but we didn’t know how to make it what we wanted it to be.
It would have been so easy for the core team to give up, decide that you couldn’t get safety without sacrificing performance, or vice versa, and just use a garbage collector everywhere. Instead, they kept at the problem for a long time (with lots of redditor whining about the long dev process), but they finally found the magical recipe and I feel that the model they have introduced in Rust is something we are going to see a lot more in the not-so-distant future.
decide that you couldn’t get safety without sacrificing performance, or vice versa, and just use a garbage collector everywhere.
Maybe. They knew about Morrisett’s Cyclone [1]. Its ability to do plenty of safety, including against dangling pointers, without relying on GC told them GC wasn’t only route to safety. They followed up on that thinking with improvements that became Rust’s strategy. They also implemented the compiler in Ocaml instead of C. Both of these are examples of Rust succeeding by doing something most don’t (and a meme of mine): apply lessons learned in software engineering and/or CompSci to new projects. I was pushing Cyclone & other safer C’s on C users for a while with no uptake. Far as Ocaml, it’s excellent for writing robust compilers with lots of tooling to support that. Smart people used it instead of C, C++, or whatever. Seeing Rust do both plus go mainstream was a “Holy Shit!” moment for me. “The Right Thing” approach rarely wins over “Worse is Better.”
[Cyclone Programming Language](https://en.wikipedia.org/wiki/Cyclone_(programming_language\)) (the parser incorrectly picks up the first paren rather than popping one off the stack)
I’m not aware of more than a couple odd languages/formats that use something other than \ to escape things and none that use /. Is there anything that uses the latter?
As for the format, it is a degenerate and imperfectly implemented markdown parser.
Thanks for the details. Makes sense and worked in my edit. Far as forward slash, a brain injury leaves blanks in my memory occasionally despite otherwise good recall on a topic. Figured it didn’t hurt to ask in event I forgot one that did forward-slash.
I was originally supposed to give this talk only one time, as a keynote at FOSDEM, right before Rust 1.0. Then FOSDEM lost the video. So I gave it again for the ACM, and added in a bunch of stuff that happened in our first year.
Slides are here: https://github.com/steveklabnik/history-of-rust
It would have been so easy for the core team to give up, decide that you couldn’t get safety without sacrificing performance, or vice versa, and just use a garbage collector everywhere. Instead, they kept at the problem for a long time (with lots of redditor whining about the long dev process), but they finally found the magical recipe and I feel that the model they have introduced in Rust is something we are going to see a lot more in the not-so-distant future.
Maybe. They knew about Morrisett’s Cyclone [1]. Its ability to do plenty of safety, including against dangling pointers, without relying on GC told them GC wasn’t only route to safety. They followed up on that thinking with improvements that became Rust’s strategy. They also implemented the compiler in Ocaml instead of C. Both of these are examples of Rust succeeding by doing something most don’t (and a meme of mine): apply lessons learned in software engineering and/or CompSci to new projects. I was pushing Cyclone & other safer C’s on C users for a while with no uptake. Far as Ocaml, it’s excellent for writing robust compilers with lots of tooling to support that. Smart people used it instead of C, C++, or whatever. Seeing Rust do both plus go mainstream was a “Holy Shit!” moment for me. “The Right Thing” approach rarely wins over “Worse is Better.”
[1] https://en.wikipedia.org/wiki/Cyclone_(programming_language)
need to escape the parens.
Put a backslash or forward slash in before each one? And is there a page that describes stuff like that for this site?
https://en.wikipedia.org/wiki/Cyclone_(programming_language)
is achieved by typing
https://en.wikipedia.org/wiki/Cyclone_\(programming_language\)You could also do: Cyclone Programming Language
by typing:
[Cyclone Programming Language](https://en.wikipedia.org/wiki/Cyclone_(programming_language\))(the parser incorrectly picks up the first paren rather than popping one off the stack)I’m not aware of more than a couple odd languages/formats that use something other than
\to escape things and none that use/. Is there anything that uses the latter?As for the format, it is a degenerate and imperfectly implemented markdown parser.
Thanks for the details. Makes sense and worked in my edit. Far as forward slash, a brain injury leaves blanks in my memory occasionally despite otherwise good recall on a topic. Figured it didn’t hurt to ask in event I forgot one that did forward-slash.
I was originally supposed to give this talk only one time, as a keynote at FOSDEM, right before Rust 1.0. Then FOSDEM lost the video. So I gave it again for the ACM, and added in a bunch of stuff that happened in our first year. Slides are here: https://github.com/steveklabnik/history-of-rust
Having seen the FOSDEM version: this one is the better one <3.