SlideShare a Scribd company logo
1 of 43
Object Oriented Programming in
2014: Standard or Legacy?
Mathieu François
@Universitas Bina Nusantara
07/11/2014
Did Object Oriented Dominate
Programming?
Introduction
1. The Great Hopes About OOP*
2. There is no Silver Bullet
3. Case: Epigami OO Infrastructure
* Object Oriented Programming
Programming: Art or Science?
Computer Science vs Programming
The Art of Computer Programming
Practices In Real World
Who Studies History In Engineering?
The Great Hopes About OOP
Software?
• Encapsulation
• Polymorphism
• Inheritance
• Class of objects (constructor)
• Instance of class
• Method vs data
• Message passing
• Abstraction
OOP Definition
OOP Hype In The Mid-90s
Why the OOP Cult?
OOP perceived as the solution for all software
development challenges:
• Code reuse and recycling
• Encapsulation of knowledge
• Isolation of bug impacts
• Design benefits, especially for very large
programs
• Maintenance
Pure languages: Ruby, Python, Smalltalk,
Scala, Eiffel
Languages mainly OOP but also have
procedural elements: C++, Java, C#, VB.NET
Languages historically procedural but
extended with OO features: Pascal, VB,
Fortran, Perl, Cobol 2002, PHP
OOP In Almost Every Languages
Profusion Of OOD Solutions
20 Years Later… How Did OOP Succeed?
OOP For Kernel Development?
OOP For Kernel Development
Linux, Windows, OS X… They are still all
based on good old-fashioned C
OOP For Web App?
OOP For Web App?
Yes: Languages, DOM, JSON
No: Service Oriented Architecture, Event-
Driven Design
More about SOA in a few slides...
There Is No Silver Bullet
There Is No Silver Bullet
By Fred Brooks (1986), also author of The
Mythical Man month (1975)
Essential Complexity vs Accidental Complexity
Since ‘modern’ languages (Fortran, COBOL), no
real improvement about accidental complexity
org 7C00h
jmp short Start ;Jump over the data (the 'short' keyword makes the jmp instruction smaller)
Msg: db "Hello World! "
EndMsg:
Start: mov bx, 000Fh ;Page 0, colour attribute 15 (white) for the int 10 calls below
mov cx, 1 ;We will want to write 1 character
xor dx, dx ;Start at top left corner
mov ds, dx ;Ensure ds = 0 (to let us load the message)
cld ;Ensure direction flag is cleared (for LODSB)
Print: mov si, Msg ;Loads the address of the first byte of the message, 7C02h in this case
;PC BIOS Interrupt 10 Subfunction 2 - Set cursor position
;AH = 2
Char: mov ah, 2 ;BH = page, DH = row, DL = column
int 10h
lodsb ;Load a byte of the message into AL.
;Remember that DS is 0 and SI holds the
;offset of one of the bytes of the message.
;PC BIOS Interrupt 10 Subfunction 9 - Write character and colour
;AH = 9
mov ah, 9 ;BH = page, AL = character, BL = attribute, CX = character count
int 10h
inc dl ;Advance cursor
cmp dl, 80 ;Wrap around edge of screen if necessary
jne Skip
xor dl, dl
OOD Is Not the Only Design Approach
Other Approaches or ‘Schools Of Thought’:
• Functional
• Event-driven
• Data-driven
• ‘Unix Philosophy’
Object-Relational Impedance
We use Object Relation Mapping (ORM)
because Object DBs didn’t really take off
“organizations which design systems ... are
constrained to produce designs which are
copies of the communication structures of
these organizations”
Bad collaboration or project management
have not solved by OOP
Conway’s Law Still Applies to OOP
Conway’s Law Illustrated
But The Main, Main Failure Of OOP Is...
CORBA, DCOM fundamental flaw was to
assume Location Transparency
Local vs Distributed Objects
Network Is Not Transparent
Welcome to the REST API Web (Economy)
From OOA to SOA
Case: Epigami OO Architecture
Why Not Apply OOD To Our Infrastructure?
Infrastructure Since 15 years
• Hardware Technologies +++
• Virtualization Technologies +++
• System Configuration Management +
‘Infrastructure As A Code’: Really?
First deployment automation in the 90s
(Jumpstart SUN & Co)
Puppet & Chef are just improved automation,
not a new real paradigm
Light virtualization based on containers
From Infrastructure to Application-centric
The New Kid On The Block: Docker
Docker In A Nutshell
Infrastructure ‘Code’ Lifecycle
Infrastructure ‘Code’ Lifecycle
If Infrastructure is Code, why not use OOD?
OOD Applied to Docker
Docker
Image Build
Running Container
‘Jailed’ Process
FROM <image>
Init Script
EXPOSE <service>
Container Link
Link Alias
Object-Oriented
Class
Instance of Class
Encapsulation
Inheritance
Constructor
Method
Message Passing
Abstraction
Infrastructure Object Hierarchy
Benefits
• Isolation
• Security
• Modularity
• Traceability
• Automation (Continuous Deployment)
• Flexibility
• Performance
• Scalability
• Price
Summary
• Pros & Cons of OOD
• There is no Silver Bullet
• Continuous Evolution of the design
paradigms, built on top of the previous ones

