Slide 1

Slide 1 text

Lotus Brighton Ruby 2015 @jodosha / #lotusrb

Slide 2

Slide 2 text

The future of Ruby

Slide 3

Slide 3 text

New good languages at the horizon

Slide 4

Slide 4 text

The future is polyglot

Slide 5

Slide 5 text

Ruby has no (real) plans for the future

Slide 6

Slide 6 text

We should welcome new engineers

Slide 7

Slide 7 text

We need to define a good selling feature

Slide 8

Slide 8 text

Rails doesn’t have a Community agenda

Slide 9

Slide 9 text

Flat MVC Eternal productivity Dependency hell

Slide 10

Slide 10 text

Lotus

Slide 11

Slide 11 text

Code Scalability

Slide 12

Slide 12 text

From small HTTP endpoints..

Slide 13

Slide 13 text

require 'bundler/setup' require 'lotus/router' run Lotus::Router.new { get '/', to: ->(env) { [200,{},['Hi']] } }

Slide 14

Slide 14 text

..to multiple apps in the same Ruby process

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Modular First ™

Slide 18

Slide 18 text

Lotus focuses on maintenance

Slide 19

Slide 19 text

Explicit is better than magic

Slide 20

Slide 20 text

Eat Your Veggies Driven Development ™

Slide 21

Slide 21 text

EYVDD ™

Slide 22

Slide 22 text

0 17,5 35 52,5 70 Ruby Rack Sinatra Lotus Rails Dependencies Memory

Slide 23

Slide 23 text

Features • 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 • 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 24

Slide 24 text

Future plans

Slide 25

Slide 25 text

Lotus v0.5.0 - Sep 23 • WebSocket • Associations • Mailers • Experimental code reloading • Assets

Slide 26

Slide 26 text

”Today’s good practices are HTTP/2 anti patterns” Ilya Grigorik

Slide 27

Slide 27 text

Experimental HTTP/2 support

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

GitHub: jodosha/panther jodosha/instants

Slide 31

Slide 31 text

http://lotusrb.org

Slide 32

Slide 32 text

Thank you

Slide 33

Slide 33 text

Credits Ruby picture by Orbital Joe https://flic.kr/p/79UqQM