While I was studying CompSci in college, I have this mindset that you won’t ever be successful if you don’t know how to build a good desktop app. You may be successful in other things, but not as much if you know how to build apps with C# or Java. That the dream job would be working on big corporate companies like IBM, Lexmark, NEC, or Microsoft, wearing formal attire, owning a car, etc. But with the advent of social media, web applications, and startup companies, it totally changed my perspective towards software development. Since I started working on a company that builds web applications, it dawned on me that you can be very successful regardless of what language you use, the people you’re working with, or what kind of apps you’re building.
With the changed mindset, it opened the opportunity to discover/learn different programming languages that will possibly fit to the things I wanted to build. It so happens that my first job as an intern requires to code Ruby. I’ve never heard of Ruby 6 years ago, and I was super hesitant to learn about it. I’m used to working on an IDE, typing “public static main void” before starting any program, then compiling it, and then see the results (or errors). When I got my hands on Ruby (on Rails), I’m surprised to how easy and convenient building apps with it.
I like using Ruby (on Rails) because it gives me power to focus on creating solutions rather than always have to think about if the syntax of my code is right, or if I’m missing a semi-colon somewhere. Ruby itself is a very dynamic language that gives you access to override methods from its core classes if that will help you solve/optimize a problem. But that’s not recommended unless you really know what you’re doing. But it shows how versatile the language is to help you get what you want. With the help of the framework Rails, web app development has never been so easy and efficient. It provides numerous support for convenient implementation of database setup/query, object relationships, asset management, and tools to optimize performance. The versatility of the language to adapt to what the programmer needs is very helpful in focusing more on the app you want to build, and how to make it more efficient and beautiful.
I also love Ruby because of the community out there. 10 years ago, not very many are coding the language, but when Rails was developed, it created a huge advantage to building web applications, and after only a few years, many migrated/learned the language. Comparing 5 years ago when I go to StackOverflow to ask about a Ruby problem, I never get an answer for a week so I resolve to finding the solution on my own, and answering my own questions. That helped other people that encountered the same problem I had, and all because I documented the solution to it there. And now that many programmers are using Ruby/Ruby on Rails, it’s easier to get help because these people are also very passionate about the language, and very much willing to help and improve the way you code. They even build plugins/gems (RubyGems) so you can easily do things without having to code it yourself. They find solutions to common problems, and makes sure that no one will ever have to struggle with it ever again. This probably also true to other languages, but the Ruby community is just overwhelming. I can compare the support for Ruby like the support we have for the World Wildlife Fund. Ruby/Java are like the support for panda preservation, and PHP is like the support for cows, it’s just there but no one really gives a fuck.
So that’s it. To sum it up, Ruby changed the way I think about software development. People might say that you can be successful regardless of what programming language you use. But for me, use the language that you think you’re comfortable writing, and be good at it, so you will have more time focusing on the app you want to build, and how to make it beautiful and engaging. It doesn’t matter if Ruby, Objective-C, or Java, or all of them, as long as you’re confident and have a good grasp of what you want to build. I may never be a successful desktop software dev, but I’m pretty confident that I’ll be rich in web apps using Ruby (on Rails).