More Related Content

Viewers also liked

SRS-Food choices and health outcomes.pptx V4
SRS-Food choices and health outcomes.pptx V4SRS-Food choices and health outcomes.pptx V4
SRS-Food choices and health outcomes.pptx V4
Theresa Balestrieri
 

Viewers also liked (10)

Amistad
AmistadAmistad
Amistad
 
Videofied - Xidmət olunmayan infrastruktur obyektlərinin qorunması
Videofied - Xidmət olunmayan infrastruktur obyektlərinin qorunmasıVideofied - Xidmət olunmayan infrastruktur obyektlərinin qorunması
Videofied - Xidmət olunmayan infrastruktur obyektlərinin qorunması
 
Google drive
Google driveGoogle drive
Google drive
 
Tejidos basicos
Tejidos basicosTejidos basicos
Tejidos basicos
 
Lesverbesdupremiergroupe
LesverbesdupremiergroupeLesverbesdupremiergroupe
Lesverbesdupremiergroupe
 
SRS-Food choices and health outcomes.pptx V4
SRS-Food choices and health outcomes.pptx V4SRS-Food choices and health outcomes.pptx V4
SRS-Food choices and health outcomes.pptx V4
 
Make for docker
Make for dockerMake for docker
Make for docker
 
How to Speed Up Your Recruiting Process to Hire Top Talent
How to Speed Up Your Recruiting Process to Hire Top TalentHow to Speed Up Your Recruiting Process to Hire Top Talent
How to Speed Up Your Recruiting Process to Hire Top Talent
 
Corazón - Configuración interna- Anatomía
Corazón - Configuración interna- AnatomíaCorazón - Configuración interna- Anatomía
Corazón - Configuración interna- Anatomía
 
Ada2 d3e info
Ada2 d3e infoAda2 d3e info
Ada2 d3e info
 

Similar to Object oriented programming in 2014:Standard or Legacy?

Similar to Object oriented programming in 2014:Standard or Legacy? (20)

What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?
 
Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet Elixir
 
OOP Java
OOP JavaOOP Java
OOP Java
 
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
 
Evolving as a professional software developer
Evolving as a professional software developerEvolving as a professional software developer
Evolving as a professional software developer
 
ISS Art. How to do IT. Kotlin Multiplatform
ISS Art. How to do IT. Kotlin MultiplatformISS Art. How to do IT. Kotlin Multiplatform
ISS Art. How to do IT. Kotlin Multiplatform
 
End-to-End Deep Learning Deployment with ONNX
End-to-End Deep Learning Deployment with ONNXEnd-to-End Deep Learning Deployment with ONNX
End-to-End Deep Learning Deployment with ONNX
 
Functional solid
Functional solidFunctional solid
Functional solid
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitc
 
Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_future
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Hyperledger Composer overview - Hyperledger Budapest Meetup
Hyperledger Composer overview - Hyperledger Budapest MeetupHyperledger Composer overview - Hyperledger Budapest Meetup
Hyperledger Composer overview - Hyperledger Budapest Meetup
 
Essential Node.js for Web Developers from Developer Week 2013
Essential Node.js for Web Developers from Developer Week 2013Essential Node.js for Web Developers from Developer Week 2013
Essential Node.js for Web Developers from Developer Week 2013
 
What linq is about
What linq is aboutWhat linq is about
What linq is about
 
Open Source .NET
Open Source .NETOpen Source .NET
Open Source .NET
 
2011 02-14-libre
2011 02-14-libre2011 02-14-libre
2011 02-14-libre
 
Mini .net conf 2020
Mini .net conf 2020Mini .net conf 2020
Mini .net conf 2020
 
2R-3KS03-OOP_UNIT-I (Part-A)_2023-24.pptx
2R-3KS03-OOP_UNIT-I (Part-A)_2023-24.pptx2R-3KS03-OOP_UNIT-I (Part-A)_2023-24.pptx
2R-3KS03-OOP_UNIT-I (Part-A)_2023-24.pptx
 
Hacking OOo 2.0
Hacking OOo 2.0Hacking OOo 2.0
Hacking OOo 2.0
 
