26
www.af83.com af83 France 15 rue poissonnière, 75002 Paris +33 1 42 72 33 32 [email protected] af83 USA 1436 A Howard St. CA 94103 San Francisco United States Ruby 1.9 The Future of Ruby? Bruno Michel RMLL, Bordeaux, 07/08/2010

The Future of Ruby

  • Upload
    af83

  • View
    568

  • Download
    1

Embed Size (px)

Citation preview

Page 1: The Future of Ruby

www.af83.com

af83 France15 rue poissonnière, 75002 Paris+33 1 42 72 33 [email protected]

af83 USA1436 A Howard St. CA 94103 San FranciscoUnited States

Ruby 1.9The Future of Ruby?

Bruno MichelRMLL, Bordeaux, 07/08/2010

Page 2: The Future of Ruby

2Copyright © 2010 af83 All Rights Reserved

Introduction

Bruno MichelLead Developer R&D at af83

As Lead Developer R&D at af83, a significant part of Bruno's work is to test, create and contribute to cutting edge Web technologies, which allows him to anticipate the most promising open source projects. He is also the maintainer of numerous Web-centric projects based on Ruby.

Active Member of the French Ruby Association, Bruno is also one of the webmasters of LinuxFr.org.

http://github.com/nonohttp://twitter.com/brmichelhttp://blog.menfin.info/

Page 3: The Future of Ruby

3Copyright © 2010 af83 All Rights Reserved

FuturePresentOrigin

Agenda

Page 4: The Future of Ruby

4Copyright © 2010 af83 All Rights Reserved

The Origin

FuturePresentOrigin

Page 5: The Future of Ruby

5Copyright © 2010 af83 All Rights Reserved

Yukihiro Matsumoto (aka Matz)

First version in 1995

Inspired by LISP, Perl, Smalltalk, Eiffel...

Object-oriented

Dynamic typing

FuturePresentOrigin

The Origin

Page 6: The Future of Ruby

6Copyright © 2010 af83 All Rights Reserved

Emphasizes human, rather than computer, needs

Principle Of Least Astonishment (POLA)

Programmer productivity & fun

Specificities

FuturePresentOrigin

Page 7: The Future of Ruby

7Copyright © 2010 af83 All Rights Reserved

Script / Imperative

FuturePresentOrigin

Page 8: The Future of Ruby

8Copyright © 2010 af83 All Rights Reserved

Object

FuturePresentOrigin

Page 9: The Future of Ruby

9Copyright © 2010 af83 All Rights Reserved

Functional

FuturePresentOrigin

Page 10: The Future of Ruby

10Copyright © 2010 af83 All Rights Reserved

Present

FuturePresentOrigin

Page 11: The Future of Ruby

11Copyright © 2010 af83 All Rights Reserved

New Version

Ruby 1.8Currently 1.8.7

Stable, works fine

But slow

FuturePresentOrigin

Page 12: The Future of Ruby

12Copyright © 2010 af83 All Rights Reserved

YARV

Yet Another Ruby VMA new implementation of Ruby

by Koichi Sasada (aka ko1n)

2005 and 2006 : unofficial project

1st January 2007 : the new official Ruby 1.9

FuturePresentOrigin

Page 13: The Future of Ruby

13Copyright © 2010 af83 All Rights Reserved

Versions

25th December 2007 : 1.9.0

A milestone

Not ready for main usage

30th January 2009 : 1.9.1

Claimed as stable

But a lot of bugs (segfaults)

Many libs not ported to Ruby 1.9

Last week : 1.9.2-rc

In one month : 1.9.2

Should be the good one

FuturePresentOrigin

Page 14: The Future of Ruby

14Copyright © 2010 af83 All Rights Reserved

What's New

Performance

Ruby 1.9 is 3x to 5x faster than Ruby 1.8

It depends of the benchmarks

FuturePresentOrigin

Page 15: The Future of Ruby

15Copyright © 2010 af83 All Rights Reserved

What's New

EncodingFuturePresentOrigin

Page 16: The Future of Ruby

16Copyright © 2010 af83 All Rights Reserved

What's New

FibersFuturePresentOrigin

Page 17: The Future of Ruby

17Copyright © 2010 af83 All Rights Reserved

What's New

Hash Improved

Hash are now ordered

New syntax for hash

FuturePresentOrigin

Page 18: The Future of Ruby

18Copyright © 2010 af83 All Rights Reserved

What's New

Integration of some popular libs:

● Rubygems

● JSON

Many new methods on the basic classes

FuturePresentOrigin

Page 19: The Future of Ruby

19Copyright © 2010 af83 All Rights Reserved

Present

FuturePresentOrigin

Page 20: The Future of Ruby

20Copyright © 2010 af83 All Rights Reserved

Other Rubies

● Rubinius

● Ruby

● IronRuby

● MacRuby

● etc.

FuturePresentOrigin

Page 21: The Future of Ruby

21Copyright © 2010 af83 All Rights Reserved

RVM

Ruby Version Manager● A shell script, minimal dependencies

● Multiple rubies in the same environment

● Takes care of the gems

● rvm install 1.9.2

● rvm use 1.9.2

FuturePresentOrigin

Page 22: The Future of Ruby

22Copyright © 2010 af83 All Rights Reserved

And after?

● Performance

● Multiple VM

● Nice features

● Selector namespaces

● Traits

● More functional

● Lazy evaluation

FuturePresentOrigin Ruby 2.0

Page 23: The Future of Ruby

23Copyright © 2010 af83 All Rights Reserved

Even after?

● And after?

● Ruby 2.0

● But it's a myth!

FuturePresentOrigin

Page 24: The Future of Ruby

24Copyright © 2010 af83 All Rights Reserved

Present

FuturePresentOrigin

Ruby 1.8.7 RVM

Future: Ruby 1.9 (or maybe an alternative implementation)

Ruby 1.9

(or maybe an alternative

implementation)

Page 25: The Future of Ruby

25Copyright © 2010 af83 All Rights Reserved

Questions?

Page 26: The Future of Ruby

www.af83.com

af83 France15 rue poissonnière, 75002 Paris

+33 1 42 72 33 [email protected]

af83 USA1436 A Howard St.

CA 94103 San FranciscoUnited States