Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PharoJS

6,007 views

Published on

Title: PharoJS
Mon, August 22, 3:00pm – 3:30pm

Youtube: https://youtu.be/nmRPSb0t9lw

Author1: Noury Bouraqadi
Author2: Dave Mason
Email where you can always be reached: noury.bouraqadi@mines-douai.fr and dmason@ryerson.ca
Type: Talk

Bio:
- Noury Bouraqadi is a full professor at Ecole des Mines de Douai,
France. His research is about Software Engineering and AI with a
focus on robotic applications.

- Dave Mason is a full professor at Ryerson University, Toronto,
Canada. His research interests are: software reliability, software
engineering, compilers, programming languages, concurrency, formal
verification, operating systems. His primary research focus at the
moment is Programming for the Rest of Us - creating an environment
for anybody to be able to transform the data swarming around them
into useful information.

Abstract:
PharoJS is an infrastructure (framework + middleware + tools) that allows developping and
testing in Smalltalk for applications that will ultimately run on a Javascript interpreter.
Unlike to Amber, that runs inside a web browser, PharoJS is built on top of Pharo.
Apps are initially buit in the image as pure Pharo objects that run on the Smalltalk virtual machine.
The PharoJS middleware allows interacting remotely with third party Javascript objects running
on a web browser, or interacting with a web view, particularly for mobile apps.
Such interactions are used only during tests.
Ultimately, the Smalltalk code is converted to Javascript.
So, at the production stage, only a Javascript interpreter is required to run the app.
In this talk, we present the current status of PharoJS and its implementation.
Through an example, we describe the application development process, with a focus on tests and TDD.

Published in: Technology
  • Youtube: https://youtu.be/nmRPSb0t9lw
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

PharoJS

  1. 1. Noury Bouraqadi & Dave Mason h4p://pharojs.org
  2. 2. Noury Bouraqadi & Dave Mason h4p://pharojs.org
  3. 3. Smalltalk All the Time & Everywhere
  4. 4. Smalltalk All the Time? Offline Web Clients
  5. 5. Smalltalk Everywhere? Mobile Apps
  6. 6. Web Clients Mobile Apps ?
  7. 7. Web Clients Mobile Apps Javascript HTML CSS
  8. 8. Web Clients Mobile Apps
  9. 9. Web Clients Mobile Apps Tools framework
  10. 10. Javascript 0% 100% Development ProducLon Lifecycle with 100% Pharo 0%
  11. 11. Lifecycle with Javascript 0% 100% 100% Pharo 0%
  12. 12. 1. Code + Test Model Lifecycle with Javascript 0% 100% 100% Pharo 0%
  13. 13. 1. Code + Test Model 2. Code + Test IntegraLon Lifecycle with Javascript 0% 100% 100% Pharo 0%
  14. 14. 1. Code + Test Model 3. Test Portability 2. Code + Test IntegraLon Lifecycle with Javascript 0% 100% 100% Pharo 0%
  15. 15. 1. Code + Test Model 100% Pharo
  16. 16. 2. Code + Test IntegraLon ~80% Pharo + ~20% Javascript
  17. 17. 3. Test Portability ~20% Pharo + ~80% Javascript Same Code!
  18. 18. 3. Test Portability ~20% Pharo + ~80% Javascript Tests DOM Third party Models Controllers Tomorrow IWST Talk Proxies
  19. 19. 4. Export for ProducLon 100% Javascript
  20. 20. Demo
  21. 21. Mapping Pharo to Javascript
  22. 22. Mapping Pharo to Javascript
  23. 23. Mapping Pharo to Javascript
  24. 24. Mapping Pharo to Javascript
  25. 25. Mapping Pharo to Javascript
  26. 26. Support JS IntegraLon •  Class extensions – e.g. for constructors Object(), FuncLon(), Number()... •  Class placeholders – e.g. for DicLonary •  AlternaLve JS code for methods – Typically for primiLves e.g. basicNew •  Special messages – Read/Write JS Slot access – Call JS naLve methods
  27. 27. What Next? •  Migrate to Pharo 5 (Ongoing) •  Coverage for Core Pharo Libraries •  Improve Tools – Code ExtracLon – Debugging – Generate HTML
  28. 28. Learn more about PharoJS •  Web: h4p://pharojs.org – Thanks ESUG for the support •  Slack: h4ps://pharojs.slack.com/ – Discussions •  Twi4er: h4ps://twi4er.com/pharojs – News – SubscripLon to PharoJS Slack
  29. 29. Noury Bouraqadi & Dave Mason h4p://pharojs.org Develop in Pharo, Run on Javascript

×