Smalltalk and Business

Post on 07-Jul-2015

660 views 0 download

Tags:

description

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

Transcript of Smalltalk and Business

Smalltalk and businessPhD. Mariano Martinez Peck marianopeck@gmail.com http://marianopeck.wordpress.com

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

Muchas Gracias!

Context

Engineering

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

Things are changing

– Kent Beck

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

Why not Smalltalk?

Technically Popularity Inventions

History Support

Interoperability Productivity

Costs Maduration

Studies Power

Flexibility

Smalltalk Overview

Smalltalk’s inventionsMouse.

IDE concept and windows management.

A large part of the OOP.

Garbage collector (actually in Lisp).

UnitTesting.

Virtual Machine.

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.

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.

SqueakGNU Smalltalk

Pharo

Smalltalk X

Open Source Dialects

VSE Smalltalk

Proprietary Dialects

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

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

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

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

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

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

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

Simplicity: Teaching and Academics.

Flexibility: Research.

Robustness: Enterprise and Business.

Pharo characteristic for different uses

Proven Innovation!

www.moosetechnology.org/

Example: OpenCL in Pharo

http://youtu.be/-2ida5Q1mbg

Proven Innovation!

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…

With

Develop in

Deploy and persist in

AdvantagesProgrammer 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!

PhD. Mariano Martinez Peck marianopeck@gmail.com

http://marianopeck.wordpress.com

Questions?