SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
Ruby <3 .NET,[object Object],Ivan Porto Carrero,[object Object],http://flanders.co.nz,[object Object],http://twitter.com/casualjim,[object Object],www.visug.be,[object Object]
Upcoming sessions,[object Object],June 18 : Domain Driven Design (Yves Goeleven),[object Object],June 30 : IronRuby (Ivan Porto Carrero),[object Object],September 10 : ORMs, NHibernate – Entity Framework ,[object Object],			       (Davy Brion, Kurt Claeys),[object Object],Week of October 5 (TBD) : Dino Esposito,[object Object],November 18 : Modeling with VSTS2010 (Marcel De Vries),[object Object],November 26 : RIA Services (Miguel De Lathouwer,[object Object],				& Steven Van Den Eynde),[object Object]
Ruby Loves Dot Net
The plan,[object Object],CLR, DLR, WTF??,[object Object],All ur Rubyz are now belongs to us,[object Object],Ruby why should I care?,[object Object],Gotcha’s,[object Object],BDD with Bacon and Caricature,[object Object],Sinatra has not left the building,[object Object],IronRuby MVC,[object Object],Ruby + Silverlight == Teh cake,[object Object]
CLR as we knew it,[object Object],VB.NET,[object Object],…,[object Object],C#,[object Object],Base Class Libraries,[object Object],Common Type system,[object Object],Security,[object Object],Class Loader, GC, JIT, Execution Support,[object Object]
CLR but mo betterer,[object Object],VB.NET,[object Object],IronPython,[object Object],C#,[object Object],Base Class Libraries,[object Object],DLR Runtime,[object Object],Common Type system,[object Object],Security,[object Object],Class Loader, GC, JIT, Execution Support,[object Object]
Ruby Loves Dot Net
All urRubyz are now…,[object Object],MRI ‐ “The Normal” Ruby ,[object Object],JRuby ‐ Sun ,[object Object],MacRuby ‐ Apple ,[object Object],IronRuby ‐ Microsoft ,[object Object],Rubinius ‐ EngineYard,[object Object],MagLev ‐ Gemstone ,[object Object],HotRuby,[object Object]
All urRubyz are now…,[object Object],MRI ‐ “The Normal” Ruby ,[object Object],JRuby ‐ Sun ,[object Object],MacRuby ‐ Apple ,[object Object],IronRuby ‐ Microsoft ,[object Object],Rubinius ‐ EngineYard,[object Object],MagLev ‐ Gemstone ,[object Object],HotRuby,[object Object]
Why should I care?,[object Object],For me the purpose of life is partly to have joy.,[object Object],Programmers often feel joy when they can concentrate,[object Object],on the creative side of programming,,[object Object],so Ruby is designed to make programmers happy. ,[object Object],- Yukihiro “Matz” Matsumoto,[object Object]
Why should I care?,[object Object],Actually, I'm trying to make Ruby natural, not simple. ,[object Object],- Yukihiro “Matz” Matsumoto,[object Object]
Ruby Loves Dot Net
Best of breed,[object Object],If Python was the result of Lisp and C++ having a baby,Ruby is the result of Perl and Smalltalk having a baby. ,[object Object],- MeowMeow Jones, 11/8/2001 on slashdot.,[object Object]
Ruby Loves Dot Net
Duck typing,[object Object],if it looks like a duck,[object Object],and acts like a duck,[object Object],it might as well be a duck,[object Object]
Ruby Loves Dot Net
Metaprogramming,[object Object],The computer should be doing the hard work.,[object Object],That’s what it’s paid to do, after all. ,[object Object],- Larry Wall,[object Object]
Metaprogramming,[object Object],I don’t think the idea here is to save memory or speed.,[object Object],The idea behind metaprogramming is,[object Object],to teach Ruby your conventions,[object Object],And let it do some guessing,[object Object],In order to save you some code ,[object Object],- Why, author of why’s poignant guide to Ruby,[object Object]
STOP!!!!       Demo time,[object Object]
REPL,[object Object],ReadEvalPrintLoop,[object Object],ReadEvalPrintLoop,[object Object],ReadEvalPrintLoop,[object Object],ReadEvalPrint,[object Object]
STOP!!!!       Demo time,[object Object]
Everything is an object,[object Object],I invented the term Object-Oriented,,[object Object],and I can tell you I did not have C++ in mind ,[object Object],- Alan Kay,[object Object]
STOP!!!!       Demo time,[object Object]
Classes are open,[object Object]
STOP!!!!       Demo time,[object Object]
CLR classes open for business,[object Object]
STOP!!!!       Demo time,[object Object]
Adding Iron to Ruby,[object Object],I  have always imagined that paradise will be a kind of library,[object Object],- Jorge Luis Borges,[object Object]
Gotcha’s,[object Object]
BDD Ruby/CLR interop,[object Object]
IronRuby MVC,[object Object]
Sinatra,[object Object]
Silverlight,[object Object]
Kweshiunz?,[object Object]
“A language that doesn't  affect the way you think ,[object Object],about  programming is not worth knowing.” ,[object Object],- Alan Perlis,[object Object]
References,[object Object],http://flanders.co.nz,[object Object],http://ironruby.net,[object Object],http://ironruby.info,[object Object],http://iunknown.com,[object Object],http://manning.com/carrero,[object Object],http://rubydoes.net,[object Object],http://blog.prokrams.com/,[object Object],http://nightlybuilds.cloudapp.net/Project.aspx?project=dlr,[object Object],http://blog.jimmy.schementi.com/,[object Object]
go_to(http://ironruby.net).play.create.have_fun,[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Let's talk about neovim
Let's talk about neovimLet's talk about neovim
Let's talk about neovimShougo
 
deoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovimdeoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovimShougo
 
Getting started with Ruby on Rails
Getting started with Ruby on RailsGetting started with Ruby on Rails
Getting started with Ruby on RailsIlias Bartolini
 
Javascriptbootcamp
JavascriptbootcampJavascriptbootcamp
Javascriptbootcamposcon2007
 
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|re
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|reBSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|re
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|reChandra Pratap
 
ElixirConf 2017 - Writing an Editor in Elixir - Ian Duggan
ElixirConf 2017 - Writing an Editor in Elixir - Ian DugganElixirConf 2017 - Writing an Editor in Elixir - Ian Duggan
ElixirConf 2017 - Writing an Editor in Elixir - Ian Dugganijcd
 
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Neosnippet.vim + Deoppet.nvim in Vim conf 2017Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Neosnippet.vim + Deoppet.nvim in Vim conf 2017Shougo
 
Thumbcoil: How we got here...
Thumbcoil: How we got here...Thumbcoil: How we got here...
Thumbcoil: How we got here...Jon-Carlos Rivera
 

Was ist angesagt? (12)

Let's talk about neovim
Let's talk about neovimLet's talk about neovim
Let's talk about neovim
 
deoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovimdeoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovim
 
Gaasdm
GaasdmGaasdm
Gaasdm
 
Intro to java
Intro to javaIntro to java
Intro to java
 
Getting started with Ruby on Rails
Getting started with Ruby on RailsGetting started with Ruby on Rails
Getting started with Ruby on Rails
 
Javascriptbootcamp
JavascriptbootcampJavascriptbootcamp
Javascriptbootcamp
 
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|re
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|reBSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|re
BSidesLondon | Your Money, Your Media - A DRMtastic Android (reverse|re
 
ElixirConf 2017 - Writing an Editor in Elixir - Ian Duggan
ElixirConf 2017 - Writing an Editor in Elixir - Ian DugganElixirConf 2017 - Writing an Editor in Elixir - Ian Duggan
ElixirConf 2017 - Writing an Editor in Elixir - Ian Duggan
 
Qtruby
QtrubyQtruby
Qtruby
 
Run once
Run onceRun once
Run once
 
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Neosnippet.vim + Deoppet.nvim in Vim conf 2017Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
 
Thumbcoil: How we got here...
Thumbcoil: How we got here...Thumbcoil: How we got here...
Thumbcoil: How we got here...
 

Andere mochten auch

משמעות הספרות
משמעות הספרותמשמעות הספרות
משמעות הספרותguest6afe24
 
What's Next in Growth? 2016
What's Next in Growth? 2016What's Next in Growth? 2016
What's Next in Growth? 2016Andrew Chen
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your BusinessBarry Feldman
 

Andere mochten auch (6)

משמעות הספרות
משמעות הספרותמשמעות הספרות
משמעות הספרות
 
Scalatra 2.2
Scalatra 2.2Scalatra 2.2
Scalatra 2.2
 
Sbt for mere mortals
Sbt for mere mortalsSbt for mere mortals
Sbt for mere mortals
 
IronRuby - Fosdem 2010
IronRuby - Fosdem 2010IronRuby - Fosdem 2010
IronRuby - Fosdem 2010
 
What's Next in Growth? 2016
What's Next in Growth? 2016What's Next in Growth? 2016
What's Next in Growth? 2016
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
 

Ähnlich wie Ruby Loves Dot Net

Top 10+ Things .NET Developers Should Know About Ruby
Top 10+ Things .NET Developers Should Know About RubyTop 10+ Things .NET Developers Should Know About Ruby
Top 10+ Things .NET Developers Should Know About RubyJeff Cohen
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2ice799
 
Concurrecy in Ruby
Concurrecy in RubyConcurrecy in Ruby
Concurrecy in RubyVesna Doknic
 
It's OK to make a new folder within Rails.
It's OK to make a new folder within Rails.It's OK to make a new folder within Rails.
It's OK to make a new folder within Rails.cschaafsma
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?Colin Riley
 
IronRuby for the Rubyist
IronRuby for the RubyistIronRuby for the Rubyist
IronRuby for the RubyistWill Green
 
Design and Evolution of cyber-dojo
Design and Evolution of cyber-dojoDesign and Evolution of cyber-dojo
Design and Evolution of cyber-dojoJon Jagger
 
Python @ PiTech - March 2009
Python @ PiTech - March 2009Python @ PiTech - March 2009
Python @ PiTech - March 2009tudorprodan
 
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of LaptopsBoxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of LaptopsPuppet
 
Intro To Ror
Intro To RorIntro To Ror
Intro To Rormyuser
 
2009 Eclipse Con
2009 Eclipse Con2009 Eclipse Con
2009 Eclipse Conguest29922
 
Docker experience @inbotapp
Docker experience @inbotappDocker experience @inbotapp
Docker experience @inbotappJilles van Gurp
 
refORM: Death to ORMs in .NET
refORM: Death to ORMs in .NETrefORM: Death to ORMs in .NET
refORM: Death to ORMs in .NETJames Hughes
 

Ähnlich wie Ruby Loves Dot Net (20)

Ruby - The Hard Bits
Ruby - The Hard BitsRuby - The Hard Bits
Ruby - The Hard Bits
 
Test
TestTest
Test
 
Top 10+ Things .NET Developers Should Know About Ruby
Top 10+ Things .NET Developers Should Know About RubyTop 10+ Things .NET Developers Should Know About Ruby
Top 10+ Things .NET Developers Should Know About Ruby
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
 
Concurrecy in Ruby
Concurrecy in RubyConcurrecy in Ruby
Concurrecy in Ruby
 
It's OK to make a new folder within Rails.
It's OK to make a new folder within Rails.It's OK to make a new folder within Rails.
It's OK to make a new folder within Rails.
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?
 
Docker orchestration with kontena
Docker orchestration with kontenaDocker orchestration with kontena
Docker orchestration with kontena
 
IronRuby for the Rubyist
IronRuby for the RubyistIronRuby for the Rubyist
IronRuby for the Rubyist
 
OOP vs COP
OOP vs COPOOP vs COP
OOP vs COP
 
IJTC%202009%20JRuby
IJTC%202009%20JRubyIJTC%202009%20JRuby
IJTC%202009%20JRuby
 
IJTC%202009%20JRuby
IJTC%202009%20JRubyIJTC%202009%20JRuby
IJTC%202009%20JRuby
 
Design and Evolution of cyber-dojo
Design and Evolution of cyber-dojoDesign and Evolution of cyber-dojo
Design and Evolution of cyber-dojo
 
Python @ PiTech - March 2009
Python @ PiTech - March 2009Python @ PiTech - March 2009
Python @ PiTech - March 2009
 
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of LaptopsBoxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of Laptops
 
Intro To Ror
Intro To RorIntro To Ror
Intro To Ror
 
2009 Eclipse Con
2009 Eclipse Con2009 Eclipse Con
2009 Eclipse Con
 
Children of Ruby
Children of RubyChildren of Ruby
Children of Ruby
 
Docker experience @inbotapp
Docker experience @inbotappDocker experience @inbotapp
Docker experience @inbotapp
 
refORM: Death to ORMs in .NET
refORM: Death to ORMs in .NETrefORM: Death to ORMs in .NET
refORM: Death to ORMs in .NET
 

Kürzlich hochgeladen

UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceMartin Humpolec
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxYounusS2
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncObject Automation
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum ComputingGDSC PJATK
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.francesco barbera
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdfJamie (Taka) Wang
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 

Kürzlich hochgeladen (20)

UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation Inc
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum Computing
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 

Ruby Loves Dot Net

  • 1.
  • 2.
  • 4.
  • 5.
  • 6.
  • 8.
  • 9.
  • 10.
  • 11.
  • 13.
  • 15.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.

Hinweis der Redaktion

  1. IMHO Best IDE on the marketShared dynamic subsystemStandard hosting environmentBased on passing messages to objectsFull access to the CLREnable fast generation of dynamic codeOne true objectExplain how Jython was implemented and how it relates to the DLR
  2. Here’s a list of the different implementations of ruby right now. • MRI stands for ‘Matz’s Ruby Interpreter’ - Matz is yukihiromatsumoto, a japanese guy who first created the ruby language back in 1993. It’s written in straight C. This what you get when you go to the official ruby website. • JRuby is an implementation of Ruby running on the JVM - it interops natively with java. Commercially backed by sun. • MacRuby is Ruby running on Apple’s Objective C runtime. It interops natively with ObjectiveC, which makes it ideal for writing OSX GUI applications. It’s in it’s early stages, commercially backed by apple. • IronRuby is microsoft’s version. Commercially backed by microsoft who employ full time staff working on it. This is what our presentation is about • Rubinius is a an implementation of Ruby running using a C++ Virtual machine. Commercially backed by engineyard, one of the biggest ruby on rails web hosting companies.• Maglev is by GemStone, who are a smalltalk company. They’ve been around for years and years writing big enterprise systems using smalltalk. Maglev is their project to run ruby on their smalltalk VM • Hotruby is a small open source thing which compiles ruby into javascript. Sounds ridiculous but people have run this using the V8 engine in Google Chrome and it actually works out to be faster than the other ruby implementations for whatever set of benchmarks they were running All these companies are putting some serious resources behind getting ruby to run on the systems they want. This is evidence that there must be SOMETHING to it.
  3. Here’s a list of the different implementations of ruby right now. • MRI stands for ‘Matz’s Ruby Interpreter’ - Matz is yukihiromatsumoto, a japanese guy who first created the ruby language back in 1993. It’s written in straight C. This what you get when you go to the official ruby website. • JRuby is an implementation of Ruby running on the JVM - it interops natively with java. Commercially backed by sun. • MacRuby is Ruby running on Apple’s Objective C runtime. It interops natively with ObjectiveC, which makes it ideal for writing OSX GUI applications. It’s in it’s early stages, commercially backed by apple. • IronRuby is microsoft’s version. Commercially backed by microsoft who employ full time staff working on it. This is what our presentation is about • Rubinius is a an implementation of Ruby running using a C++ Virtual machine. Commercially backed by engineyard, one of the biggest ruby on rails web hosting companies.• Maglev is by GemStone, who are a smalltalk company. They’ve been around for years and years writing big enterprise systems using smalltalk. Maglev is their project to run ruby on their smalltalk VM • Hotruby is a small open source thing which compiles ruby into javascript. Sounds ridiculous but people have run this using the V8 engine in Google Chrome and it actually works out to be faster than the other ruby implementations for whatever set of benchmarks they were running All these companies are putting some serious resources behind getting ruby to run on the systems they want. This is evidence that there must be SOMETHING to it.
  4. Many people that come to Ruby do so through the Rails framework.And then often you can hear these people say:I came for Rails but I stayed for Ruby
  5. Ruby is a pleasant language to work with, partly because its well-chosen keywords, but mostly because it represents a kind of best breed implementation of a programming language. One of the goals ruby tries to achieve is to make the language you use ,when you’re writing your algorithms, a lot like a natural language. For example ruby has both the keywords if and unless, and you can apply those in 2 different ways. Best of breed Duck typing Everything is an object Classes are open / monkey patching Flexible Functional Procedural meta programming
  6. Show some of the nicer ruby syntax
  7. Regular expression literals [PERL] Strong text processing support [PERL] Blocks [SMALLTALK]Iterators [SMALLTALK]
  8. Introduce blocksExplain about message receivers and message passingNote the string interpolation
  9. Get into dynamic typing before duck typingRuby cares about typesIt cares about hierarchy + mixins when doing method lookupOnly safe operations against an object (no magic)Conversions explicit stepYou can override operators to allow for implicit conversion => explicit step + you’re in controlExplain how static typing resembles aristocracy with their bloodlines and how heritage is more important than capabilitiesExplain how duck typing focusses on the abilities of objects instead of their type. If the method is there it’s all good
  10. Variables can change type =>sacreligion!We care about the size method on the receiver in get_count=> 1 reason type checking defferred to last responsible moment
  11. metaprogramming == program to modify itself at runtime. metaprogramming == defining methods on instances and classes at runtime. You could very well generate most of a program at runtimeMostly used when DATA DRIVES THE CODE
  12. Responding to unknown methods: method_missing Define methods programmatically String evaluation
  13. See demos/metaprogramming.rbShow txt file content firstShow result of scriptOpen script start at bottomWalk through implementation
  14. You can run ‘irb’ and just type some ruby code, and it runs as you go. This is a killer feature for when you’re testing, or when you’re learning a new API. I used to have to miss that when I was in .NET but that is a thing from the past now.
  15. Require ‘mscorlib’Include System (equivalent of using in C#)Puts System.constantsPuts System.constants.grep(/^[A-C]/)
  16. A class is a an object => class itself Nil => objectConstants => object
  17. >>> 0.zero?=> true>>> 5.zero?=> false>>> 120/6=> 20>>> 873.class=> Fixnum>>> (1000 ** 1000).class=> Bignum >>> a = nil=> nil>>> a.nil?=> true>>> a.class=> NilClass
  18. With great power comes great responsibility.You can extend classes at runtime and make api’s more wrist or read friendly