chiark / gitweb /
done script roughly
[talk-2019-ghm-rust.git] / talk.txt
index fa3aa7bfc2d024959daa21293c5f29d8928df6cc..cdf8f6b31d2af76d272efc35ff7353110a2cfba3 100644 (file)
--- a/talk.txt
+++ b/talk.txt
@@ -1,10 +1,20 @@
 
-In many respects Rust is a competent but not particularly novel
-language.
+Hi.  This talk is going to be, mostly, a plug for Rust.
 
-Powerful.
+Those of you who know me may find this surprising.  After all Rust in
+its current form is only about 4 years old, and I myself only learned
+it in December.  I'm not known for liking new things :-).  All I can
+say is that I tried it and have been impressed.
 
-Reference to Blub languages.
+In most respects Rust is a competent but not particularly novel
+language.  It has one novel feature, but the rest feels like a
+collation of good and established features from other competent
+languages.
+
+Rust is most often seen as a competitor to C and C++.  That's fair as
+far as it goes: certainly there are few reasons to use C or C++ over
+Rust for an entirely new project.  But for me, Rust's power and
+flexibility mean its appeal is much wider than that.
 
 B======================================================================B
 
@@ -157,10 +167,11 @@ Convenience is not regarded as the enemy of correctness, but its ally.
 
 [ slide with interface stability ]
 
-The Rust project is quite careful about language and library
-stability.  They make a clear distinction between stable and unstable
-features, and try quite hard to avoid backward-incompatible changes to
-anything which has been declared as stable.
+Since declaring 1.0 in 2015, the Rust project has been quite careful
+about language and library stability.  They make a clear distinction
+between stable and unstable features, and try quite hard to avoid
+backward-incompatible changes to anything which has been declared as
+stable.
 
 [ slide with error message ]
 
@@ -235,12 +246,17 @@ in the same personal project.  Some of my recent forays into Rust have
 involved switching between Rust and C++ and Perl.  This kind of thing
 throws differences between languages into sharp relief.
 
-Rust is now my language of choice for many nontrivial programs.  I'll
-probably still use Perl for small programs with a lot of string
-processing, and of course I often end up choosing a language for a
-project based on the availability of good libraries in the problem
-domain.  I don't think I would now want to start a new project in C or
-C++.
+Rust is now my language of choice for many nontrivial programs.
+Certainly I would try to avoid starting a new program in C or C++.
+
+Rust's compile-time type checking and its performance can make it an
+attractive alternative to scripting languages like Python, Perl and
+Tcl.  Its macro system, and consistent high performance, can make it
+an attractive alternative to Haskell or Ocaml.
+
+I'll still start new programs in many of those other languages, and
+often I choose a language for its libraries.  But for me Rust will
+now often be my preferred choice, if I can get away with it.
 
 If you want to know more, there's a wealth of stuff online.  The place
 to start is probably https://docs.rust-lang.org/.  And of course I'd