Schedule

Wednesday, November 13 - Aula Magna

8:00

9:00

Registration & Breakfast

Opening

9:30

Modern Web Application Architectures with Seaside

Seaside is Smalltalk’s versatile web application framework. While originally built to develop multi-page server-side-rendered applications, Seaside integrates equally well in modern web architectures.

Johan Brichau

10:00

Advanced Refactoring in Cuis

Cuis has new refactorings that take advantage of LiveTyping to improve their usability. In this talk I will present those nre refactoring such as Move Method, Move Instance Variable, Extract Class among others.

M. Cabezón Alvarez

H. Wilkinson

10:30

Break

11:00

The growth of a project. From a Smalltalk prototype to a desktop app

We have presented in previous Smalltalks the development of the 'Representar' project. It is a drawing-based programming tool for children. It is currently online and can be downloaded from the project website: represent.ar. We will talk about the generation of a Smalltalk application that runs online and desktop. We will discuss the research and development process and the current challenges of reaching the end user.

Agustin Martinez

11:30

Smalltalk Distributed Processing framework

A Distributed Processing Framework is a software system that enables the execution of tasks across multiple computers or nodes in a network, allowing for parallel processing and efficient handling of large-scale data. A detailed talk on how we built and continue to improve our framework, what issues we encountered and the different solutions we continue to develop.

Facundo Carrizo

12:00

Lunch

14:00

The Technical Vision for VAST

The VAST Platform’s technical vision and roadmap are guided by a key set of customer-aligned strategic goals. This presentation will explore how we prioritize and choose software features, and how this process has driven significant progress over the past decade. We’ll discuss some of these past milestones in VAST and share how they are affecting the exciting direction we’re headed next.

Mariano Martinez Peck

14:30

You must gather your frameworks before venturing forth online

Developing, launching and managing a cloud application is not something you can achieve in a vacuum. You'll need not only your Smalltalk tools, but also specific frameworks to scaffold your service. And a number of external products, many with convenient free tiers, to get everything working. This is a talk about those frameworks, tools, and techniques. We'll review a working cloud application, that was based on a desktop product, and how it currently reaches people all over the world, with their data safe and available anytime, from anywhere.

Maximiliano Tabacman

15:00

Webside 2.0

Webside is an API aimed at standarizing a way to talk to a Smalltalk system through HTTP. It also comes with one possible application: a fully operational IDE.

During the presentation at ESUG 22 (NoviSad), questions around the extensibility of such IDE arose. In this talk, I'm going to present the progress in that regard, together with other improvements made since that presentation in the context a real development enviroment.

Guillermo Amaral

15:30

Break

16:00

Cuis Smalltalk: Fulfilled goals, challenges for the future

The Cuis Smalltalk project was started in 2004 with the goal of building a Smalltalk-80 system that can evolve with ease into the future. This meant a deep redesign of many core parts of the system, to enable the addition of new features like a Vector Graphics based Morphic GUI, TrueType fonts and Unicode support. Other advanced features include the bootstrap of minimal images and support for binary format for code libraries. In this talk we'll explore more recent developments, and plans for future work, to better satisfy the needs of developers, teachers, students and businesses.

Juan Vuletich

16:30

A libcurl API implementation in Cuis: Providing visibility and malleability for having multi-protocol transfer capability

When writing an API implementation that, in particular, involves callbacks, it may be useful to give the client -that will consume that exposed API- the posibility of moving the veil whenever is needed and consequently provide more flexibility

Felipe Zak

THURSDAY, November 14 - Aula Magna

8:00

Registration & Breakfast

9:00

Debate panel: The Future of Smalltalk

Hosted by Esteban Maringolo

10:30

Break

11:00

Towards a functional, AI-powered Smalltalk

Our research aims to define the contours of a next-generation software development stack capable of addressing the challenges posed by the rapid advancement of artificial intelligence.

One of our goals is to propose an approach to programming that would put an end to the great schism between the devotees of object-oriented and functional paradigms. After exploring a number of approaches to reconceptualize common object-oriented idioms in functional terms, we gained significant insights from an analysis of the ideas behind the design of early Smalltalk, hard to recognise under extra layers of abstraction in newer versions. These insights not only reveal a fundamental duality between object-oriented and functional styles, effectively unifying them into a single approach, but also suggest novel ways to integrate AI into the software development process.

 Pavel Mikhailovskii

11:30

Smart Type Checking with LiveTyping and its Future

The Type Checking feature of LiveTyping has been greatly improved and integrated with the other LiveTyping tools such as auto-complete and show types. This new version provides better type information correctly filtering uses of isKindOf:, = aClass and so on.

We will also present the future of LiveTyping, where it is heading and you can help with it.

 J. Gutierrez Ostrovsky

H. Wilkinson

12:00

Lunch

14:00

Instantiations Company Update & VAST 2025 Preview

Instantiations is committed to continuing investment in the VAST Platform and ongoing involvement with the Smalltalk community. Get an update on our progress, and see where we’re headed in the near future.

Seth Berman


14:30

Enhancing Smalltalk Development with AI in VAST

