All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is...

107
Look at all these toys!

Transcript of All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is...

Page 1: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Look at all these toys!

Page 2: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Help – it’s Ruby!

Page 3: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

All alone

Page 4: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Is Ruby dying?

Page 5: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Where do Rubyists go?

Page 6: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Where do Rubyists go?Tobias Pfeiffer

@PragTobpragtob.info

Page 8: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

673 Responses

Page 9: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all
Page 10: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all
Page 11: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

First Rails Release

Page 12: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Rails 1.0

Page 13: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

“I had written half of Rails in PHP. Then Rails was announced and it was like a cheat code to a working framework.”

Why did you learn Ruby?

Page 14: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

First Rails Girls Workshop

Page 15: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

First Rails Girls Berlin Workshop

Page 16: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Surveys and Bias

Page 17: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Like some bias?

Page 18: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Like to do Ruby in 5 years?

Page 19: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all
Page 20: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all
Page 21: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all
Page 22: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Omissions

Page 23: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Tools

Page 24: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Disclaimer

Page 25: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Meet & Greet

Page 26: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

1990 1995 2000 2005 2010 2015

Page 27: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Name:Popular Rubyists:Known for:

Self-assessment:

RubyAll of themMetaprogramming, dynamic,Scripting, webA dynamic, open source programming language with a focus on simplicity and productivity.

Page 28: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

FizzBuzz!

Page 29: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

12

Page 30: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

12Fizz

Page 31: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

12Fizz4Buzz

Page 32: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

12Fizz4BuzzFizz

Page 33: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

12Fizz4BuzzFizz78FizzBuzz11Fizz1314

Page 34: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

12Fizz4BuzzFizz78FizzBuzz11Fizz1314FizzBuzz

Page 35: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

12Fizz4BuzzFizz78FizzBuzz11Fizz1314FizzBuzz16…

Page 36: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

def fizzbuzz(n) if (n % 15).zero? "FizzBuzz" elsif (n % 5).zero? "Buzz" elsif (n % 3).zero? "Fizz" else n endend

(1..100).each {|n| puts fizzbuzz(n)}

Page 37: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

def fizzbuzz(n) if (n % 15).zero? "FizzBuzz" elsif (n % 5).zero? "Buzz" elsif (n % 3).zero? "Fizz" else n endend

(1..100).each {|n| puts fizzbuzz(n)}

Page 38: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

def fizzbuzz(n) if (n % 15).zero? "FizzBuzz" elsif (n % 5).zero? "Buzz" elsif (n % 3).zero? "Fizz" else n endend

(1..100).each {|n| puts fizzbuzz(n)}

Page 39: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

def fizzbuzz(n) if (n % 15).zero? "FizzBuzz" elsif (n % 5).zero? "Buzz" elsif (n % 3).zero? "Fizz" else n endend

(1..100).each {|n| puts fizzbuzz(n)}

Page 40: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

def fizzbuzz(n) if (n % 15).zero? "FizzBuzz" elsif (n % 5).zero? "Buzz" elsif (n % 3).zero? "Fizz" else n endend

(1..100).each {|n| puts fizzbuzz(n)}

Page 41: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

def fizzbuzz(n) if (n % 15).zero? "FizzBuzz" elsif (n % 5).zero? "Buzz" elsif (n % 3).zero? "Fizz" else n endend

(1..100).each {|n| puts fizzbuzz(n)}

Page 42: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

def fizzbuzz(n) if (n % 15).zero? "FizzBuzz" elsif (n % 5).zero? "Buzz" elsif (n % 3).zero? "Fizz" else n endend

(1..100).each {|n| puts fizzbuzz(n)}

Page 43: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Name:Popular Rubyists:

Known for:

Self-assessment:

CrystalErik Berlin, Piotr Szotkowski, Fabio Akita Ruby-like, Performance, Type Inference Fast as C, slick as Ruby

Page 44: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

def fizzbuzz(n) if (n % 15).zero? "FizzBuzz" elsif (n % 5).zero? "Buzz" elsif (n % 3).zero? "Fizz" else n endend

(1..100).each {|n| puts fizzbuzz(n)}

Page 45: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

def fizzbuzz(n) if (n % 15).zero? "FizzBuzz" elsif (n % 5).zero? "Buzz" elsif (n % 3).zero? "Fizz" else n endend

(1..100).each {|n| puts fizzbuzz(n)}

cp fizzbuzz.rb fizzbuzz.cr

Page 46: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Name:Popular Rubyists:

Known for:

Self-assessment:

ElixirJosé Valim, Dave Thomas,Xavier NoriaErlang VM, Actors, Functional,Phoenixdynamic, functional language designed for building scalable and maintainable applications.

Page 47: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

