Rust 1.0 Launch Party Kyiv and Lviv

Rust 1.0 Launch Party Kyiv and Lviv

Transcript

  1. Rust 1.0

  2. @RustUkraine
 https://gitter.im/dev-ua/rust

  3. @listochkin

  4. 2006 Graydon Hoare

  5. 2009 Mozilla Research

  6. 2011 Self-hosted OCaml

  7. 2012 Release 0.1

  8. Dec 2013
 Rust the game

  9. Jan 2015 1.0-alpha

  10. Apr 2015 1.0-beta

  11. May 15, 2015 1.0

  12. What is Rust?

  13. Systems Language

  14. Compiles to a binary

  15. .a .so .dylib .dll
 .exe

  16. No Runtime
 No Garbage Collection

  17. C => Rust => C

  18. C Rust

  19. C Extensions
 Rust Extensions

  20. Java .NET
 Ruby Python Node
 iOS Android

  21. C C++

  22. Databases
 Internet of Things
 Games


  23. Mozilla Servo

  24. browser layout engine
 
 highly parallel


  25. Modern Platform

  26. modules crates

  27. Cargo

  28. dependency hell

  29. A (0.1.x)
 -> D (12.5.x)
 B (0.0.4)


  30. A (0.1.3)
 B (0.0.4)
 C (1.0.3)


  31. crates.io
 > 2000
 


  32. project generator
 test runner
 incremental builds

  33. llvm
 x64 ARM

  34. Modern Language

  35. type inference
 immutability
 pattern matching
 algebraic datatypes


  36. OOP

  37. Struct
 Trait (+inheritance)
 Generics

  38. Memory Model

  39. No GC

  40. RAII on Steroids

  41. Ownership
 Borrowing
 Lifetimes

  42. Concurrency

  43. Threads
 Mutexes
 Arc


  44. Missing Pieces

  45. i18n
 HTTP
 SQL


  46. Rust vs ...

  47. Rust vs C++

  48. Rust richer language
 
 safety guaranties
 
 modularity better performance


    
 richer tooling C++
  49. Rust vs Ocaml/Haskell

  50. Rust multiparadigm manual memory management
 purely functional
 
 GC
 


    Richer Concurrency Haskell
  51. Rust vs Go

  52. Rust Libraries
 Richness
 
 Native threads
 + anything
 
 No

    GC
 Cargo
 
 Binaries only*
 Simplicity
 
 coroutines
 channels + syntax 
 GC only
 
 go get*
 
 http
 
 Go
  53. Rust vs Go
 very different

  54. Rust + Ruby/Go/Haskell/C++

  55. 1.0

  56. You program
 won’t break

  57. None
  58. Ubuntu
 Chrome
 Firefox


  59. LLVM frontend unoptimized

  60. tools

  61. Travis CI
 Nitrous multirust


  62. What should you write in Rust?

  63. Mainstream Developer

  64. CLI utils
 Extensions
 Background Jobs


  65. Web Frameworks
 Web Apps Web APIs

  66. Node/Go
 Ømq
 Rust

  67. Mozilla
 OpenDNS
 Tilde


  68. @RustUkraine
 https://gitter.im/dev-ua/rust