Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Lotus & The Future Of Ruby @jodosha / #lotusrb
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
The future of Ruby
Slide 7
Slide 7 text
Will Ruby die?
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
Programming Languages Rank 0% 0,75% 1,5% 2,25% 3% Ruby Erlang Haskell Go Rust Elixir Clojure Source: TIOBE
Slide 11
Slide 11 text
Let’s imagine the future
Slide 12
Slide 12 text
The future is polyglot
Slide 13
Slide 13 text
Modern system languages are more developer friendly than C/C++
Slide 14
Slide 14 text
Maintenance costs for infrastructure will be less and less relevant
Slide 15
Slide 15 text
Ruby isn’t used anymore for components that require improved performances
Slide 16
Slide 16 text
Web applications will still use Ruby
Slide 17
Slide 17 text
Ruby is here to stay
Slide 18
Slide 18 text
Ruby is desperately trying to catch these new languages’ features, but this is a mistake
Slide 19
Slide 19 text
“We can’t make promises” - Matz
Slide 20
Slide 20 text
We need to find a new sense of purpose for Ruby
Slide 21
Slide 21 text
Ruby has to become the first-class solution for a well defined set of problems
Slide 22
Slide 22 text
Let’s have a look at the present
Slide 23
Slide 23 text
Homebrew
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
Thanks to a beautiful DSL, Homebrew has become a successful project with ~4000 formulæ
Slide 27
Slide 27 text
ORMs
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
Sonic Pi
Slide 30
Slide 30 text
No content
Slide 31
Slide 31 text
Thanks to its expressiveness, Ruby can build bridges that reach complex systems
Slide 32
Slide 32 text
Docker uses raw BASH commands
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
MRuby
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
Let’s talk about humans
Slide 37
Slide 37 text
Like a natural language, a programming language is dead without people using it
Slide 38
Slide 38 text
Kids creating music with Sonic PI Credit: sonic-pi.net
Slide 39
Slide 39 text
Kids playing with “Hello Ruby” Credit: helloruby.com
Slide 40
Slide 40 text
People learning Ruby & web development Credit: railsgirls.com
Slide 41
Slide 41 text
Ruby can be an entry point for life changing careers
Slide 42
Slide 42 text
I hope that the Ruby Community of the future will be a safe place where everyone can feel welcome
Slide 43
Slide 43 text
We should improve Ruby ecosystem in order to attract experienced engineers from other languages
Slide 44
Slide 44 text
Web
Slide 45
Slide 45 text
Why not Rails?
Slide 46
Slide 46 text
No content
Slide 47
Slide 47 text
No content
Slide 48
Slide 48 text
No content
Slide 49
Slide 49 text
Lotus Philosophy
Slide 50
Slide 50 text
Lightweight
Slide 51
Slide 51 text
Features as of v0.5.0 • Thread-safety • Full featured HTTP router • RESTful resources • Actions and views as objects • Actions callbacks • Code sharing • Exception handling • Sessions • Secure Cookies • HTTP Caching • Automatic MIME Types • 20+ Template engines • Partials and layouts • Presenters • Routing helpers • Form helpers • HTML helpers • Automatic markup escape • CSRF and XSS prevention • Force SSL • Entities • Repositories • Data Mapper • SQL and Memory adapters • Dirty Tracking • Reusable validations • Mailers • Multiple environments • Static assets • JSON body parser • Params whitelisting and validation • Code generators • Rack servers support • Application console • Database console • Powerful CLI • Migrations • RSpec, Minitest and Capybara support • Several architectures • And more..
Slide 52
Slide 52 text
0 17,5 35 52,5 70 Ruby Rack Sinatra Lotus Rails Dependencies Memory
Slide 53
Slide 53 text
On average, we use only a fraction of the features that a gem provides.
Slide 54
Slide 54 text
Lotus depends on a few gems. You can be sure that all the loaded code is useful for your application.
Slide 55
Slide 55 text
A complete framework
Slide 56
Slide 56 text
Lotus goes beyond “Flat-MVC” by providing a set of collaborators for “Full-MVC”.
Slide 57
Slide 57 text
Future plans
Slide 58
Slide 58 text
Lotus::Assets • Helpers • Third Party Gems • Preprocessors • Deployment
Slide 59
Slide 59 text
“Today’s good practices are HTTP/2 antipatterns” - Ilya Grigorik
Slide 60
Slide 60 text
Experimental HTTP/2 support
Slide 61
Slide 61 text
No content
Slide 62
Slide 62 text
No content
Slide 63
Slide 63 text
GitHub: jodosha/panther jodosha/instants
Slide 64
Slide 64 text
http://lotusrb.org/hackday
Slide 65
Slide 65 text
http://lotusrb.org/mailing-list Subscribe to the mailing list at:
Slide 66
Slide 66 text
http://lotusrb.org
Slide 67
Slide 67 text
http://lucaguidi.com
Slide 68
Slide 68 text
Q&A
Slide 69
Slide 69 text
https://speakerdeck.com/jodosha/ lotus-rubyday-2015 Slides available at:
Slide 70
Slide 70 text
Thank you
Slide 71
Slide 71 text
Credits Ruby picture by Orbital Joe https://flic.kr/p/79UqQM