Microsoft Hellas Dev Days 09: IronRuby
Upcoming SlideShare
Loading in...5
×
 

Microsoft Hellas Dev Days 09: IronRuby

on

  • 1,670 views

 

Statistics

Views

Total Views
1,670
Views on SlideShare
1,667
Embed Views
3

Actions

Likes
1
Downloads
6
Comments
0

1 Embed 3

http://www.linkedin.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Microsoft Hellas Dev Days 09: IronRuby Microsoft Hellas Dev Days 09: IronRuby Presentation Transcript

  • The .Net Ruby VM
    Nikos Dimitrakopoulos
    Dec 2009
  • Me
    Software developer
    Pamediakopes.gr (now)
    Rento.gr (past)
    Individually (past + now)
    Bachelor in Telecommunications (main emphasis on web) from University of Peloponnese
    Programming experience:
    Ruby
    C#
    JavaScript
    Java, Objective-C, …
    1
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • Pamediakopes.gr
    Travel agency
    Airtickets
    Hotels
    Ferry Tickets
    Car rentals

    Travel agency. But:
    Fully electronic
    Fully automated (ok, almost…)
    A software house
    Tools of the trade:
    C#, SQL, ASP.Net, JavaScript
    plus a million different technologies for internal stuff (ruby, python, c, …)
    2
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    View slide
  • Scope
    Do the laundry
    Sys-admin
    Do small but amazingly repetitive tasks
    Prototype – fast!
    Don’t reinvent the wheel!
    Combine 2, 3 or 10s of different software ecosystems!
    Testing
    Unit
    Functional
    Integration
    Easier/less time consuming than C# with NUnit (for example)
    3
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    View slide
  • So?
    Ruby is amazingly good for:
    Sys-admin scripts
    Implementing simple (and not so simple) libraries
    Rapid prototyping
    Rails
    Sinatra

    Reusing code
    Strong community & ecosystem after 2004 (Rails)
    Almost everything is Open Source
    4
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • Ruby
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    5
    A fully Object-Oriented Language
    Everything is an object
    Functional Paradigm
    Lambdas / procs
    map(), each(), inject()
    Fully Dynamic
    Interpreted
    Dynamically typed
    Totally extensible (even core classes)
  • Ruby
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    6
    Cross platform
    Open source
    Multiple VMs
    Vanilla Ruby (MRI, aka Matz’s Original Interpreter)
    Runs on all platforms
    C bindings
    JRuby (On JVM, aka the Java Virtual Machine)
    Runs where Java Runs
    Java bindings
    MacRuby (On Mac OS X)
    Runs on Mac OS X
    Objective-C & Cocoa bindings
  • Ruby
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    7
    Origins in Japan
    Zen is everywhere in the language
    Simple
    Effective
    “No-fluff”
  • Demo!
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    8
  • Famous quotes
    It doesn’t scale
    It’s slow
    It’s immature
    Not enterprise

    9
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • But
    jRuby
    MacRuby
    Rubinius
    MagLev
    IronRuby
    10
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • 11
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    IronRuby
  • 12
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • What is IronRuby
    An alternative Ruby VM
    Implemented on top of the DLR
    Tight integration with .Net
    Part of the “Iron” languages implemented in .Net
    Python
    Ruby
    LISP

    13
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • A Ruby VM
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    14
    Ruby interpreter (compliant with v 1.8.6)
    Faster than vanilla MRI Ruby (usually)
    Standard tools included:
    Console (irb)
    Libraries (rubygems)
    Documentation (ri / RDoc)
  • .Net Integration
    Interoperability with .Net
    Consume all the C# code you want!
    The huge .Net library ecosystem
    External .Net libraries
    Custom / existing C# code
    15
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • Additionally
    “Translations” of idioms:
    object.SomeMethod() <-> object.some_method
    System.Core <-> System::Core
    C# lambdas and delegates <-> Ruby clojures
    >>> l = System::Byte.instance_methods(false).last
    => 'get_type_code'
    >>> l.ruby_name
    => "get_type_code"
    >>> l.clr_name
    => "GetTypeCode"
    16
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • # Demo
    17
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • .Net Integration
    Test .Net code with Cucumber & RSpec!
    18
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • # Demo
    19
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • .Net Integration
    Extend existing .Net classes the ruby way!
    20
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • .Net Integration
    Call ruby code from .Net!
    21
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • # Demo
    22
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • .Net Integration
    Deploy on .Net infrastructure
    Web apps on IIS (Rails on .Net!)
    Consume Azure services!
    Use .Net services
    SQL
    Office
    Active Directory
    Exchange
    etc...
    23
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • .Net Integration
    Deploy on .Net infrastructure
    Desktop applications on Windows
    Desktop applications on everywhere (Mono)
    24
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • Additionally
    Interoperability with the other scripting languages!
    Python

    Use code also from there!
    25
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • Silverlight
    Silverlight integration
    Write ruby instead of javascript in your pages! (Gestalt project)
    26
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • Silverlight
    27
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • Limitations
    No support for native C gems
    Some rough edges in interoperability
    28
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • Status
    29
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    RC1
    Runs on .Net 3.5 & .Net 4.0 (different builds)
    Passing ~93% of the Ruby specs
    Already faster than vanilla Ruby (in a lot of cases)
    1.0 expected soon
    Full compatibility with Ruby 1.8.6
    Common build for .Net 3.5 & .Net 4.0 (hopefully)
  • Status
    30
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
  • Future
    31
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    Speed
    Be on par with JRuby
    Ruby 1.9 (maybe?)
    ???
  • Thanks!
    32
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    Thanks a lot & happy hacking!
  • Links
    33
    Nikos Dimitrakopoulos on IronRuby Microsoft DevDays 2009
    IronRuby:
    http://ironruby.net/
    http://ironruby.codeplex.com/
    Rubyst.es
    http://rubyst.es
    http://groups.google.com/ruby-hellug
    Pamediakopes
    http://www.pamediakopes.gr
    http://www.airtickets24.com
    Me
    http://blog.nikosd.com
    http://twitter.com/nikosd
    nospam - at - nikosd - dom – com
    Code samples : http://nikosd.com/f/ironruby-code-samples.zip