Smalltalk or Java? Why not both!
Learn how Smalltalk and Java both influenced Eclipse Collections and can help you grow as a developer.

Taking a walk with Smalltalk
On May 12, 2022, I gave a talk titled “Smalltalk or Java? Why not both!” at the Pittsburgh Java User Group. The meetup was hosted by Sirisha Pratha and Rinat Gatyatullin. The talk was recorded and is available now on the Pittsburgh JUG YouTube channel(video linked below). I demoed some language and library features switching back and forth between Smalltalk and Java/Eclipse Collections code examples using Pharo 10.0 and IntelliJ IDEA 2022.1.
The talk was a lot of fun for me. It’s been 22 years since I programmed in Smalltalk professionally. I was asked by an attendee which Smalltalk I used previously. I answered that I programmed in IBM VisualAge for Smalltalk. I also mentioned that I started learning Java using IBM VisualAge for Java, which was implemented in VisualAge for Smalltalk. VisualAge for Java would eventually evolve into the Eclipse IDE, which was open sourced by IBM over 20 years ago.
Four decades and counting as a developer
I’ve been programming for 40 years. Here’s a list of most of the languages I have programmed in.

3 Decades, 3 Languages and 3 Lambda Syntaxes
Over the past 30 years, I have programmed professionally in three different languages that have had a lasting impact in my thought process as a developer. All three of these languages have support for lambdas.

During the talk, I explained I could never see myself programming in a language without support for lambdas again.
Blog References
I referenced the following blog links during the talk. The code I shared in the live coding sessions are available in the blogs. I also explain in some detail how to get up and running using the Pharo Smalltalk IDE.
Smalltalk
Java with Eclipse Collections
Both Smalltalk and Java
Eclipse Collections = Smalltalk + Java
Eclipse Collections is a bridge built between two amazing programming worlds. Here’s a table that explains the influence both programming languages have had on the evolution of the now 18 year old open source Java library.

My Pharo Playground from the talk
The following is a snapshot of the Pharo playground I used as a REPL to highlight and execute code. The output in the Transcipt
in the image is the result of executing the highlighted code. I noted how Interval
is inclusive in Smalltalk, and when you use a fractional step by, Smalltalk automatically reduces fractions when it can. I mentioned that we have Interval
, IntInterval
and LongInterval
in Eclipse Collections.

Learn Multiple Languages
Learning multiple languages can help us grow as developers. There are a lot of programming languages to learn out there. I believe there is as much value, if not more, in learning classic languages like Lisp and Smalltalk as there is in learning the shiny new programming languages. The classic languages like Lisp and Smalltalk continue to evolve and solve new problems. In preparing for this talk, I learned some new things I didn’t know about Smalltalk as well as some cool features in the Pharo Smalltalk IDE. The Collections API in Pharo Smalltalk seems to be continuing to evolve. I hope by giving more talks like this, the Java and Smalltalk communities can learn about new things that we have implemented in Eclipse Collections.
I hope to implement a Lazy Iterable library for Pharo Smalltalk in the future. I will open source the library of course, once I get around to it.
Sharing is caring.
I will post a link to the video from the talk here once it is available on YouTube. Stay tuned!
Update: The Video
I am a Project Lead and Committer for the Eclipse Collections OSS project at the Eclipse Foundation. Eclipse Collections is open for contributions. If you like the library, you can let us know by starring it on GitHub.