Smalltalk and Business

Mariano Martínez Peck
Mariano Martínez PeckIndependent IT Consultant and Software Engineer at Independent
Smalltalk and business 
PhD. Mariano Martinez Peck 
marianopeck@gmail.com 
http://marianopeck.wordpress.com
Mariano Martinez Peck 
Academics 
Software Engineer at UTN-FRBA, Argentina. 
PhD in Computer Science at the Université de Lille. 
Open-Source 
Fuel, Pharo, DBXSuite (OpenDBX and Glorp), etc. 
Industry 
Previously, many years at different companies developing in different 
languages. 
Currently, Independent Software Consultant
Muchas Gracias!
Context
Engineering
“If all you have is a hammer everything looks like a 
nail.”
Smalltalk and Business
Things are changing
Smalltalk and Business
“I always knew that one day Smalltalk would replace 
Java. I just didn't know it would be called Ruby.” 
– Kent Beck
Why not Smalltalk?
Technically 
Popularity 
Inventions 
History 
Support 
Interoperability 
Productivity 
Costs 
Maduration 
Studies 
Power 
Flexibility
Smalltalk Overview
Smalltalk’s inventions 
Mouse. 
IDE concept and windows 
management. 
A large part of the OOP. 
Garbage collector (actually in 
Lisp). 
UnitTesting. 
Virtual Machine.
Main characteristics 
Invented in the 70’s (maduration). 
Simple language + Environment. 
Pure object oriented, dynamically typed and reflective 
Explore and change running systems 
Run in a Virtual Machine. 
Image based language.
Pure object oriented 
Everything is an object (classes, methods, packages, 
messages, closures, etc). 
There are no primitive types. 
There is no special syntax. 
Only 5 reserved words: nil, true, false, self and super.
It also includes… 
Web Frameworks. 
Desktop applications (native and own). 
Connection to different types of databases. 
IDE and development tools.
Multiple dialects 
Open source: Pharo, Squeak, GNU Smalltalk, Smalltalk 
X and many others. 
None open source: VisualWorks, VisualAge, Dolphin, 
GemStone, Visual Smalltalk and others.
Open Source Dialects 
Squeak 
GNU Smalltalk 
Pharo 
Smalltalk X
Proprietary Dialects 
VSE Smalltalk
Smalltalk and Business
In a nutshell 
No template language, just plain Smalltalk. 
It is based on reusable and statefull components. 
Natural flow. 
Great developing, refactoring and debugging capabilities. 
Mature, documented and multiple-dialect support. 
Open sourced with MIT license.
Other characteristics 
Very nice integration with JQuery, AJAX, Comet, etc. 
We can use our preferred Web server. 
It’s not tight to any persistency framework. 
Tons of wrapped libs like Twitter Bootstrap, Highcharts, 
etc…
An object database system. 
ACID transactions (atomic, consistent, isolation, durable). 
Multi-user. 
A Smalltalk dialect. 
Complete set of kernel classes and libraries. 
Virtual Machine with JIT. 
An Application Server
Remote and distributed schemes (up to certain extent). 
You have have literally hundreds of VMs running. 
Supports indexed and reduce conflicts Smalltalk 
Collection classes.
When using GemStone… 
No impedance mismatch (no need of ORM). 
Very transparent persistency (just open and close transactions). 
Everything is written in Smalltalk (no need of SQL, stored procedures or 
any other language). 
Ideal for web, mobile, web-services and service oriented applications. 
You still can use your preferred Smalltalk for developing (.e.g Pharo). 
Easy to learn (much easier than a full relational DB). 
Saves around 60% to 90% of developer time to handle persistence. 
Increase code reusability.
http://www.pharo.org
A bit of history
Pharo 
MIT license 
Pure object language 
Great community of active doers 
Powerful 
Elegant and fun to program 
Living system under your fingers 
Mac, Linux, Android, iOS, Windows
The Pharo Stack is 
Gorgeous 
Compiler, Core classes (stream, collections, unicode,...) 
IDE (editor, inspector, debugger, code versioning,...) 
UI frameworks (widgets, theme) 
FFI 
Graphics (soon opengl) 
Fuel (Hyper fast object serializer) 
Network, HTTP, Zinc, Zodiac (SSL), Oauth
Web frameworks: Seaside, iliad, HTTP2, Rest, Zinc Rest, 
Aida, Reef, Amber 
Parsers and serializers: XML, HTML, JSON, STON 
Graphics frameworks: Roassal, Mondrian, EyeSee 
Tool builders: Glamour, Spec 
Databases: Voyage, DBXTalk, Mongo, Riak, CouchDB, 
GemStone 
Parser generators: Petit Parser, SmaCC 
Infrastructure: Proxy, Logging 
Units: Aconcagua, Units
Pharo in numbers 
282 000 downloads on the Inria gforge 
40-60 active commiters 
> 600 mailing-list members 
200 license agreements 
60 association members 
11 industrial consortium members 
around 400 external projects or more
Smalltalk and Business
Since may 2008 
Very High 
Activity 
Pharo 3.0 - Apr 2014 ( around 2600 closed cases) 
Pharo 2.0 - Apr 2013 (1657 closed cases) 
Pharo 1.4 - Apr 2012 (988 closed cases) 
Pharo 1.3 (736 closed cases) 
Pharo 1.2 - mar 2011 (691 closed cases) 
Pharo 1.1 - jul 2010 (918 closed cases) 
Pharo 1.0 - oct 2009 (307 closed cases)
Why do you have interest in 
a strong open-source 
smalltalk?
Pharo characteristic for 
different uses 
Simplicity: Teaching and Academics. 
Flexibility: Research. 
Robustness: Enterprise and Business.
Proven Innovation!
www.moosetechnology.org/
Example: OpenCL in Pharo 
http://youtu.be/-2ida5Q1mbg
Proven Innovation!
Smalltalk and Business
International 
books 
Pharo by example 
translated to 
french, merci! 
translated to 
spanish, gracias! 
translated to 
japanese, ありがと
Pharo for the Entreprise 
Pharo web stack 
Fun with Pharo 
If you want to contribute...
Best of the two worlds…
http://consortium.pharo.org/
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
http://association.pharo.org/
Managed by the Pharo Association 
Individuals 
Premium 
Normal 
Join and participate what we do!
Conclusions…
Develop in 
With 
Deploy and persist in
Advantages 
Programmer happiness. 
Productivity. 
Efficiency. 
Flexibility. 
Power. 
Everything looks easier.
Disadvantages 
It is not mainstream. 
“Difficult” to sell. 
Difficult to show confidence to clients. 
There aren’t as many developed libs as for mainstream 
languages. 
No as much documentation as others.
Thanks! 
Questions? 
PhD. Mariano Martinez Peck 
marianopeck@gmail.com 
http://marianopeck.wordpress.com
1 of 53

