SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Pharo: 2.0 Update
Marcus Denker
http://www.pharo-project.org
What is it?
 Language + Environment
 Simple Language
 Object-Oriented, Dynamic, Reflective
   Explore + Change running systems


 The Ultimate Live Programming Environment!
Pharo
MIT license
Mac, Linux, Android, iOS, Windows
Great community of active doers
Improving steadily
Many excellent libraries
Pharo Success Stories
cmsbox - Content Management for Websites

Simple to use, web-based
Content Management
System for SME websites

Unique User eXperience
Inline Editor, Drag & Drop,
Cut & Paste, Undo/Redo

Advantages
Flexible designs, individual
extensions, outstanding
performance and stability

Rock solid application that
powers over 500 websites




Website = Editor
Continuous API Testing
keep your services under control 24/7




www.2denker.de
                                        Norbert Hartl norbert@2denker.de
eMCee is a montoring service for backend interfaces


      - Web application to define backend interfaces

      - Monitors reliability of interface periodically

      - Sends warning if status of interface changes

      - Provides overview graphs about reliability

      - Snapshots requests for debugging purposes




                                                   mail@2denker.de
eMCee is developed and deployed using pharo



      - zinc                 - mongotalk

      - seaside              - magritte-mongo

      - jquery               - fuel

      - magritte             - metacello




                                              mail@2denker.de
• Entry Level Track & Trace Product
• Complements T3 Full Product
• One Page Javascript HTML5 / Ajax Client
• REST Back End in Pharo Smalltalk
• Gateways to multiple data providers
• Pharo Smalltalk 1.2 & 1.3
• Zinc HTTP Components
• Load balanced Zinc REST Servers
• Zinc REST Client Gateways
• Seaside, Stdb MySQL
Since may 2008


Pharo 1.0 released October 2009
1.4 is the current stable
Pharo 2.0 BETA. Release: end Feb 2013
2.0 Statistics
 Started April 2012
 1460 issue tracker entries
   since start: 6977
   420 open, all have seen activity in 2012
     60 tagged for 2.0
 506 incremental updates
What has been done?
Started to rewrite tools
  Nautilus: new code browser
Lots of new libraries
  Fuel: Fast Serialization
  FileSystem
  Zodiac: SSL support
Core: 1.36 mb so far (minimal: 89 KB) --> 3.0
2.0: Tools

 New Code Browser: Nautilus
 Refactoring Integrated in main release
 Critic Browser
 Started to rewrite Tools (Spec)
 Andreas Profiler
2.0: Cleanups

Lots of dead code removed
   old Smalltalk MVC related code
   Cleanup in Fonts and Graphics
Cleanups guided by Code Critics
....
2.0: New Libraries
 FileSystem
 Fuel
 Zinc / Zodiac
 New AST model (from RB)
 ASMJiT and NativeBoost FFI
 Libs for Jenkins and Google Issue Tracker
2.0: Infrastructure

 SmalltalkHub: http://smalltalkhub.com
 Continuous Integration: http://ci.inria.fr
 Association
 Consortium
 Pharo Conf (Planing for Spring 2013)
Pharo Consortium

How to sustain Pharo?
How do we make sure that infrastructure
continues to improve?
How to structure the community?
Should we always rely on people free time?
Consortium Members
Managed by INRIA for now
Who: companies, institutions, user groups
Privileged access to the core development team
Influence priorities of the next development
Engineering support time
Job posts
Training/Conferences special prices
Fees

Gold 4000
 4 days of engineering time + multiple job descriptions for
 job dashboard + diamond sponsor.

Silver 2000
 two days of engineering time + one job description +
 diamond sponsor.

Bronze 1000
 one day of engineering time + diamond sponsor.
Pharo User Association
Managed by the Pharo Association
Individuals
  Premium (99 Euros)
  Normal (40 Euros)
In the mid-term it will merge with the
consortium
3.0: Preview
 3.0 will start end of February
 2.0 will see two bugfix releases
   Summer: 2.1
   Winter: 2.2


 3.0: Continue to radically improve!
3.0: New Compiler
Currently using original Smalltalk-80 Compiler
Old-style code base pre-dating OO
  Scanner is superclass of Parser...
  Impossible to understand, hard to modify
Opal:
  RB AST, Visitors, IR for bytecode
3.0: New ClassBuilder

