• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Microsoft Hellas Dev Days 09: IronRuby
 

Microsoft Hellas Dev Days 09: IronRuby

on

  • 1,558 views

 

Statistics

Views

Total Views
1,558
Views on SlideShare
1,555
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
    • 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
    • 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