More Related Content

What's hot(6)

Javascript 01 (js)Javascript 01 (js)
Javascript 01 (js)
AbhishekMondal4268 views
jQuery introductionjQuery introduction
jQuery introduction
Tomi Juhola32.3K views
Short notes of oop with javaShort notes of oop with java
Short notes of oop with java
Mohamed Fathy1.6K views
Future of XtextFuture of Xtext
Future of Xtext
Sven Efftinge5.2K views

Viewers also liked(8)

Similar to Smalltalk and Business(20)

More from Mariano Martínez Peck(9)

Object garphs swappingObject garphs swapping
Object garphs swapping
Mariano Martínez Peck422 views
MetacelloMetacello
Metacello
Mariano Martínez Peck354 views
Efficient Proxies in SmalltalkEfficient Proxies in Smalltalk
Efficient Proxies in Smalltalk
Mariano Martínez Peck1.1K views
DBXTalk: Smalltalk Relational Database SuiteDBXTalk: Smalltalk Relational Database Suite
DBXTalk: Smalltalk Relational Database Suite
Mariano Martínez Peck898 views
Clustered Serialization with FuelClustered Serialization with Fuel
Clustered Serialization with Fuel
Mariano Martínez Peck483 views
Building you own Pharo images with Metacello Building you own Pharo images with Metacello
Building you own Pharo images with Metacello
Mariano Martínez Peck429 views
Visualizing Objects and Memory UsageVisualizing Objects and Memory Usage
Visualizing Objects and Memory Usage
Mariano Martínez Peck2.7K views
SqueakDBXSqueakDBX
SqueakDBX
Mariano Martínez Peck425 views