ClassBuilder creates new classes and reshapes
existing classes
Very complex code, no tests
Hard to understand
Impossible to change
3.0: Slots

 Instance variables are limited
 Slots
    First class instance variables
    Active, Property, Boolean, .....
Toon Verwaest, Camillo Bruni, Mircea Lungu, and Oscar Nierstrasz.
Flexible object layouts: enabling lightweight language extensions
by intercepting slot access.
In Proceedings OOPSLA 2011
3.0: New Libraries


 Ghost Proxies. Proxy everything
 XStreams. Current Streams are a mess
 Athens: Modern graphics canvas
2.0: ....
 No .sources/.changes: one file
 Bootstrap from repository
 And much more!



 Maybe *you* have something to
 contribute?
Open Pharo Sprints
May 2008 Bern, July 2009 Bern
October 2009 Lille
November 2009 Buenos Ares
March 2010 Bern
May 2010 Buenos Ares
June 2010 Bern, Bruxelles, London
September 2010 Barcelona, Lille
January 2011 Lille
July 2011 Lille
October 2011 Bruxelles
February 2012 Bern
April 2012 Lille
September 2012 Ghent
November 2012 Lille, Puerto
Madryn
Jan 2013: Santiago de Chile
Feb 2013: Lille 8th (next week)
Fosdem 13: Pharo 2.0 update

Weitere ähnliche Inhalte

Ähnlich wie Fosdem 13: Pharo 2.0 update

2013 lecture-01-introduction
2013 lecture-01-introduction2013 lecture-01-introduction
2013 lecture-01-introductionPharo
 
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.Pharo
 
.NET Core Today and Tomorrow
.NET Core Today and Tomorrow.NET Core Today and Tomorrow
.NET Core Today and TomorrowJon Galloway
 
23 Top .Net Core Libraries List Every Developer Must Know
23 Top .Net Core Libraries List Every Developer Must Know23 Top .Net Core Libraries List Every Developer Must Know
23 Top .Net Core Libraries List Every Developer Must KnowKaty Slemon
 
Pharo3 at Fosdem
Pharo3 at FosdemPharo3 at Fosdem
Pharo3 at FosdemPharo
 
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...ITCamp
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewGünter Obiltschnig
 
micro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUsmicro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUseProsima
 
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningApache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningGuido Schmutz
 
.Net: Introduction, trends and future
.Net: Introduction, trends and future.Net: Introduction, trends and future
.Net: Introduction, trends and futureBishnu Rawal
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk UpdateESUG
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceAntonio García-Domínguez
 
Webmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques SocietyWebmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques Societywebhostingguy
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsLuis Lopez
 
Project Reactor Now and Tomorrow
Project Reactor Now and TomorrowProject Reactor Now and Tomorrow
Project Reactor Now and TomorrowVMware Tanzu
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Patrick Chanezon
 
Internet browsers by Andres Haydar
Internet browsers by Andres HaydarInternet browsers by Andres Haydar
Internet browsers by Andres HaydarAndresHaydar
 

Ähnlich wie Fosdem 13: Pharo 2.0 update (20)

2013 lecture-01-introduction
2013 lecture-01-introduction2013 lecture-01-introduction
2013 lecture-01-introduction
 
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.
 
Pharo Status
Pharo StatusPharo Status
Pharo Status
 
.NET Core Today and Tomorrow
.NET Core Today and Tomorrow.NET Core Today and Tomorrow
.NET Core Today and Tomorrow
 
23 Top .Net Core Libraries List Every Developer Must Know
23 Top .Net Core Libraries List Every Developer Must Know23 Top .Net Core Libraries List Every Developer Must Know
23 Top .Net Core Libraries List Every Developer Must Know
 
Pharo3 at Fosdem
Pharo3 at FosdemPharo3 at Fosdem
Pharo3 at Fosdem
 
Pharo3 at Fosdem
Pharo3 at FosdemPharo3 at Fosdem
Pharo3 at Fosdem
 
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
 
micro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUsmicro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUs
 
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningApache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
 
.Net: Introduction, trends and future
.Net: Introduction, trends and future.Net: Introduction, trends and future
.Net: Introduction, trends and future
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
 
Webmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques SocietyWebmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques Society
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streams
 
