Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Volt: Ruby Web Development Recharged

Volt: Ruby Web Development Recharged

Slide deck from my talk at the BulgariaWebSummit 2015.

Bozhidar Batsov

April 18, 2015
Tweet

More Decks by Bozhidar Batsov

Other Decks in Programming

Transcript

  1. 0 25 50 75 100 1999 2000 2001 2002 2003

    2004 2005 2006 2007 2009 2011 2015
  2. Web development (2013) Model View Controller Routing Server Client AJAX

    REST Model View Controller Routing Assets Assets
  3. Web development (2015) Model View Controller Routing Server Client AJAX

    REST Model View Controller Routing Assets Assets Shared Auto Sync
  4. Ruby’s advantages Does’t have this Sane nil semantics No need

    for a book called “Ruby: The Good Parts” Standard library Do you really need more?
  5. /* Generated by Opal 0.7.0 */ (function(Opal) { Opal.dynamic_require_severity =

    "error"; var self = Opal.top, $scope = Opal, nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; Opal.add_stubs(['$puts', '$capitalize', '$hello']); Opal.Object.$$proto.$hello = function(name) { var self = this; return self.$puts("Hello, " + (name.$capitalize()) + "!"); }; return self.$hello("bruce"); })(Opal);
  6. Ruby compatibility Mostly compatible with Ruby 2.0 Implements most of

    the Ruby stdlib Has immutable strings (unlike Ruby)
  7. <:Body> <h1>Todo List</h1> <form e-submit="add_todo" role="form"> <div class="form-group"> <label>Todo</label> <input

    class="form-control" type="text" value="{{ page._new_todo }}" /> </div> </form>
  8. <:Body> <h1>Todo List</h1> <table class="todo-table"> {{ page._todos.each do |todo| }}

    <tr> <td>{{ todo._name }}</td> </tr> {{ end }} </table>
  9. Volt’s not perfect Opal isn’t quite there yet MongoDB is

    the only supported datastore Many features are work in progress The documentation is kind of lacking
  10. 0 25 50 75 100 1998 1999 2000 2001 2002

    2003 2004 2005 2006 2009 2011 2015
  11. 0 25 50 75 100 1998 1999 2000 2001 2002

    2003 2004 2005 2006 2009 2011 2015 2016