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.
Noury	Bouraqadi	&	Dave	Mason	
	
h4p://pharojs.org
Noury	Bouraqadi	&	Dave	Mason	
	
h4p://pharojs.org
Smalltalk		
All	the	Time	
&	Everywhere
Smalltalk	All	the	Time?	
	
Offline		
Web	Clients
Smalltalk	Everywhere?	
	
Mobile	Apps
Web	
Clients	
Mobile	
Apps	?
Web	
Clients	
Mobile	
Apps	
Javascript	
HTML	
CSS
Web	
Clients	
Mobile	
Apps
Web	
Clients	
Mobile	
Apps	
Tools	
framework
Javascript	0%		 100%	
Development	 ProducLon	
Lifecycle	with	
100%	 Pharo	 0%
Lifecycle	with	
Javascript	0%		 100%	
100%	 Pharo	 0%
1.	Code	+	Test	Model	
Lifecycle	with	
Javascript	0%		 100%	
100%	 Pharo	 0%
1.	Code	+	Test	Model	
2.	Code	+	Test	IntegraLon	
Lifecycle	with	
Javascript	0%		 100%	
100%	 Pharo	 0%
1.	Code	+	Test	Model	
3.	Test	Portability	
2.	Code	+	Test	IntegraLon	
Lifecycle	with	
Javascript	0%		 100%	
100%	 Pharo	 0...
1.	Code	+	Test	Model	
100%	Pharo
2.	Code	+	Test	IntegraLon	
~80%	Pharo	+	~20%	Javascript
3.	Test	Portability	
~20%	Pharo	+	~80%	Javascript	
Same	
Code!
3.	Test	Portability	
~20%	Pharo	+	~80%	Javascript	
Tests	
DOM	
Third	party	
Models	
Controllers	
Tomorrow	
IWST	Talk	
Prox...
4.	Export	for	ProducLon	
100%	Javascript
Demo
Mapping	Pharo	to	Javascript
Mapping	Pharo	to	Javascript
Mapping	Pharo	to	Javascript
Mapping	Pharo	to	Javascript
Mapping	Pharo	to	Javascript
Support	JS	IntegraLon	
•  Class	extensions	
– e.g.	for	constructors	Object(),	FuncLon(),	Number()...	
•  Class	placeholder...
What	Next?	
•  Migrate	to	Pharo	5	(Ongoing)	
•  Coverage	for	Core	Pharo	Libraries	
•  Improve	Tools	
– Code	ExtracLon	
– D...
Learn	more	about	PharoJS	
•  Web:	h4p://pharojs.org	
– Thanks	ESUG	for	the	support	
•  Slack:	h4ps://pharojs.slack.com/	
–...
Noury	Bouraqadi	&	Dave	Mason	
	
h4p://pharojs.org	
Develop	in	Pharo,	Run	on	Javascript
PharoJS
PharoJS
PharoJS
PharoJS
Upcoming SlideShare
Loading in …5
×

of

PharoJS Slide 1 PharoJS Slide 2 PharoJS Slide 3 PharoJS Slide 4 PharoJS Slide 5 PharoJS Slide 6 PharoJS Slide 7 PharoJS Slide 8 PharoJS Slide 9 PharoJS Slide 10 PharoJS Slide 11 PharoJS Slide 12 PharoJS Slide 13 PharoJS Slide 14 PharoJS Slide 15 PharoJS Slide 16 PharoJS Slide 17 PharoJS Slide 18 PharoJS Slide 19 PharoJS Slide 20 PharoJS Slide 21 PharoJS Slide 22 PharoJS Slide 23 PharoJS Slide 24 PharoJS Slide 25 PharoJS Slide 26 PharoJS Slide 27 PharoJS Slide 28 PharoJS Slide 29 PharoJS Slide 30 PharoJS Slide 31 PharoJS Slide 32 PharoJS Slide 33

YouTube videos are no longer supported on SlideShare

View original on YouTube

Upcoming SlideShare
Sly and the RoarVM: Exploring the Manycore Future of Programming
Next
Download to read offline and view in fullscreen.

3 Likes

Share

Download to read offline

PharoJS

Download to read offline

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.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

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
  • ajperalt

    Jul. 29, 2017
  • SebastianNozzi

    Oct. 13, 2016
  • philippeback

    Aug. 25, 2016

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.

Views

Total views

10,471

On Slideshare

0

From embeds

0

Number of embeds

8,573

Actions

Downloads

11

Shares

0

Comments

0

Likes

3

×