Project Reactor Now and Tomorrow
Project Reactor Now and TomorrowProject Reactor Now and Tomorrow
Project Reactor Now and Tomorrow
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Top 8 WCM Trends 2010
Top 8 WCM Trends 2010Top 8 WCM Trends 2010
Top 8 WCM Trends 2010
 
Internet browsers by Andres Haydar
Internet browsers by Andres HaydarInternet browsers by Andres Haydar
Internet browsers by Andres Haydar
 

Mehr von Marcus Denker

ConstantBlocks in Pharo11
ConstantBlocks in Pharo11ConstantBlocks in Pharo11
ConstantBlocks in Pharo11Marcus Denker
 
First Class Variables as AST Annotations
First Class Variables as AST AnnotationsFirst Class Variables as AST Annotations
First Class Variables as AST AnnotationsMarcus Denker
 
Supporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo SupportSupporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo SupportMarcus Denker
 
Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"Marcus Denker
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerMarcus Denker
 
Lecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinksLecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinksMarcus Denker
 
Improving code completion for Pharo
Improving code completion for PharoImproving code completion for Pharo
Improving code completion for PharoMarcus Denker
 
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinksVUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinksMarcus Denker
 
Lecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinksLecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinksMarcus Denker
 
Open-Source: An Infinite Game
Open-Source: An Infinite GameOpen-Source: An Infinite Game
Open-Source: An Infinite GameMarcus Denker
 
PharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to PharoPharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to PharoMarcus Denker
 
Feedback Loops in Practice
Feedback Loops in PracticeFeedback Loops in Practice
Feedback Loops in PracticeMarcus Denker
 

Mehr von Marcus Denker (20)

Soil And Pharo
Soil And PharoSoil And Pharo
Soil And Pharo
 
ConstantBlocks in Pharo11
ConstantBlocks in Pharo11ConstantBlocks in Pharo11
ConstantBlocks in Pharo11
 
Demo: Improved DoIt
Demo: Improved DoItDemo: Improved DoIt
Demo: Improved DoIt
 
First Class Variables as AST Annotations
First Class Variables as AST AnnotationsFirst Class Variables as AST Annotations
First Class Variables as AST Annotations
 
Supporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo SupportSupporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo Support
 
Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Variables in Pharo
Variables in PharoVariables in Pharo
Variables in Pharo
 
Lecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinksLecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinks
 
Improving code completion for Pharo
Improving code completion for PharoImproving code completion for Pharo
Improving code completion for Pharo
 
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinksVUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
 
Slot Composition
Slot CompositionSlot Composition
Slot Composition
 
Lecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinksLecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinks
 
PHARO IOT
PHARO IOTPHARO IOT
PHARO IOT
 
Open-Source: An Infinite Game
Open-Source: An Infinite GameOpen-Source: An Infinite Game
Open-Source: An Infinite Game
 
Lecture: MetaLinks
Lecture: MetaLinksLecture: MetaLinks
Lecture: MetaLinks
 
PharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to PharoPharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to Pharo
 
Feedback Loops in Practice
Feedback Loops in PracticeFeedback Loops in Practice
Feedback Loops in Practice
 
Pharo6 - ESUG17
Pharo6 - ESUG17Pharo6 - ESUG17
Pharo6 - ESUG17
 
Pharo6
Pharo6Pharo6
Pharo6
 

