ironruby

39
IronRuby Twitter - @Ben_Hall Blog.BenHall.me.uk [email protected]

Upload: ben-hall

Post on 12-Jan-2015

2.160 views

Category:

Technology


0 download

DESCRIPTION

IronRuby presentation for VistaSquad on 15th July 2009.Video of presentation can be found on my blog @ blog.benhall.me.uk

TRANSCRIPT

Page 1: IronRuby

IronRuby

Twitter - @[email protected]

Page 2: IronRuby

TELL YOU WHY YOU SHOULD CARE

Page 3: IronRuby

WPFPowershellC#Ruby

Page 4: IronRuby

REASON #1

Page 5: IronRuby
Page 6: IronRuby

Dynamic Language Runtime

http://www.flickr.com/photos/lastrounds/3199561205/sizes/o/

Page 7: IronRuby

IronPython

Page 8: IronRuby
Page 9: IronRuby

IronRuby

DLR

CLR

IronPython ?

Page 10: IronRuby

IronSmallTalkGary Short

Page 11: IronRuby

REASON #2

Page 12: IronRuby

http://www.flickr.com/photos/mag3737/1914076277/

Page 13: IronRuby

MS-PL

http://www.flickr.com/photos/25501212@N05/2934269081/

Page 14: IronRuby
Page 15: IronRuby

REASON #3

Page 16: IronRuby

RUBY, RUBY, RUBY, Ruby...

Page 17: IronRuby

Optional Syntax

puts ‘Hello World’

puts(‘Hello World’)puts(‘Hello World’);

Page 18: IronRuby

Simple declarations

x = 1

Page 19: IronRuby

Natural Programming

x = [1,2,3]y = [4,5,6]

x + y == [1,2,3,4,5,6]

Page 20: IronRuby

Everything is an object

“Hello World”.upcase

[5,3,4,1,6].sort

10.times { }

Page 21: IronRuby

Blocks

10.times do |i| puts iend

10.times { |i| puts i }

Page 22: IronRuby

Duck Typing

def print_name(obj) puts obj.get_nameend

http://www.flickr.com/photos/normis/337183421/

Page 23: IronRuby

Duck Typing

class A def get_name “My name is A” endend

Page 24: IronRuby

Duck Typing

class Q def get_name “My name is Q” endend

Page 25: IronRuby

Duck Typing

print_name A.newprint_name(Q.new)

Page 26: IronRuby

Libraries

require ‘rake’

Page 27: IronRuby

RubyGems

gem install rake

Successfully installed rake-0.8.41 gem installedInstalling ri documentation for rake-0.8.4...Installing RDoc documentation for rake-0.8.4...

Page 28: IronRuby

REASON #4

Page 29: IronRuby

http://www.flickr.com/photos/mendhak/2117622450/sizes/o/

.Net Interop

Page 30: IronRuby

REASON #5

Page 31: IronRuby
Page 32: IronRuby

REASON #6

Page 33: IronRuby

1. String code = “puts ‘Hello World’”2. Engine = IronRuby.Ruby.CreateEngine();3. Scope = Engine.CreateScope();4. ScriptSource source =

Engine.CreateScriptSourceFromString(code, SourceCodeKind.Statements);

5. object result = source.Execute(Scope);

Page 34: IronRuby

Data Gen Screenshot

Page 35: IronRuby

Reflector Screenshot

Page 36: IronRuby

Resolver Systems

Page 37: IronRuby

change

How will IronRuby

your world?

Page 38: IronRuby

Thank you!

Twitter - @Ben_HallBlog.BenHall.me.uk

[email protected]

Page 39: IronRuby

Links

• http://www.codeplex.com/dlr• http://www.codeplex.com/Ironruby• http://www.codeplex.com/ironpython• http://blog.benhall.me.uk/2009/04/embedding-ironruby-and-

dlr-into-red.html• http://msdn.microsoft.com/en-us/magazine/dd434651.aspx• http://msdn.microsoft.com/en-us/magazine/dd453038.aspx• http://www.resolversystems.com• http://www.manning.com/foord/