00:00:23.519
Hello everyone, my name is Matt. I started working in France and quickly moved to England, where I discovered a programming language called Ruby.
00:00:30.640
I took the first opportunity to move to America, which I believe is one of the best countries in the world. However, when I arrived, I found that the working conditions in America are not great.
00:00:39.760
After six months, I quit my job and began freelancing, or as we prefer to call ourselves, consulting. Eventually, one of my clients hired me, and I started working for Sony PlayStation, specifically at Sony Computer Entertainment America, where I worked on video games for a while.
00:00:51.680
Recently, I joined LivingSocial, and I work with Ben and a lot of really smart people. We are currently hiring. I live in San Diego, California, which is not too far from here. In my free time, I work on microbe-related projects as part of the marketing stream, and I wrote a book about why I love microbes.
00:01:10.560
Even though I'm not running any Rails apps on Mac Ruby, I enjoy experimenting with it. So, let’s talk about Ruby, since that's why we're here. When I started with Ruby, Web 2.0 was the big thing, and I remember using Java, PHP, .NET, and Python.
00:01:30.560
I was working on a significant project that wasn't going well, so we began exploring this new programming language called Ruby. It’s funny because when I think back to that time, I remember many concerns about Ruby, such as its performance, documentation, tooling, and community.
00:01:44.640
People were saying that Ruby couldn't scale well, and you couldn't develop large applications using it. However, on the flip side, Ruby was a very cool language, and there was this intriguing web framework called Rails that could have saved our project.
00:02:01.680
Rails provided us with more conventions and introduced cool concepts, which was very appealing. The community also placed a significant focus on testing, which was essential for my work.
00:02:03.680
I appreciated that the community encouraged testing my code, reinforcing the need for quality assurance as a developer. At that time, it was relieving not to be working with PHP. Since then, I have devoted myself to Ruby.
00:02:15.519
Fast forward to 2012, and we can see Ruby improving in performance, although it's still not excellent. Nevertheless, it has worked well for many people and has seen better documentation than it did in 2005.
00:02:27.920
The Ruby community is thriving, with plenty of books, tutorials, and resources available. We've seen significant strides in training and tooling, though we still have room for progress. Our community is quite large, and I recently heard a claim that there are approximately 327,684 Ruby developers.
00:02:46.480
While I’m not sure about the accuracy of that number, it's clear that we have grown significantly. Initially, many were skeptical about Ruby's capacity for creating robust applications, but my experience and observing others has shown that one can indeed write scalable applications in Ruby.
00:03:01.040
Moreover, Rails has transformed into what PHP used to represent for web developers in the early days. New web application developers now will likely turn to Rails first.
00:03:07.680
I think we can all agree that Ruby is a great programming language, even if it is debated among developers. It's vital for us to recognize that we cannot definitively prove that one programming language is better than another, as it isn’t a science that has clear-cut answers.
00:03:22.880
This uncertainty leads us to consider whether language preference might be more akin to religion than science. In America, a country known for its diverse belief systems, we often see communities gathering around specific programming languages. It’s similar to how people bond over shared ideologies.
00:03:40.079
Our discussions often include specific jargon and metaphors that resonate within our communities. Furthermore, we have developed our unique ways of expressing our beliefs, which can sometimes border on fanaticism. We often also scrutinize and criticize other programming communities as if we are in a competition to prove our choice is superior.
00:03:58.399
Is this kind of loyalty to a programming language really a form of religion? I recently attempted to read a highly recommended book, 'Structure and Interpretation of Computer Programs,' and even though I didn't finish it, it introduced some profound ideas.
00:04:12.960
One essential notion is that we should not treat our viewpoints in computing as the only valid options. The author advised against feeling as though the key to successful programming lies solely in our hands.
00:04:29.920
This perspective emphasizes that while we may have our preferred languages, it is essential to remain open to different methodologies and opinions in the programming world. Therefore, choosing a programming language should be based on thoughtful consideration rather than blind loyalty. Ruby is undoubtedly exceptional, but it is not the only viable option.
00:04:44.160
It's crucial to understand why certain languages exist. They are designed under specific philosophies, embodying particular values. Similarly, programming languages evolve to address different challenges, leading to their unique syntaxes and paradigms.
00:04:57.760
Reflecting on various programming languages teaches us that they each have their strengths, weaknesses, and intended use cases. We shouldn't waste our time debating which language is the best; instead, we should focus on understanding the trade-offs that come with each option.
00:05:14.000
As a developer, we need to approach our craft with an open mind and a curious spirit. Every language has its value, and we can choose the right tool to solve the problems at hand. This perspective on flexibility is crucial in today's rapidly changing tech landscape.
00:05:33.840
It's essential to remain adaptable, continuously learning and evolving with technology. You might find yourself loving Ruby right now; however, it’s important to explore other languages and tools, as you'll become a more versatile and skilled developer.
00:05:47.360
One such language worth considering is CoffeeScript, which was developed by someone with a Ruby background. CoffeeScript compiles into JavaScript, allowing developers to retain the Ruby-like syntax while writing JavaScript code.
00:06:02.400
I have found that switching to CoffeeScript can be quick; during a hackathon, a colleague took only 15 to 20 minutes to learn it. If someone who is not familiar with it can adapt that quickly, it represents an exciting opportunity for Ruby developers. This shift can help you further leverage your Ruby knowledge while exploring JavaScript's capabilities.
00:06:13.840
If you start using CoffeeScript, it might also spark your interest in Node.js. Node has a supportive community and allows for full-stack JavaScript development, which can be attractive for many web developers.
00:06:26.400
Node.js enables asynchronous operations, paving the way for optimal performance during I/O-intensive processes. As you drop into Node, you might appreciate its capabilities over time, especially for certain application types that require building fast and efficient APIs.
00:06:50.560
Additionally, when considering alternatives like Closure, you learn to think about problems differently. Closure, being a functional programming language compiled to Java Virtual Machine, also allows you to leverage existing Java libraries, creating a dynamic environment for application building.
00:07:05.680
Exploring different programming paradigms broadens your understanding and problem-solving skills. You might find Closure beneficial for developing high-performant APIs as it encourages immutable data designs and can handle complex concurrency.
00:07:25.040
As you learn about various languages and their underlying philosophies, you become more adept at selecting the right technology for specific requirements. It’s not about which language is superior; it is about recognizing their unique advantages.
00:07:39.080
Understanding these diverse programming tools and their strengths prepares you for challenges you may encounter. For Ruby developers, looking outward towards other languages and programming approaches offers growth opportunities.
00:07:54.479
In closing, it’s vital to develop a mindset characteristic of problem solvers and product builders, not just Ruby developers. Your identity as a developer should be broader than any single language; you're a creator of solutions.
00:08:12.120
As we move forward into a tech landscape that rapidly changes, be prepared to pivot and adapt, whether it involves learning a new programming language or exploring technologies beyond Ruby.
00:08:24.800
I encourage everyone here to maintain an open perspective on your craft. Be willing to learn, explore new technologies, and adapt with an understanding that your goal is to create valuable products.
00:08:36.000
Ultimately, it’s not the language you choose but how you leverage the tools at your disposal to solve real problems. Keep this in mind as you continue on your development journey; Ruby may be your favorite language today, but there will be future opportunities to expand your skillset.
00:08:56.000
If you stay curious, actively learning and embracing new technologies as they arise, you will remain relevant and effective in your work. Thank you for listening, and let’s look forward to a dynamic future.