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
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.
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.
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
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.
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
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.