Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

What is (not) Pharo 8?

183 vues

Publié le

A programming language, an environment, a set of tools, a community.
by Pablo Tesone

Publié dans : Technologie
  • Identifiez-vous pour voir les commentaires

  • Soyez le premier à aimer ceci

What is (not) Pharo 8?

  1. 1. What is (not) Pharo 8? A programming Language, an environment, a set of tools, a community. Pablo Tesone Pharo Consortium Engineer
  2. 2. Who I am! !2 Pablo Tesone Pharo Consortium Engineer • 20 years trying to code • 10 years of experience in industrial applications • PhD in Dynamic Software Update • Interested in improving development tools and the daily development process. • Enthusiast of the object oriented programming and their tools.
  3. 3. Pharo 7.0 https://pharo.org/news/pharo7.0- released 2142 issues! Latest update 7.0.4 : August’19 !3
  4. 4. Pharo 7 in a Nutshell • 64-bit version in Linux, OSX and Windows (preview) • PharoLauncher • Totally new build process with full bootstrap from sources • All source on http://github.com/pharo-project/pharo • Iceberg: git client significantly improved • Calypso, the angular stone of PharoThings, new system Pharo browser !4
  5. 5. Pharo 7 main points… • Stateful traits • Streams refactor • Working directory now is a real working directory • UFFI has been adapted to Windows 64bit • “Plugin replacement program”: FreeType done • Windows 64bit VM closer and closer • VM has continued improving in several ways. • Specific plugins like FilePlugin for Windows !5
  6. 6. Pharo 8 !6 Coming Soon!!! Summer 2020 (Yes… because January is Summer)
  7. 7. Pharo 8 - Addressed • Analysis of File primitives performance on Windows • Support for multiple windows (SDL / GTK) • Headless VM (alpha) • Non-blocking FFI back-end • Degradation in performance • Tons of new tests !7
  8. 8. Under way for Pharo8 • Memory management and command line • Better Testing: Dr Test / Parametrized Tests / Parallel Execution • Better refactorings/eCompletion • Latency (Spotter and completion) large images • Quality rules on big classes/images • Spec 2.0 (new layout/widgets/transmission/backends) • Infrastructure for assembly generation (customization / shipping) !8
  9. 9. Plan for Pharo 9 • Better GC GC stops 2-3min for fullGC (in large images) • cmd+dot not working in all cases • Bloc • Parallel processing (not just parallel testing, which can be resolved at image side) • More more and more tests for the VM • Cleaner VM !9
  10. 10. Pharo Consortium • Handle the releases • Handle the infrastructure • Organize / guide / integrate the community • Financing Engineering / Documentation / Teaching efforts • 27 Industrial Partners • 19 Academic Partners !10
  11. 11. A Win-Win solution! • The engineers are paid by the contribution of the industrial partners. • Lifeware supports one year engineer • Schmidt supports one year engineer • …to improve Pharo infrastructure !11
  12. 12. !12 ClassBuilder NewTraits Iceberg C - FFI Windows VM Iceberg ClassDef TaskIt Spec Tests Windows UI Tools Spec Web Fixing Cleaning Iceberg C FFI Spec VM Esteban Pablo Cyril Guille For Pharo 8.0: 4 engineers
  13. 13. Objective 1: Business • Supporting your Business • Growing Together • Supporting Heavily: • And the other 25 industrial partners. !13
  14. 14. Supporting business • Better 64 bits Windows • Support for multiple graphical backends • Better tools and custom points • Much better UFFI (non-blocking back-end) See Pablo’s talk • Continuously improving (cleans, refactoring, tests) !14
  15. 15. Something else? • Do you have a special need for your business? • Come and talk with me!! • Different ways of handling it with and without community interest. • Different schemes of contribution to help you and help us. !15
  16. 16. Objective 2: Community • A live community for a live system! !16
  17. 17. Objective 2: Community • Discord !17 Mailing List Github Presence
  18. 18. Objective 2: Community • Open Clear Process • Public and transparent • Code review / discussion • Not a single commit without a PR • Systematic automated validation !18 Better process: Github @ Work
  19. 19. !19 Muchmore tests Muchmore tests Objective 3: In Tests we trust
  20. 20. • Automatic Tests / CI on each build / PR • Compiler tests (optimised, unoptimised, fullblock,…) • UI tests on multiple back-ends • More virtual machine tests • FFI marshalling tests!! (yes with libs in C to test) !20 Objective 3: In Tests we trust
  21. 21. • Dr. Tests - Executing more and better your tests. • Parametrized Tests - Generate lots of test. • Verified Executable Examples - Documentation is tested to keep examples up to date. !21 Objective 3: In Tests we trust
  22. 22. Objective 4: Teaching / Learning !22 • A Full Mooc in different languages (including French / English / Spanish / more to come) • Updated to Pharo 8 (Including Iceberg and all the new Tools) • Books: open-source http://books.pharo.org • Updated versions of TinyBlog, Pharo with Style, Spec & Iceberg • TechTalks • Open Documentation - github.com/pharo-open-documentation • Lectures / Exercises / Programs / Support to Teachers
  23. 23. Objective 5: Job Opportunities • Smalltalk is great, and it is more than alive! • We need to promote all uses of Smalltalk • Pharo is a great opportunity to learn. • A great opportunity to show you off: contributing to any open-source project. • Companies looking for smalltalkers in USA / Canada / Europe / Latin America / Asia / Africa … all over the world. !23
  24. 24. You can have an impact • With one hour per week… • Enhance tests • Discord… • Add tests • Review fixes • Open ***clear*** issue • Fix simple points • Make us focus on difficult points !24 Show you off!!!
  25. 25. Objective 6: Research • Pharo is fully open. • Easy to modify and to test • Bootstrapping Tools - Create and Debug your languages and kernels. • Easier process to modify the VM !25 Let’s Collaborate!!!
  26. 26. !26 It’s yours! Try it! Hack it! Improve it! Report Issues! Break it! Learn! pharo-project/pharo https://ci.inria.fr/pharo-ci-jenkins2/ Thanks!!! https://discord.gg/QewZMZa

×