00:00:18.279
I'm here to talk about Ruby and how it changed my life, as well as my history of discovering Ruby. Later, I found Smalltalk, which is a topic we've heard mentioned in a few talks today. I want to share how I discovered Ruby and the intersection with Smalltalk through a project called MagLev.
00:00:36.000
First, a brief introduction: I am Johnny T, and I work at a company called Creditera in Salt Lake City. I started there just a few months ago, and as you can see from my picture, I love Smalltalk.
00:01:21.240
I first discovered Ruby around 2006 when I attended a Rails conference in London. The closing keynote was given by Dave Thomas, who delivered a fantastic talk about Ruby. At that time, he said, 'Ruby is not enterprise yet, but it's coming.' He noted that more people were quitting their day jobs to start Ruby consulting.
00:01:51.320
After attending that conference, I returned to the States and, a couple of months later, I quit my day job to focus on Ruby consulting full-time. It was a fantastic experience, but I ultimately realized that running my own business wasn't for me—I loved programming too much and found the business aspects overwhelming.
00:02:16.239
Later that year, I attended the RubyConf in Denver, which was my first Ruby conference. I had the opportunity to meet Yukihiro Matsumoto, affectionately known as Matz. During the conference, there was a humorous skit poking fun at Smalltalk, showcasing its pure object-oriented principles and some memorable quotes from Alan Kay.
00:02:46.800
We've heard Matz discuss why he created Ruby. The core philosophy behind Ruby is to make programmers happy while also boosting productivity. I can definitely attest to that, as I'm sure many of you here feel the same way.
00:03:06.720
One of the things I love about Ruby is the direct path between my thoughts and how I express them in code, allowing me to convey ideas with very little code. It’s enjoyable—I always loved programming, but I never reached out to other developers until I discovered Ruby. I felt excited about sharing this new passion.
00:03:50.000
My enthusiasm led me and a coworker to set up the Salt Lake chapter of the Utah Ruby Users Group, where we aimed to share Ruby with everyone we could. A key aspect that I appreciate about the Ruby community is its welcoming and friendly nature. Newbies find help and support easily.
00:04:30.000
I also admire Ruby's focus on agile practices and testing, as the Ruby language and community promote supportive practices in this area. Another point I’d like to make is that I've done this conference before, and I encourage everyone here to take a moment to thank Matz for his contributions to Ruby.
00:05:06.160
To express gratitude, let me teach you how to say 'Thank you, Matz' in Japanese: 'Matsumoto-san, Ruby kurete arigato.' I would love for you to repeat this after me so we can honor him for Ruby.
00:06:08.800
My journey of discovering Smalltalk began with a project called Sub Wars in 2010. This was a GPS-based submarine game that led me to discover MagLev, a new implementation of Ruby that promised a pure object database. This meant no worrying about mapping objects to a relational database.
00:07:30.440
I want to mention a famous quote by Kent Beck: 'I always knew that one day Smalltalk would replace Java; I just didn't know it would be called Ruby.' Kent Beck is one of the key figures in computer science and agile development.
00:08:14.120
Smalltalk was a fascinating yet enigmatic world that many people heard about but few accessed. In 1981, an issue of Byte magazine released significant information about Smalltalk, aimed at shedding light on its potential to influence programming.
00:09:00.000
Though Smalltalk never fully took off in the mainstream, the ambition behind its creation to inspire and change programming practices remained influential. There was a genuine need for a Smalltalk Sherpa—a guide to navigate the complexities of the language.
00:10:00.920
With Sub Wars and discovering MagLev, I began writing a version of the game in MagLev and experimenting with persistence. It was intriguing to engage with the underlying system and learn about Smalltalk programming.
00:11:00.000
One pivotal lunch with an old acquaintance who worked with Gemstone, a Smalltalk implementation, was particularly eye-opening. He mentioned that instead of focusing on Ruby, I should dive straight into Smalltalk. It made me realize how being guided by someone experienced in Smalltalk would profoundly enhance my understanding.
00:12:00.000
Over several weeks, I frequently visited him to learn about Smalltalk. He guided me through its features, which transformed my perspective. I discovered that attempting Smalltalk was challenging but rewarding, requiring insight into its distinct dialects.
00:13:20.760
However, having someone to mentor me personalized the experience of learning the language, making it easier to grasp concepts I initially found elusive. Smalltalk grants immense power when understood correctly, and having a face-to-face mentor was instrumental in maximizing that learning.
00:15:19.120
In summary, Smalltalk requires a Sherpa to help guide newcomers through its complexities. I transitioned into MagLev and soon discovered its native object persistence.
00:17:10.320
Smalltalk offers a unique live environment, allowing you to execute and save elements without ever starting from scratch. The ability to work with live objects facilitates seamless debugging and experimentation, like you saw in a demonstration of the MagLev database explorer.
00:20:56.560
The live environment in Smalltalk lets you interact with and debug code in real-time. Unlike other languages, where you often face static errors requiring tedious stack tracing, Smalltalk allows you to look directly into the stack while coding.
00:22:40.240
Additionally, let me show you how, with MagLev, you can modify and persist objects seamlessly. For example, I’m pulling up some objects right now; Smalltalk allows real-time alterations, which is revolutionary in how we can utilize programming languages.
00:24:45.279
Being able to work with a large persistent data store with pure objects can be a game-changer, especially when there's no active record or object-relational mapping involved. This is one of Smalltalk's many strengths that Ruby can learn from.
00:26:00.000
In conclusion, it is fascinating how much of our minds focus on storage management in development. If we could remove this burden, the potential for creativity and design would be limitless. Smalltalk's philosophy emphasizes the importance of automatic storage management, complementing an object-oriented approach.
00:29:09.120
Thank you all for listening. Before I go, I encourage everyone to join me tonight at 7 PM in room 24 for further discussions on MagLev or any questions you may have.
00:30:06.080
Any final questions? Yes, there is a growing interest in Gemstone among leading organizations, including JP Morgan, that rely on its performance for automated trading. Although MagLev is still in limbo, I'm exploring the possibility of using it in an open-source database project.
00:32:40.240
Once again, thank you for listening, and I look forward to connecting with many of you tonight at the session.