Learning to code in 2020
Learning to code in 2020Learning to code in 2020
Learning to code in 2020
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Object oriented programming in 2014:Standard or Legacy?

  • 1. Object Oriented Programming in 2014: Standard or Legacy? Mathieu François @Universitas Bina Nusantara 07/11/2014
  • 2. Did Object Oriented Dominate Programming? Introduction 1. The Great Hopes About OOP* 2. There is no Silver Bullet 3. Case: Epigami OO Infrastructure * Object Oriented Programming
  • 3.
  • 5. Computer Science vs Programming The Art of Computer Programming
  • 7. Who Studies History In Engineering?
  • 8. The Great Hopes About OOP Software?
  • 9. • Encapsulation • Polymorphism • Inheritance • Class of objects (constructor) • Instance of class • Method vs data • Message passing • Abstraction OOP Definition
  • 10. OOP Hype In The Mid-90s
  • 11. Why the OOP Cult? OOP perceived as the solution for all software development challenges: • Code reuse and recycling • Encapsulation of knowledge • Isolation of bug impacts • Design benefits, especially for very large programs • Maintenance
  • 12. Pure languages: Ruby, Python, Smalltalk, Scala, Eiffel Languages mainly OOP but also have procedural elements: C++, Java, C#, VB.NET Languages historically procedural but extended with OO features: Pascal, VB, Fortran, Perl, Cobol 2002, PHP OOP In Almost Every Languages
  • 13. Profusion Of OOD Solutions
  • 14. 20 Years Later… How Did OOP Succeed?
  • 15. OOP For Kernel Development?
  • 16. OOP For Kernel Development Linux, Windows, OS X… They are still all based on good old-fashioned C
  • 17. OOP For Web App?
  • 18. OOP For Web App? Yes: Languages, DOM, JSON No: Service Oriented Architecture, Event- Driven Design More about SOA in a few slides...
  • 19.
  • 20. There Is No Silver Bullet
  • 21. There Is No Silver Bullet By Fred Brooks (1986), also author of The Mythical Man month (1975) Essential Complexity vs Accidental Complexity Since ‘modern’ languages (Fortran, COBOL), no real improvement about accidental complexity
  • 22.
  • 23. org 7C00h jmp short Start ;Jump over the data (the 'short' keyword makes the jmp instruction smaller) Msg: db "Hello World! " EndMsg: Start: mov bx, 000Fh ;Page 0, colour attribute 15 (white) for the int 10 calls below mov cx, 1 ;We will want to write 1 character xor dx, dx ;Start at top left corner mov ds, dx ;Ensure ds = 0 (to let us load the message) cld ;Ensure direction flag is cleared (for LODSB) Print: mov si, Msg ;Loads the address of the first byte of the message, 7C02h in this case ;PC BIOS Interrupt 10 Subfunction 2 - Set cursor position ;AH = 2 Char: mov ah, 2 ;BH = page, DH = row, DL = column int 10h lodsb ;Load a byte of the message into AL. ;Remember that DS is 0 and SI holds the ;offset of one of the bytes of the message. ;PC BIOS Interrupt 10 Subfunction 9 - Write character and colour ;AH = 9 mov ah, 9 ;BH = page, AL = character, BL = attribute, CX = character count int 10h inc dl ;Advance cursor cmp dl, 80 ;Wrap around edge of screen if necessary jne Skip xor dl, dl
  • 24. OOD Is Not the Only Design Approach Other Approaches or ‘Schools Of Thought’: • Functional • Event-driven • Data-driven • ‘Unix Philosophy’
  • 25. Object-Relational Impedance We use Object Relation Mapping (ORM) because Object DBs didn’t really take off
  • 26. “organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” Bad collaboration or project management have not solved by OOP Conway’s Law Still Applies to OOP
  • 28. But The Main, Main Failure Of OOP Is...
  • 29. CORBA, DCOM fundamental flaw was to assume Location Transparency Local vs Distributed Objects
  • 30. Network Is Not Transparent
  • 31. Welcome to the REST API Web (Economy) From OOA to SOA
  • 32. Case: Epigami OO Architecture
  • 33. Why Not Apply OOD To Our Infrastructure?
  • 34. Infrastructure Since 15 years • Hardware Technologies +++ • Virtualization Technologies +++ • System Configuration Management +
  • 35. ‘Infrastructure As A Code’: Really? First deployment automation in the 90s (Jumpstart SUN & Co) Puppet & Chef are just improved automation, not a new real paradigm
  • 36. Light virtualization based on containers From Infrastructure to Application-centric The New Kid On The Block: Docker
  • 37. Docker In A Nutshell
  • 39. Infrastructure ‘Code’ Lifecycle If Infrastructure is Code, why not use OOD?
  • 40. OOD Applied to Docker Docker Image Build Running Container ‘Jailed’ Process FROM <image> Init Script EXPOSE <service> Container Link Link Alias Object-Oriented Class Instance of Class Encapsulation Inheritance Constructor Method Message Passing Abstraction
  • 42. Benefits • Isolation • Security • Modularity • Traceability • Automation (Continuous Deployment) • Flexibility • Performance • Scalability • Price
  • 43. Summary • Pros & Cons of OOD • There is no Silver Bullet • Continuous Evolution of the design paradigms, built on top of the previous ones

