00:00:17.039
I have always been looking for ways to make people smile. Since we get hungry every day, we have to cook every day. Even though cooking is fun, doing it every day makes it a necessary task. We want to inspire people to enjoy cooking more.
00:00:46.719
Alright, let's talk about progress. I've been working with Ruby on Rails for close to a decade now, which is a long enough time to be one of the few people eligible to apply for the New York library position that requires eight years of Rails experience. I’m very happy about that, and I’m also pleased to still be here because I usually don't have an attention span that lasts a decade. The only reason I’m still interested is that over the past decade, we’ve managed to keep not only myself but a lot of other people engaged with the framework and the language by making progress every single year, almost every single day. There’s a flurry of new commits going to the Rails source. Some changes are tiny fixes, like correcting spelling mistakes in the documentation, while others are huge new features. The important part is that we are constantly making progress.
00:01:36.240
Now, this concept of progress is something I want to explore a bit more. When you think about progress as an abstract idea, most people would agree that they like progress. After all, who doesn’t like new things, improvements, and changes that make their world better? However, when you think about it more concretely, things become a bit more complicated. For instance, think of COBOL code—many in the community would agree it's great that we’ve moved on from that. Recently, our agreement on what constitutes progress has expanded to include other languages, like Java, and we can laugh together about the things that we’ve improved upon.
00:02:17.360
Of course, not all progress is universally accepted. For example, there was significant resistance when I first started discussing REST with the release of Rails 1.2 in 2006. Many people did not see this as progress. They thought it was unnecessary and complicated, requiring them to fill out a routes file instead of relying on automatic controller actions. Today, however, few cling to that belief, at least not in this room. We take REST for granted, and it has become a standard in our work.
00:02:37.600
The move to Ruby 1.9 is another topic of contention. Many of you in this room may still be using Ruby 1.8 for your main production systems. I have often heard questions surrounding the necessity of Ruby 1.9 and if the improvements are worth rewriting existing software. There is a sense of reluctance to upgrade, and this is a hurdle for many. Similarly, consider Bundler. When Yahuda and Kyle introduced Bundler, many were skeptical about its supposed advantages. I thought it was wonderful from the start because I had faced the hassle of managing dependencies across multiple applications. But not everyone shared my enthusiasm.
00:03:37.360
This continuous evolution within the Rails community isn't always embraced. People had difficulty transitioning to Rails 3, and there was a lot of hesitation regarding the changes necessary for that upgrade. The launch of the Asset Pipeline further exemplifies this resistance. Some people preferred their old clunky systems, feeling no need to reorganize their workflow. The irony is that, while progress in theory seems desirable, its practical implications often meet with skepticism. When discussing progress abstractly, most people will agree that they like it, but when it's personal and impacts their work, the acceptance becomes significantly more complex.
00:04:20.480
Let's talk about CoffeeScript, a change that has sparked considerable debate. Many developers are accustomed to writing JavaScript in their traditional manner, and CoffeeScript’s different syntax is often viewed as foreign and unnatural. The typical sentiment becomes: 'the old way is better.' This perception isn’t restricted to developers alone; many people resist change across various fields. For instance, when new versions of operating systems come out, individuals often lament the changes, even if they eventually adjust and appreciate those updates. Not all new advancements necessarily lead to genuine improvement. There are plenty of new features that just add complexity without real benefits.
00:05:20.640
In software development, unlike literary analysis, we can measure progress in more tangible ways. If you alter a car's design and it takes longer to complete a lap on the track, then that change has not improved performance. The same applies to software programming; if the code becomes more complicated without enhancing functionality, the changes are counterproductive. However, if you modify a system and it yields better outcomes, that is clear, measurable progress. I enjoy the advancement in software development; when I compare past code to today’s, the improvements are evident.
00:06:01.680
Skepticism towards progress is natural, and it's crucial not to embrace new technologies blindly. We should remain open to innovation without defaulting to skepticism because that is when stagnation occurs. I have two main theories about why people become suspicious of progress. The first illustrates how an initial positive experience can lead to eventual wariness. Many start out curious about technology but eventually experience a setback or failure—like losing data or encountering bugs—leading to distrust. This transition can be perceived as a negative inflection point in their relationship with technology, often leading them to reject new developments, and I can understand that reaction.
00:07:30.240
The second theory, however, reflects a more insidious trend that often accompanies aging—getting used to existing methods and becoming resistant to change. While some individuals maintain a youthful mindset towards learning and adaptation, many find themselves in a 'mr mature' mindset, feeling satisfied with their accumulated knowledge yet fearful of loss. This transformation can occur much faster in technology than in other life areas, leading individuals to turn wary of change in as little as three to five years in their career. This accelerated timeline intensifies the aversion to new development and innovation.
00:08:20.040
When developers transition from being open and curious to suspicious, it becomes difficult to revert. Not many individuals wake up and decide to reject their established routines for simpler, more experimental methods. This tendency reinforces a cautious mentality that stifles progress within the community. I believe that recognizing and addressing this behavior critically affects the vitality of communities in technology, especially involving frameworks like Rails.
00:09:34.560
The concept of loss aversion is pivotal here. People tend to fear loss far more than they value gains. This perspective translates to technology; as developers grow accustomed to their tools and knowledge, any potential loss—be it functionality or knowledge—sparks anxiety. However, studies involving cognitive reframing demonstrate that people can shift their mindset from a fear-oriented approach to one where they view their work and learning as valuable. By reframing how we approach new challenges, we can resist the tendency to remain in a 'mr dummy' state or revert to the safer confines of our comfortable knowledge.
00:10:38.560
We should encourage continuous learning rather than avoiding risks associated with progress. Each of us has the capability to set high expectations and pursue knowledge eagerly. I can share from my experience: when I began immersing myself in Ruby, I quickly moved on to Rails without anyone setting limitations on my learning timeline. Had I been told 'you must learn X before you can proceed,' my growth would have been stunted. Instead, I learned through engagement, which reflects how we should encourage newcomers to approach technology.
00:11:45.760
The motto should be: accept that progress, while often challenging, is part of the journey to mastery. We will inevitably face difficulties while learning, but this is not a deterrent; it's a necessary reality. Future iterations of technology, such as Rails 4, will bring significant changes. Initially, you may feel discomfort with the new systems—but as you acknowledge this as a natural reaction to progress, you can better cope and adapt. Remember, I will not fear change, and I will not fight progress.
00:13:30.240
In conclusion, remain youthful and open to exploring—stay curious and embrace the exuberance of progress. Thank you very much.