Smalltalk and Business

1,532 views

Published on

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

Published in: Software
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,532
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Smalltalk and Business

  1. 1. Smalltalk and business PhD. Mariano Martinez Peck marianopeck@gmail.com http://marianopeck.wordpress.com
  2. 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
  3. 3. Muchas Gracias!
  4. 4. Context
  5. 5. Engineering
  6. 6. “If all you have is a hammer everything looks like a nail.”
  7. 7. Things are changing
  8. 8. “I always knew that one day Smalltalk would replace Java. I just didn't know it would be called Ruby.” – Kent Beck
  9. 9. Why not Smalltalk?
  10. 10. Technically Popularity Inventions History Support Interoperability Productivity Costs Maduration Studies Power Flexibility
  11. 11. Smalltalk Overview
  12. 12. Smalltalk’s inventions Mouse. IDE concept and windows management. A large part of the OOP. Garbage collector (actually in Lisp). UnitTesting. Virtual Machine.
  13. 13. 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.
  14. 14. 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.
  15. 15. It also includes… Web Frameworks. Desktop applications (native and own). Connection to different types of databases. IDE and development tools.
  16. 16. Multiple dialects Open source: Pharo, Squeak, GNU Smalltalk, Smalltalk X and many others. None open source: VisualWorks, VisualAge, Dolphin, GemStone, Visual Smalltalk and others.
  17. 17. Open Source Dialects Squeak GNU Smalltalk Pharo Smalltalk X
  18. 18. Proprietary Dialects VSE Smalltalk
  19. 19. 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.
  20. 20. 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…
  21. 21. 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
  22. 22. Remote and distributed schemes (up to certain extent). You have have literally hundreds of VMs running. Supports indexed and reduce conflicts Smalltalk Collection classes.
  23. 23. 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.
  24. 24. http://www.pharo.org
  25. 25. A bit of history
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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)
  31. 31. Why do you have interest in a strong open-source smalltalk?
  32. 32. Pharo characteristic for different uses Simplicity: Teaching and Academics. Flexibility: Research. Robustness: Enterprise and Business.
  33. 33. Proven Innovation!
  34. 34. www.moosetechnology.org/
  35. 35. Example: OpenCL in Pharo http://youtu.be/-2ida5Q1mbg
  36. 36. Proven Innovation!
  37. 37. International books Pharo by example translated to french, merci! translated to spanish, gracias! translated to japanese, ありがと
  38. 38. Pharo for the Entreprise Pharo web stack Fun with Pharo If you want to contribute...
  39. 39. Best of the two worlds…
  40. 40. http://consortium.pharo.org/
  41. 41. 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
  42. 42. http://association.pharo.org/
  43. 43. Managed by the Pharo Association Individuals Premium Normal Join and participate what we do!
  44. 44. Conclusions…
  45. 45. Develop in With Deploy and persist in
  46. 46. Advantages Programmer happiness. Productivity. Efficiency. Flexibility. Power. Everything looks easier.
  47. 47. 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.
  48. 48. Thanks! Questions? PhD. Mariano Martinez Peck marianopeck@gmail.com http://marianopeck.wordpress.com

×