defmodule FizzBuzz do def fizzbuzz(n) when rem(n, 15) == 0, do: "FizzBuzz" def fizzbuzz(n) when rem(n, 5) == 0, do: "Buzz" def fizzbuzz(n) when rem(n, 3) == 0, do: "Fizz" def fizzbuzz(n), do: nend

Enum.each(1..100, fn i -> IO.puts(FizzBuzz.fizzbuzz(i)) end)

Page 48: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

defmodule FizzBuzz do def fizzbuzz(n) when rem(n, 15) == 0, do: "FizzBuzz" def fizzbuzz(n) when rem(n, 5) == 0, do: "Buzz" def fizzbuzz(n) when rem(n, 3) == 0, do: "Fizz" def fizzbuzz(n), do: nend

Enum.each(1..100, fn i -> IO.puts(FizzBuzz.fizzbuzz(i)) end)

Page 49: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Name:Popular Rubyists:Known for:Self-assessment:

HaskellChad FowlerType System, Monads, PureAn advanced, purely functional programming language.

Page 50: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

main = mapM_ (putStrLn . fizzbuzz) [1..100]

fizzbuzz x | x `mod` 15 == 0 = "FizzBuzz" | x `mod` 3 == 0 = "Fizz" | x `mod` 5 == 0 = "Buzz" | otherwise = show x

Page 51: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

main = mapM_ (putStrLn . fizzbuzz) [1..100]

fizzbuzz x | x `mod` 15 == 0 = "FizzBuzz" | x `mod` 3 == 0 = "Fizz" | x `mod` 5 == 0 = "Buzz" | otherwise = show x

Page 52: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

main = mapM_ (putStrLn . fizzbuzz) [1..100]

fizzbuzz x | x `mod` 15 == 0 = "FizzBuzz" | x `mod` 3 == 0 = "Fizz" | x `mod` 5 == 0 = "Buzz" | otherwise = show x

Page 53: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Name:Popular Rubyists:Known for:

Self-assessment:

GoKatrina Owen, Evan PhoenixGoroutines, Simple, No Exceptions, No Genericsopen source programming language that makes it easy to build simple, reliable, and efficient software.

Page 54: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

package main

import "fmt"import "strconv"

func FizzBuzz(i int) string {switch {case i%15 == 0:

return "FizzBuzz"case i%3 == 0:

return "Fizz"case i%5 == 0:

return "Buzz"default:

return strconv.Itoa(i)}

}

func main() {for i := 1; i <= 100; i++ {

fmt.Println(FizzBuzz(i))}

}

Page 55: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

package main

import "fmt"import "strconv"

func FizzBuzz(i int) string {switch {case i%15 == 0:

return "FizzBuzz"case i%3 == 0:

return "Fizz"case i%5 == 0:

return "Buzz"default:

return strconv.Itoa(i)}

}

func main() {for i := 1; i <= 100; i++ {

fmt.Println(FizzBuzz(i))}

}

Page 56: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

package main

import "fmt"import "strconv"

func FizzBuzz(i int) string {switch {case i%15 == 0:

return "FizzBuzz"case i%3 == 0:

return "Fizz"case i%5 == 0:

return "Buzz"default:

return strconv.Itoa(i)}

}

func main() {for i := 1; i <= 100; i++ {

fmt.Println(FizzBuzz(i))}

}

Page 57: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Name:Popular Rubyists:

Known for:

Self-assessment:

RustSteve Klabnik,Yehuda Katz, Sean GriffinMemory Management, Compiler, Firefox Quantuma systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.

Page 58: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

fn main() { (1..101).for_each(|n| println!("{}", fizzbuzz(n)))}

fn fizzbuzz(n: i32) -> String { match (n % 3, n % 5) { (0, 0) => "FizzBuzz".to_string(), (0, _) => "Fizz".to_string(), (_, 0) => "Buzz".to_string(), _ => n.to_string(), }}

Page 59: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

fn main() { (1..101).for_each(|n| println!("{}", fizzbuzz(n)))}

fn fizzbuzz(n: i32) -> String { match (n % 3, n % 5) { (0, 0) => "FizzBuzz".to_string(), (0, _) => "Fizz".to_string(), (_, 0) => "Buzz".to_string(), _ => n.to_string(), }}

Page 60: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

fn main() { (1..101).for_each(|n| println!("{}", fizzbuzz(n)))}

fn fizzbuzz(n: i32) -> String { match (n % 3, n % 5) { (0, 0) => "FizzBuzz".to_string(), (0, _) => "Fizz".to_string(), (_, 0) => "Buzz".to_string(), _ => n.to_string(), }}

Page 61: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Name:Popular Rubyists:Known for:Self-assessment:

JavaScriptYehuda Katz, Jeremy AshkenasQuirks, Async, Compile to a lightweight interpreted or JIT-compiled programming language with first-class functions.

Page 62: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