Smalltalk and Business

  • 1. Smalltalk and business PhD. Mariano Martinez Peck marianopeck@gmail.com http://marianopeck.wordpress.com
  • 2. Mariano Martinez Peck Academics Software Engineer at UTN-FRBA, Argentina. PhD in Computer Science at the Université de Lille. Open-Source Fuel, Pharo, DBXSuite (OpenDBX and Glorp), etc. Industry Previously, many years at different companies developing in different languages. Currently, Independent Software Consultant
  • 6. “If all you have is a hammer everything looks like a nail.”
  • 10. “I always knew that one day Smalltalk would replace Java. I just didn't know it would be called Ruby.” – Kent Beck
  • 12. Technically Popularity Inventions History Support Interoperability Productivity Costs Maduration Studies Power Flexibility
  • 14. Smalltalk’s inventions Mouse. IDE concept and windows management. A large part of the OOP. Garbage collector (actually in Lisp). UnitTesting. Virtual Machine.
  • 15. Main characteristics Invented in the 70’s (maduration). Simple language + Environment. Pure object oriented, dynamically typed and reflective Explore and change running systems Run in a Virtual Machine. Image based language.
  • 16. Pure object oriented Everything is an object (classes, methods, packages, messages, closures, etc). There are no primitive types. There is no special syntax. Only 5 reserved words: nil, true, false, self and super.
  • 17. It also includes… Web Frameworks. Desktop applications (native and own). Connection to different types of databases. IDE and development tools.
  • 18. Multiple dialects Open source: Pharo, Squeak, GNU Smalltalk, Smalltalk X and many others. None open source: VisualWorks, VisualAge, Dolphin, GemStone, Visual Smalltalk and others.
  • 19. Open Source Dialects Squeak GNU Smalltalk Pharo Smalltalk X
  • 22. In a nutshell No template language, just plain Smalltalk. It is based on reusable and statefull components. Natural flow. Great developing, refactoring and debugging capabilities. Mature, documented and multiple-dialect support. Open sourced with MIT license.
  • 23. Other characteristics Very nice integration with JQuery, AJAX, Comet, etc. We can use our preferred Web server. It’s not tight to any persistency framework. Tons of wrapped libs like Twitter Bootstrap, Highcharts, etc…
  • 24. An object database system. ACID transactions (atomic, consistent, isolation, durable). Multi-user. A Smalltalk dialect. Complete set of kernel classes and libraries. Virtual Machine with JIT. An Application Server
  • 25. Remote and distributed schemes (up to certain extent). You have have literally hundreds of VMs running. Supports indexed and reduce conflicts Smalltalk Collection classes.
  • 26. When using GemStone… No impedance mismatch (no need of ORM). Very transparent persistency (just open and close transactions). Everything is written in Smalltalk (no need of SQL, stored procedures or any other language). Ideal for web, mobile, web-services and service oriented applications. You still can use your preferred Smalltalk for developing (.e.g Pharo). Easy to learn (much easier than a full relational DB). Saves around 60% to 90% of developer time to handle persistence. Increase code reusability.
  • 28. A bit of history
  • 29. Pharo MIT license Pure object language Great community of active doers Powerful Elegant and fun to program Living system under your fingers Mac, Linux, Android, iOS, Windows
  • 30. The Pharo Stack is Gorgeous Compiler, Core classes (stream, collections, unicode,...) IDE (editor, inspector, debugger, code versioning,...) UI frameworks (widgets, theme) FFI Graphics (soon opengl) Fuel (Hyper fast object serializer) Network, HTTP, Zinc, Zodiac (SSL), Oauth
  • 31. Web frameworks: Seaside, iliad, HTTP2, Rest, Zinc Rest, Aida, Reef, Amber Parsers and serializers: XML, HTML, JSON, STON Graphics frameworks: Roassal, Mondrian, EyeSee Tool builders: Glamour, Spec Databases: Voyage, DBXTalk, Mongo, Riak, CouchDB, GemStone Parser generators: Petit Parser, SmaCC Infrastructure: Proxy, Logging Units: Aconcagua, Units
  • 32. Pharo in numbers 282 000 downloads on the Inria gforge 40-60 active commiters > 600 mailing-list members 200 license agreements 60 association members 11 industrial consortium members around 400 external projects or more
  • 34. Since may 2008 Very High Activity Pharo 3.0 - Apr 2014 ( around 2600 closed cases) Pharo 2.0 - Apr 2013 (1657 closed cases) Pharo 1.4 - Apr 2012 (988 closed cases) Pharo 1.3 (736 closed cases) Pharo 1.2 - mar 2011 (691 closed cases) Pharo 1.1 - jul 2010 (918 closed cases) Pharo 1.0 - oct 2009 (307 closed cases)
  • 35. Why do you have interest in a strong open-source smalltalk?
  • 36. Pharo characteristic for different uses Simplicity: Teaching and Academics. Flexibility: Research. Robustness: Enterprise and Business.
  • 39. Example: OpenCL in Pharo http://youtu.be/-2ida5Q1mbg
  • 42. International books Pharo by example translated to french, merci! translated to spanish, gracias! translated to japanese, ありがと
  • 43. Pharo for the Entreprise Pharo web stack Fun with Pharo If you want to contribute...
  • 44. Best of the two worlds…
  • 46. 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
  • 48. Managed by the Pharo Association Individuals Premium Normal Join and participate what we do!
  • 50. Develop in With Deploy and persist in
  • 51. Advantages Programmer happiness. Productivity. Efficiency. Flexibility. Power. Everything looks easier.
  • 52. Disadvantages It is not mainstream. “Difficult” to sell. Difficult to show confidence to clients. There aren’t as many developed libs as for mainstream languages. No as much documentation as others.
  • 53. Thanks! Questions? PhD. Mariano Martinez Peck marianopeck@gmail.com http://marianopeck.wordpress.com