25
Yugui project Rottenmeier The plan and worth of Ruby 1.9 1 2008119日日曜日

The plan and worth of Ruby 1.9

Embed Size (px)

Citation preview

Page 1: The plan and worth of Ruby 1.9

Yuguiproject Rottenmeier

The plan and worth of Ruby 1.9

12008年11月9日日曜日

Page 2: The plan and worth of Ruby 1.9

Self introduction

Yugui

The release manager of Ruby 1.9 series

“Hajimete-no Ruby” (ISBN:978-4-87311-367-8)

22008年11月9日日曜日

Page 3: The plan and worth of Ruby 1.9

Hajimete-no Ruby

O’Reilly Japan

32008年11月9日日曜日

Page 4: The plan and worth of Ruby 1.9

Agenda

What is Ruby 1.9

How we develops it

When to migrate your programs

How to migrate your programs

42008年11月9日日曜日

Page 5: The plan and worth of Ruby 1.9

What is Ruby 1.9

The next generation Ruby?

1.8 series - major

1.9 series - step

2.0 series - ideal

52008年11月9日日曜日

Page 6: The plan and worth of Ruby 1.9

Versioning Scheme

62008年11月9日日曜日

Page 7: The plan and worth of Ruby 1.9

Ruby 1.9Virtual machine - bytecode compiler

Native threads and fibers

Multilingualization

Improvement of the syntax

Restructuring libraries, and RubyGems

72008年11月9日日曜日

Page 8: The plan and worth of Ruby 1.9

What happened?many evaluators - HotRuby, unholy

Neverblock, shooting games?

processing non European languages - no mojibake

easier to learn?

clean standard libraries

82008年11月9日日曜日

Page 9: The plan and worth of Ruby 1.9

Virtual machine

called “YARV - Yet Another Ruby VM”

faster

bytecode level portability

“.class file”?

92008年11月9日日曜日

Page 10: The plan and worth of Ruby 1.9

Native thread

light weight switching

heavy to create

giant lock

102008年11月9日日曜日

Page 11: The plan and worth of Ruby 1.9

Fiber

semi-coroutine

non pre-emptive user-level thread

Neverblock - prevent DB adapter from blocking

event driven libraries

112008年11月9日日曜日

Page 12: The plan and worth of Ruby 1.9

MultilingualizationString#encoding, Symbol, Regexp

Character literals

IO#external_encoding, IO#internal_encoding

default_external, default_internal

122008年11月9日日曜日

Page 13: The plan and worth of Ruby 1.9

String

“あいうえお”.length #=> 5

“あいうえお”.bytesize #=> 15

“あいうえお”.encoding #=> #<Encoding:UTF-8>

132008年11月9日日曜日

Page 14: The plan and worth of Ruby 1.9

Character literals

?a #=> “a”?あ #=> “あ”?அ #=> “அ”

142008年11月9日日曜日

Page 15: The plan and worth of Ruby 1.9

external/internalFile.open(“/path/to/file”, “r:EUC-JP”) {|f| f.read.encoding #=> #<Encoding:EUC-JP>}

File.open(“/path/to/file”, “r:EUC-JP:CP932”) {|f| f.read.encoding #=> #<Encoding:Windows-31J>}

152008年11月9日日曜日

Page 16: The plan and worth of Ruby 1.9

default_internal / default_external

magic comments

# -*- encoding: CP932 -*-

162008年11月9日日曜日

Page 17: The plan and worth of Ruby 1.9

Ruby 1.9 on RailsPerformance improvement?

multiple VM?

eval hell

collision!

172008年11月9日日曜日

Page 18: The plan and worth of Ruby 1.9

Release schedule

1.9.1 preview 2 2008-11-25

1.9.1 release candidate 2008-12-25

1.9.1 - 2009-01-25

1.9.2 - 2010?compatibility?

182008年11月9日日曜日

Page 19: The plan and worth of Ruby 1.9

Release managementsupport levels

maintainers

feature freeze

cool down phase

issue tracker

192008年11月9日日曜日

Page 20: The plan and worth of Ruby 1.9

Support levels

Supported - perfect

Best effort - enough to use

Perhaps - ??

Not supported - ????

202008年11月9日日曜日

Page 21: The plan and worth of Ruby 1.9

Issue tracker

Redmine

Rails

http://redmine.ruby-lang.org

212008年11月9日日曜日

Page 22: The plan and worth of Ruby 1.9

When to use 1.9

stability

1.8 based programs

libraries

step to 2.0

222008年11月9日日曜日

Page 23: The plan and worth of Ruby 1.9

How to migrate

magic comment

syntax errors / block parameters, block locals

encoding

(multilingualization)

232008年11月9日日曜日

Page 24: The plan and worth of Ruby 1.9

Conclusion

modern, faster, more useful Ruby

will be more stable

try it out!

242008年11月9日日曜日

Page 25: The plan and worth of Ruby 1.9

THANK YOU

252008年11月9日日曜日