const fizzBuzz = n => { if (n % 15 === 0) { return "FizzBuzz"; } else if (n % 3 === 0) { return "Fizz"; } else if (n % 5 === 0) { return "Buzz"; } else { return n; }};

for (let n = 1; n <= 100; n += 1) { console.log(fizzBuzz(n));}

Page 63: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

const fizzBuzz = n => { if (n % 15 === 0) { return "FizzBuzz"; } else if (n % 3 === 0) { return "Fizz"; } else if (n % 5 === 0) { return "Buzz"; } else { return n; }};

for (let n = 1; n <= 100; n += 1) { console.log(fizzBuzz(n));}

Page 64: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

const fizzBuzz = n => { if (n % 15 === 0) { return "FizzBuzz"; } else if (n % 3 === 0) { return "Fizz"; } else if (n % 5 === 0) { return "Buzz"; } else { return n; }};

for (let n = 1; n <= 100; n += 1) { console.log(fizzBuzz(n));}

Page 65: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Name:Popular Rubyists:

Known for:Self-assessment:

ClojureRuss Olsen, BozhidarBatsov, Arne BrasseurRich Hickey, Lisp, JVM, ()a robust, practical, and fast programming language with a set of useful features that together form a simple, coherent, and powerful tool.

Page 66: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

(defn fizzbuzz [n] (cond (zero? (mod n 15)) "FizzBuzz" (zero? (mod n 3)) "Fizz" (zero? (mod n 5)) "Buzz" :else n))

(run! println (map fizzbuzz (range 1 101)))

Page 67: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

(defn fizzbuzz [n] (cond (zero? (mod n 15)) "FizzBuzz" (zero? (mod n 3)) "Fizz" (zero? (mod n 5)) "Buzz" :else n))

(run! println (map fizzbuzz (range 1 101)))

Page 68: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

(defn fizzbuzz [n] (cond (zero? (mod n 15)) "FizzBuzz" (zero? (mod n 3)) "Fizz" (zero? (mod n 5)) "Buzz" :else n))

(run! println (map fizzbuzz (range 1 101)))

Page 69: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

What you got?

Page 70: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Paradigm

Page 71: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Procedural ProceduralFunctional

FunctionalProcedural

Functional

Object Object Functional Functional

Page 72: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Parallelism

Page 73: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Parallelism vs Concurrency

Page 74: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

YesGoroutines +

channelsYes

AgnosticYes/No

Webworkers+Yes

STM, pmap,Transducers

Concurrent Concurrent YesActors

YesMvar, par,

STM

Page 75: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Performance!

Page 76: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Type System

Page 77: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

StaticInferred

StaticInferred

DynamicOptional

Inferred++

DynamicOptional

Inferred++

Dynamic StaticInferred++

DynamicOptional

Inferred++Static

Inferred++

Page 78: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Compiledvs

Interpreted

Page 79: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Compiled Compiled Interpreted Compiled

Interpreted Compiled Compiled Compiled

Page 80: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Self-hosted

Page 81: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Show me your code

Page 82: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Yes Yes No No

No Yes Yes Yes

Page 83: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Garbage-Collection

Page 84: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Yes No Yes Yes

Yes Yes Yes Yes

Page 85: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Single File Distribution

Page 86: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Yes Yes No No

No Yes Yes Yes

Page 87: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Ruby-likeSyntax

Page 88: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

No No No No

Yes Yes Yes No

Page 89: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all
Page 90: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Parallel

Page 91: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Parallel

Typing

Page 92: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Parallel

Typing

Fast

Page 93: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

So, what?

Page 94: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Expand Your Mind

Page 95: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

“Ruby's OO model was brain-expanding, and I was seeking more brain-expanding paradigms that would let me think entirely new thoughts.”

Why did you learn a new language?

Page 96: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Joy

Page 97: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Domain

Page 98: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Tools

Page 99: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Where doesRuby go?

Page 100: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

“Rails is strangling Ruby. In the same way that you don't quit because of a bad company, you quit because of a bad boss.”

Page 101: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Where doesRuby go?

Page 102: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Parallel

Typing

Fast

Page 103: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

“Ruby is the best language I have used over my 30 years programming. I hope Ruby 3 puts an end to the Ruby is slow meme once and for all.”

Page 104: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

“I really like Ruby for what it is, and don't think 'adding a type system' or something is the best way to keep Ruby relevant. Don't morph Ruby in to something it's not.”

Page 105: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

We’re all great!

Page 106: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Explore some new lands!

Page 107: All alone - · PDF fileLook at all these toys! Help – it’s Ruby! All alone. Is Ruby dying? Where do Rubyists go? Where do Rubyists go? Tobias Pfeiffer @PragTob ... We’re all

Enjoy Coding & Learning in whatever language...

Tobias Pfeiffer@PragTob

pragtob.info