Have you ever imagined having an AI companion to assist you while developing in Smalltalk? At OpenPass, we've been exploring this possibility by integrating VAST with powerful language models like ChatGPT and Llama. In this talk, we will demonstrate how AI can elevate your development experience—from generating code to providing insights on existing implementations. You'll also learn about exciting new features that can be embedded directly into the VAST UI. Join us as we explore the current state of our project and share fresh ideas on how AI can transform the future of Smalltalk development.

Iván Boaretto

15:00

Modernizing Emsrv: Enhancing Security, Modularity, and Performance

This talk covers the modernization of the Emsrv codebase, focusing on improvements that enhance security, scalability, and performance. Protocol version negotiation now supports flexible client-server communication and future protocol expansions. Memory management has been centralized with a custom allocator featuring secure memory arenas. The repository backend is now pluggable, supporting both the traditional flat files and relational databases like SQLite. Additionally, extensive security scans have ensured the code meets modern standards, making Emsrv secure, maintainable, and future-ready.

Seth Berman

15:30

Break

16:00

ApptiveGrid: solve (business) problems without programming

ApptiveGrid is a lowcode/nocode platform that allows to solve typical business process problems without writing a single line of code. We will explore the possibilities of the platform as well as getting to know what it means to thrive for zero dependencies

Norbert Hartl

16:30

Zag Smalltalk - a Smalltalk for Modern Machines

 In its 40+ years of existence, there have been many implementations of Smalltalk and related languages, with many different design goals.  Most have emphasized its best-in-breed development environment and its rich class library.

This paper describes Zag Smalltalk and some of the design principles that are focused on very high performance for exported applications.  In particular we will discuss the challenges of inlining and using an off-the shelf JIT (LLVM) designed for statically-typed languages. Future goals include being able to support a live IDE based on the OpenSmalltalk clients: Pharo/Squeak/Cuis.

Dave Mason

FRIDAY, November 15 - Aula Magna

8:30

Registration & Breakfast

9:30

GemTalk Update and Roadmap

A brief overview of the GemStone architecture for scalable, multi-user Smalltalk followed by the GemStone/64 product roadmap.

James Foster

10:00

Pause Patrol - a debugger for PetroVR simulation

PetroVR is a commercial software to define and run simulations of oil & gas projects. I have talked about it in previous editions of Smalltalks. But those simulations and Smalltalk "programs" have a lot in common, so we decided to add a tool like a debugger to use in the "runtime" of the simulation. It has a GUI that allows to pause the simulation, run step by step, using breakpoints and watch expressions, besides showing some visual feedback of the project progress. I will talk about how we did the tool based on existing elements and share some ideas and requirements to use a similar approach in other applications.

Carlo E. Ferro

10:30

Break

11:00

Baby Steps: a gamified tool to teach TDD

One of the main problems of TDD is to write the minimum necessary code in the step 2, to make pass the test written in step 1. Baby Steps is a tool initially developed at FIUBA-UBA and augmented by Nicolas Rinaldi at FCEyN-UBA, that uses gamification to help students of the subject Software Engineering I to get used to accomplish the goal of step 2

N. Rinaldi

H. Wilkinson

11:30

Soil: an object oriented database for fun and profit 

Soil is an object oriented database written fully in/for Pharo. It is small and provides most features a database needs. This presentation gives an overview of the database at its current state and gives an outlook of what it might become 

Norbert Hartl

12:00

Lunch

14:00

 Our Core. Deep in the Motherlode. 2024 Edition.

Jorge Sagasti

14:30

 Egg: A Minimal Smalltalk for Maximum Profit

Egg Smalltalk has quickly evolved in the past year. We have improved our module system and VMs, allowing to create super small applications. The exact same Smalltalk code can now run in a web browser, with a portable interpreter  in any other platform or with JIT compilation in x64, using minimal resources. We will provide a glimpse of this young fully open-source ecosystem running a same app in different platforms.

Javier Pimás

15:00

 Development and Deployment of Yesplan

Yesplan is an intuitive venue management web application. It is the leading software system for almost 500 small and large theaters, concert halls and event venues in Belgium, the Netherlands, UK, Norway, Sweden, Denmark and now expanding further throughout Europe and the US. We strive for our +30k users to enjoy using Yesplan, through intuitive and attractive user experience design. Yesplan is continuously evolving software and integrates with key applications for ticket sales, CRM, accounting, websites, etc.

The backbone of Yesplan is the Seaside web application framework, running on GemStone/S 64 and integrated with various front-end frameworks such as jQuery and ReactJs. We will present what this hybrid approach to web development means and how it has given Yesplan unique web interfaces that support its users in all aspects of event venue management. We will also present our insights and experiences in 15 years of applying the “develop in Pharo, deploy in GemStone” approach. This combines the best of two worlds: a highly scaleable object-oriented database and application server with a powerful and dynamic development environment.

Johan Brichau

15:30

Break

16:00

 Implementing a Distributed Object Pool using Redis

How to control and synchronize access to an object across multiple instances of VAST? We will demonstrate how we built a distributed pool that manages a collection of objects  replicated across different images running simultaneously. We decided to use Redis as the mechanism for locking objects and synchronizing collections, and we will explore the challenges we encountered in solving classical concurrency issues, as well as the integration of Redis in VAST.

D. Dodero Mena

S. Cardoso Geller

16:30

 Addiction and speed

Eliot Miranda