Fosdem 13: Pharo 2.0 update

  • 1. Pharo: 2.0 Update Marcus Denker http://www.pharo-project.org
  • 2. What is it? Language + Environment Simple Language Object-Oriented, Dynamic, Reflective Explore + Change running systems The Ultimate Live Programming Environment!
  • 3. Pharo MIT license Mac, Linux, Android, iOS, Windows Great community of active doers Improving steadily Many excellent libraries
  • 5. cmsbox - Content Management for Websites Simple to use, web-based Content Management System for SME websites Unique User eXperience Inline Editor, Drag & Drop, Cut & Paste, Undo/Redo Advantages Flexible designs, individual extensions, outstanding performance and stability Rock solid application that powers over 500 websites Website = Editor
  • 6. Continuous API Testing keep your services under control 24/7 www.2denker.de Norbert Hartl norbert@2denker.de
  • 7. eMCee is a montoring service for backend interfaces - Web application to define backend interfaces - Monitors reliability of interface periodically - Sends warning if status of interface changes - Provides overview graphs about reliability - Snapshots requests for debugging purposes mail@2denker.de
  • 8. eMCee is developed and deployed using pharo - zinc - mongotalk - seaside - magritte-mongo - jquery - fuel - magritte - metacello mail@2denker.de
  • 9.
  • 10. • Entry Level Track & Trace Product • Complements T3 Full Product • One Page Javascript HTML5 / Ajax Client • REST Back End in Pharo Smalltalk • Gateways to multiple data providers
  • 11. • Pharo Smalltalk 1.2 & 1.3 • Zinc HTTP Components • Load balanced Zinc REST Servers • Zinc REST Client Gateways • Seaside, Stdb MySQL
  • 12. Since may 2008 Pharo 1.0 released October 2009 1.4 is the current stable Pharo 2.0 BETA. Release: end Feb 2013
  • 13. 2.0 Statistics Started April 2012 1460 issue tracker entries since start: 6977 420 open, all have seen activity in 2012 60 tagged for 2.0 506 incremental updates
  • 14. What has been done? Started to rewrite tools Nautilus: new code browser Lots of new libraries Fuel: Fast Serialization FileSystem Zodiac: SSL support Core: 1.36 mb so far (minimal: 89 KB) --> 3.0
  • 15. 2.0: Tools New Code Browser: Nautilus Refactoring Integrated in main release Critic Browser Started to rewrite Tools (Spec) Andreas Profiler
  • 16. 2.0: Cleanups Lots of dead code removed old Smalltalk MVC related code Cleanup in Fonts and Graphics Cleanups guided by Code Critics ....
  • 17. 2.0: New Libraries FileSystem Fuel Zinc / Zodiac New AST model (from RB) ASMJiT and NativeBoost FFI Libs for Jenkins and Google Issue Tracker
  • 18. 2.0: Infrastructure SmalltalkHub: http://smalltalkhub.com Continuous Integration: http://ci.inria.fr Association Consortium Pharo Conf (Planing for Spring 2013)
  • 19. Pharo Consortium How to sustain Pharo? How do we make sure that infrastructure continues to improve? How to structure the community? Should we always rely on people free time?
  • 20. Consortium Members Managed by INRIA for now Who: companies, institutions, user groups Privileged access to the core development team Influence priorities of the next development Engineering support time Job posts Training/Conferences special prices
  • 21. Fees Gold 4000 4 days of engineering time + multiple job descriptions for job dashboard + diamond sponsor. Silver 2000 two days of engineering time + one job description + diamond sponsor. Bronze 1000 one day of engineering time + diamond sponsor.
  • 22. Pharo User Association Managed by the Pharo Association Individuals Premium (99 Euros) Normal (40 Euros) In the mid-term it will merge with the consortium
  • 23. 3.0: Preview 3.0 will start end of February 2.0 will see two bugfix releases Summer: 2.1 Winter: 2.2 3.0: Continue to radically improve!
  • 24. 3.0: New Compiler Currently using original Smalltalk-80 Compiler Old-style code base pre-dating OO Scanner is superclass of Parser... Impossible to understand, hard to modify Opal: RB AST, Visitors, IR for bytecode
  • 25. 3.0: New ClassBuilder ClassBuilder creates new classes and reshapes existing classes Very complex code, no tests Hard to understand Impossible to change
  • 26. 3.0: Slots Instance variables are limited Slots First class instance variables Active, Property, Boolean, ..... Toon Verwaest, Camillo Bruni, Mircea Lungu, and Oscar Nierstrasz. Flexible object layouts: enabling lightweight language extensions by intercepting slot access. In Proceedings OOPSLA 2011
  • 27. 3.0: New Libraries Ghost Proxies. Proxy everything XStreams. Current Streams are a mess Athens: Modern graphics canvas
  • 28. 2.0: .... No .sources/.changes: one file Bootstrap from repository And much more! Maybe *you* have something to contribute?
  • 29. Open Pharo Sprints May 2008 Bern, July 2009 Bern October 2009 Lille November 2009 Buenos Ares March 2010 Bern May 2010 Buenos Ares June 2010 Bern, Bruxelles, London September 2010 Barcelona, Lille January 2011 Lille July 2011 Lille October 2011 Bruxelles February 2012 Bern April 2012 Lille September 2012 Ghent November 2012 Lille, Puerto Madryn Jan 2013: Santiago de Chile Feb 2013: Lille 8th (next week)