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.
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.
A little Smalltalk for the soul
Smalltalk helped me become the software engineer that I am today.
Exploring the Smalltalk Collections API in unit tests using Pharo 8.0
Learn a little Smalltalk, and you might thank yourself later.
Java with Eclipse Collections
Blog Series: The missing Java data structures no one ever told you about
The three part Eclipse Collections series all in one convenient place.
My 25 favorite methods from the Eclipse Collections API
Out of hundreds of possibilities, these are some of my favorite methods available on the Eclipse Collections API.
Both Smalltalk and Java
Java Streams are great but it’s time for better Java Collections
After 25 years, it’s time for Java to get a Collections upgrade.
Comparing my Smalltalk and Eclipse Collections Wordle Kata Solutions
Solving a problem with multiple languages and libraries can sometimes bring new insights.
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
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.