Editor's Notes

  1. 2do: title? background pix epigami logo
  2. 2do: toc
  3. 2do: mention kopi discussion after
  4. http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming http://www.dijkstrascry.com/knuth http://en.wikiquote.org/wiki/Edsger_W._Dijkstra
  5. Vendor or techno agnostic 15y experience = x generations in IT?
  6. To understand why we are here: what were the choices made by the engineers before. There was always a reason even behind weird or stupid designs; our predecessors were at least as smart than we are
  7. http://en.wikipedia.org/wiki/Object-oriented_programming
  8. 2do: Find kitch book about OOP (Delphi…) If not OOP, not good
  9. 2do: Miracle cure medecine
  10. Gradient of OOP' across languages Pure languages (everything is object: primitives, characters up to classes, blocks...) Ruby, Python, Smalltalk, Scala, Eiffel Languages mainly OOP but also have procedural elements C++, Java, C#, VB.NET Languages historically procedural but extended with OO features: Pascal, VB, Fortran, Perl, Cobol 2002, PHP
  11. http://en.wikipedia.org/wiki/Software_design_pattern 2do: book cover design pattern Enterprise desing patterns?
  12. http://wiki.apidesign.org/wiki/OOP? SOA vs OOA There's been a lot of interest in Service-Oriented Architecture (SOA) at my company recently. Whenever I try to see how we might use it, I always run up against a mental block. Crudely: Object-orientation says: "keep data and methods that manipulate data (business processes) together"; Service-orientation says: "keep the business process in the service, and pass data to it". Edit: The answers saying "OO for internals, SOA for system boundaries" are great and useful, but this isn't quite what I was getting at. API call = get GPS location from Google Map = call to remote object? No, it's serialized data (JSON, XML)
  13. http://wiki.apidesign.org/wiki/OOP? SOA vs OOA There's been a lot of interest in Service-Oriented Architecture (SOA) at my company recently. Whenever I try to see how we might use it, I always run up against a mental block. Crudely: Object-orientation says: "keep data and methods that manipulate data (business processes) together"; Service-orientation says: "keep the business process in the service, and pass data to it". Edit: The answers saying "OO for internals, SOA for system boundaries" are great and useful, but this isn't quite what I was getting at. API call = get GPS location from Google Map = call to remote object? No, it's serialized data (JSON, XML) Objective-C + Java for IOS/Android Android dev = all Mobile features are implemented via extending Android services (New Activity, Service...) Service Extends Activity Extends
  14. http://en.wikibooks.org/wiki/X86_Assembly/Bootloaders
  15. add source
  16. CORBA = many issues as 'design by commitee' (all features included to satisfy everyone=> too complex to implement => compat issues) design by dev is much better btw Location transparency = STUPID... does not address network latencies, losses... => status unknwon usually 30s TCP timeout
  17. So now: Web programming is Service-based architetcure, not Object-based architecture Quota, security boundary, etc.. REST APIs that follows what made Web succesful = looser coupling, but scalable => REST attributes, Or Unix applied to Web programming? ... transparency, ... Or The Strenghts of Unix Philosophuy? Unix (BSD / MIT) = Interne TCP/IP Internet Has won against Telc Unix Modularity & Glue Model Has won against OO ‘Enterprise Architecture’ ?
  18. 2do: mention kopi discussion after
  19. (still some long way to go, but already widely used on mission-critical platforms)
  20. - Isolation => bug in staging or co-hosted site has no impact on Live - Security => security bug in 1 container does not impact other containers and host OS + services and data with different levels of security are separated - Modularity => Can improve/replace transparently components - Traceability => Build files are versioned, helps tracking and coordination, easy to make rollback too - Automation => Continuous Deployment => Dev is pushed granular, faster updates, no Huge integration syndrom - Flexibility = Can experiment new ideas very quickly; fast changes from Marketing co-exist with slower changes of Core Product - Performance = very small overhead - Scalability => Can move perf bottleneck to dedicated node without any change to architecture - Price => Cheapest virtualization solution, fully Open Source - Techno perspectives => bright future, lot of changes to expect: partnerships with MS and VMware