Smalltalk and Business

53
Smalltalk and business PhD. Mariano Martinez Peck [email protected] http://marianopeck.wordpress.com

description

"Smalltalk and Business" presentation at "Summer School on Languages and Applications" 2014 in Cochabamba, Bolivia.

Transcript of Smalltalk and Business

Page 1: Smalltalk and Business

Smalltalk and businessPhD. Mariano Martinez Peck [email protected] http://marianopeck.wordpress.com

Page 2: Smalltalk and Business

Mariano Martinez PeckAcademics

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

Page 3: Smalltalk and Business

Muchas Gracias!

Page 4: Smalltalk and Business

Context

Page 5: Smalltalk and Business

Engineering

Page 6: Smalltalk and Business

“If all you have is a hammer everything looks like a nail.”

Page 7: Smalltalk and Business
Page 8: Smalltalk and Business

Things are changing

Page 9: Smalltalk and Business
Page 10: Smalltalk and Business

– Kent Beck

“I always knew that one day Smalltalk would replace Java. I just didn't know it would be called Ruby.”

Page 11: Smalltalk and Business

Why not Smalltalk?

Page 12: Smalltalk and Business

Technically Popularity Inventions

History Support

Interoperability Productivity

Costs Maduration

Studies Power

Flexibility

Page 13: Smalltalk and Business

Smalltalk Overview

Page 14: Smalltalk and Business

Smalltalk’s inventionsMouse.

IDE concept and windows management.

A large part of the OOP.

Garbage collector (actually in Lisp).

UnitTesting.

Virtual Machine.

Page 15: Smalltalk and Business

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

Page 16: Smalltalk and Business

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.

Page 17: Smalltalk and Business

It also includes…

Web Frameworks.

Desktop applications (native and own).

Connection to different types of databases.

IDE and development tools.

Page 18: Smalltalk and Business

Multiple dialects

Open source: Pharo, Squeak, GNU Smalltalk, Smalltalk X and many others.

None open source: VisualWorks, VisualAge, Dolphin, GemStone, Visual Smalltalk and others.

Page 19: Smalltalk and Business

SqueakGNU Smalltalk

Pharo

Smalltalk X

Open Source Dialects

Page 20: Smalltalk and Business

VSE Smalltalk

Proprietary Dialects

Page 21: Smalltalk and Business
Page 22: 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.

Page 23: Smalltalk and Business

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…

Page 24: Smalltalk and Business

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

Page 25: Smalltalk and Business

Remote and distributed schemes (up to certain extent).

You have have literally hundreds of VMs running.

Supports indexed and reduce conflicts Smalltalk Collection classes.

Page 26: Smalltalk and Business

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.

Page 27: Smalltalk and Business

http://www.pharo.org

Page 28: Smalltalk and Business

A bit of history

Page 29: Smalltalk and Business

PharoMIT 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

Page 30: Smalltalk and Business

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

The Pharo Stack is Gorgeous

Page 31: Smalltalk and Business

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

Page 32: Smalltalk and Business

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

Pharo in numbers

Page 33: Smalltalk and Business
Page 34: Smalltalk and Business

Since may 2008Pharo 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)

Very High Activity

Page 35: Smalltalk and Business

Why do you have interest in a strong open-source smalltalk?

Page 36: Smalltalk and Business

Simplicity: Teaching and Academics.

Flexibility: Research.

Robustness: Enterprise and Business.

Pharo characteristic for different uses

Page 37: Smalltalk and Business

Proven Innovation!

Page 38: Smalltalk and Business

www.moosetechnology.org/

Page 39: Smalltalk and Business

Example: OpenCL in Pharo

http://youtu.be/-2ida5Q1mbg

Page 40: Smalltalk and Business

Proven Innovation!

Page 41: Smalltalk and Business
Page 42: Smalltalk and Business

International books

Pharo by example translated to french, merci! translated to spanish, gracias! translated to japanese, ありがと

Page 43: Smalltalk and Business

Pharo for the Entreprise

Pharo web stack

Fun with Pharo

If you want to contribute...

Page 44: Smalltalk and Business

Best of the two worlds…

Page 45: Smalltalk and Business

http://consortium.pharo.org/

Page 46: Smalltalk and Business

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

Page 47: Smalltalk and Business

http://association.pharo.org/

Page 48: Smalltalk and Business

Managed by the Pharo Association Individuals

Premium Normal

Join and participate what we do!

Page 49: Smalltalk and Business

Conclusions…

Page 50: Smalltalk and Business

With

Develop in

Deploy and persist in

Page 51: Smalltalk and Business

AdvantagesProgrammer happiness.

Productivity.

Efficiency.

Flexibility.

Power.

Everything looks easier.

Page 52: Smalltalk and Business

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.

Page 53: Smalltalk and Business

Thanks!

PhD. Mariano Martinez Peck [email protected]

http://marianopeck.wordpress.com

Questions?