Listener Question: Mark asks, "What's Happening to the Ruby Developer Community?"
Published 11/23/2015
What's happening to the Ruby community? Is it flailing, or doing just fine? Some evidence and simple logic says both are possible. Let's explore it a bit further in today's episode!
Mentioned in today's episode:
- Ruby
- Ruby on Rails
- GitHub
- GitHut.info
- JavaScript
- CSS
- NodeJS
- PHP
- WordPress
- Laravel
- Java
- Android
- Python
- GitHub blog post about language popularity
- Avdi Grimm's discussion about the Soul of Software
- Jeff Atwood explains "Why Ruby" for Discourse
Today's episode is sponsored by Hired.com! If you are a developer or a designer looking for a job, Hired is a fantastic place to begin your journey! The special link for a doubled bonus is https://hired.com/developertea.
And lastly...
Please take a moment and subscribe and review the show! Click here to review Developer Tea in iTunes.
Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea my name is Jonathan Cutrell and today I'm going to be talking about the Ruby community and whether or not it is shrinking or growing and I'm also going to be discussing some of the reasons why that may be the case. I'd like to thank today's sponsor Hyrd.com. Hyrd is a fantastic place to go if you are looking for a job in the industry as a developer or as a designer. We will talk more about what Hyrd has to offer to you later on in today's episode. The topic for today's episode comes from a question sent in from listener Mark Thomas. Mark says first I've loved listening to the podcast. Great bits of interesting and helpful information. Insights, thoughts on all sorts of topics. Well done. Well thank you Mark. I appreciate that. To the question he says. Not sure if you've addressed this in a past podcast but I'd be really interested in your thoughts on the role of community in and around different languages, frameworks and worlds of development. I'm a full stack developer and I've been mainly working with JavaScript, Node.js and things in that realm of web development but I've been starting to learn Python, Django, Ruby and Rails more recently to better round myself out. I've noticed one thing so far when checking out the Ruby community and that is that at the very least lots of gems seem to be either old or relatively undeveloped. Also a quite a few of the relevant resources I find seem to have their heyday a couple of years back. Maybe it's just my perception relative to NPM and lots of JavaScript projects but it seems that the general pace of development and or interest seems to be relatively lower than in the past. So do you think that the Ruby or the Rails community has leveled out or become less active, why or why not. I would love to hear your thoughts on what causes communities to spring up or slow down. Hopefully that's not too broad. Thanks so much. Well, thank you for writing in Mark. I think this is a really interesting topic. I think it is an important topic and it's one that has gotten a lot of attention especially in the last year or so specifically around the idea of Ruby or Rails. The community around that framework and language slowing down. So in the first part of today's episode I want to discuss first of all whether or not it's true that the Ruby community or the Rails community seems to be slowing down. Secondly, I want to discuss why that may be the case. And then later on in the episode I want to discuss the role of community in a language, in the life of a language, in the life of a framework and kind of talk about what those things do for those languages and frameworks. So first we're going to look at some numbers and I have gethut.info pulled up. You can go and look at this as well. And this is basically an interactive simulation that shows all of the numbers related to the popularity of different repositories on GitHub based on the language that that repository relies on. So if you look at gethut.info you'll notice that it has quarter two of 2012 all the way through quarter four of 2014 as of the time of this recording. And if you look at each of those quarters you'll notice that JavaScript is at the top of that list on every single quarter. Now they're sorting these by the active repositories for that particular language and you'll also notice that in quarter two of 2012 all the way through quarter three of 2013 Ruby is the number two language on that list. And then in quarter four that is taken over by Java but Ruby only falls to number three in that list. As you continue through the quarters you'll notice that in quarter two 2014 Ruby drops to number four in quarter three it drops to number five and in quarter four it drops to number six. So from this particular graph and from these numbers you'll notice that the numbers show that Ruby is losing popularity in terms of active repository development. As of quarter four in 2014 the top languages before Ruby include JavaScript, Java, Python, CSS and PHP. So let's talk about these other languages that have beat out Ruby in terms of the number of active repositories. First of all let's talk about the primary browser level languages that are in those top languages. Number one is JavaScript and number two is CSS. Both of these languages are found in the browser. So just about any project that is going to be launched on the web, ie a website that would have JavaScript and CSS most likely. Very few projects that ship to the web will not have JavaScript and CSS. JavaScript specifically has a larger footprint particularly because of Node.js. Node allows Developer To run JavaScript without running it in a browser. It says server side JavaScript runtime. So both of these languages are going to have a pretty strong share of the active repositories. A lot of people who are using GitHub are using it to hold on to their website files. Even if that's just a static website they're using GitHub to hold on to just basic website static files. That leads me directly into the next language that I want to talk about because it is intrinsically connected to the web and that is PHP. A lot of us got our start on PHP and one of the most widely used frameworks on the web WordPress is built primarily on PHP. So we're naturally going to see a lot of repositories using PHP as well. Of course the growing popularity of PHP frameworks like Laravel can also have a strong effect on the growth of PHP. So we're seeing PHP grow and we're seeing a lot of websites being added to GitHub over time. It should be noted that Ruby was a very popular language on GitHub early because it has been hosted on GitHub basically since the very beginning and GitHub itself was built on Rails. In fact, I believe it is still built on Rails so it makes sense that the people using GitHub are either aware of Ruby or they appreciate Ruby in those early days. So we have a large amount of Ruby projects early on on GitHub and even an official post from the GitHub team has made note of that early correlation with Ruby. The next language that deserves some attention here is the number two language which is Java. I'm sure you may be wondering if you are a web developer why Java is so high on this list and I really only have two theories for this because most of these languages were written in 1995 or 1996 with the exception of Python which was introduced in 1991. But Java is the primary language for the Android development system. So all of those Android phones which is the largest phone platform in the world, most phones that you see if you were to pick a random phone out of a group of people, it is probably going to be an Android phone if that group of people is sufficiently random. There are a lot of applications that are being written for those Android phones and those are all getting that Java tag applied so it makes sense that Java should be in those top five languages. Python leaves us with one language and that language is Python. Python is in many ways similar to Ruby. It is considered a dynamic language and it is used for a lot of scripting situations in some ways similar to Ruby. Python is an interesting language because it was introduced earlier than most of these other languages and it's found on a few more platforms. It's typically used in more projects like robotics projects for example. I am not a Python developer. I have a little bit of experience with it but I am not a Python developer. So I haven't done a lot of research into the subject. My guess is that part of the reason why Python is above Ruby here is because it's been around a little bit longer and over time those latent projects that weren't uploaded to GitHub in the early days are finally now being uploaded to GitHub. There could also be a surge in usage of Python. But there is nothing that I know of that significantly puts Python over Ruby. It is mostly a preference difference. I have also heard from some people that Python has been adopted pretty widely as a computer science base level language where Java used to be kind of the base language that was used for computer science tracks. Now a lot of people are using Python. I would also say that more people probably use Python for scripting utility tools on their computer or for scripting utility tools to go along with other larger projects. So that could be part of the reason for this as well. I think it's also important for us to note that these statistics are not necessarily directly related to whether or not that particular language is succeeding and has a successful community. Specifically, let's talk about Rails for a second. When you're looking at statistics, if you look at active repositories, Rails only makes up a single digit on that. That is one repository and if you count Rails API, that's two repositories. So keep in mind that data is not necessarily information. You have to think about how that data fits in with the whole picture. You have to be able to analyze the reasoning behind that data exactly what is happening as a result of different pieces of the puzzle. I want to take a minute to talk about today's sponsor, hire.com. If you are a designer or a developer and you're listening to this show and you're thinking about looking for a new job, whether you have had a job in the industry or not before, hire.com is a fantastic place for you to start. You will go through the entire hiring process through hire.com. Hired is connected to over 2,000 major tech companies from around the world, including, for example, GitHub. If you are a Ruby developer, there are plenty of companies on hire.com that are Ruby centric. So check it out hire.com. They have a special deal for developer T-listeners. Normally, if you get a job through hired, you get a $2,000 signing bonus as a thank you from hired for using their service. But if you sign up for a hired account through the special link that you could find at spec.fm, the show notes for this episode will have that link. If you sign up through that link, you get a doubled bonus and is a $4,000 signing bonus if you get a job through hired once you sign up with that link. So check it out in the show notes spec.fm. Thank you again to hired for sponsoring Developer Tea. We've been talking about a question sent in from listener Mark Thomas. Mark asked about whether or not the Ruby community is growing or shrinking and why. He's seen quite a few projects on GitHub and around the internet that are Ruby centric that seem to have been kind of left by the wayside. And the data kind of backs this up. It is true that there are fewer projects that are actively being developed as the statistics are showing that to be the case. We've done a little bit of analysis at the beginning of the show, but it's not necessarily the whole picture and it's important to keep in mind that some of that data needs to be analyzed further. I have not done that deep analysis. There are probably people in the community who listen to this episode who know a little bit more about this than I do, but I do want to point you to that resource again. It is gethut.info. That will be in the show notes at spec.fm. But now I want to talk about a slightly different subject that is it's related, but it's technically different. And that is the importance of the community for the health of the language and the health of major projects that use the language. But before we dive into that subject, I want to be very clear that I am not intending to be overly optimistic about Ruby or any other programming language for that matter. I don't know what the future has in store for Ruby. I do know that right now it is a valid choice for a web programming language. I know that it has a vibrant community because I am a part of that community. I know that a lot of people use Ruby every day and they are successful in their jobs and they are solving problems with the language every day. But I don't necessarily want to say that Ruby hasn't fallen. The numbers show that Ruby has less energy behind it than it had a few years ago. Of course that is a limited data set. It's not one that I personally gathered. So a lot of this is coming through the filter of my opinions. But keep in mind that it is important to be critical of the language of any technology and to be willing to change and to be willing to look at everything with a critical eye. Because if you tie yourself to the technology and the technology goes down, then you have ignored the signs. So I really appreciate the critical look at this discussion and I appreciate the question that Marcus sent in for that reason. We have to be able to look at the tools we use with a critical eye. For another opinion on this subject from somebody in the Ruby community and I will also include another opinion from somebody in the JavaScript community in the show notes. The one from the Ruby community will be AvdGrim. I'm not sure who I'm going to include in the JavaScript camp as to why these numbers look the way they do. But both of those are critical reads and they're worthwhile to look at. So take a look at the show notes. You can find those again at spec.fm. Now I want to share my opinion about the importance of the community. And when we talk about community, really what we're talking about is a group of individuals who are willing to help each other out, who are willing to propagate the learning of a particular language or framework, who are willing to support each other and come to meetups or come to conferences and talk about the technology that we're using together. They're willing to open source the stuff that they're working on possibly. They're willing to talk about the stuff that they're working on on Stack Overflow. And really all of those things have one main thread in common. And that is communication. And of course, that should be the case, right? Community and communication come from the same root word. That commune idea, the ability to discuss things with one another, the ability to gather around and be able to work together in a community. That is essential to the long term health of a given language. Now I will say that some communities are more able to do this than others. But quite honestly, it's very difficult to judge a community objectively when so much about communication is subjective. So much about what is considered good communication is subjective. So it's a little bit difficult to say, who has the best community? I don't think that is a particularly useful argument. The most important thing to look at is are people communicating? Are they solving problems together? Are they collaborating in the space of that particular language? Those are the signs of a good community, in my opinion. And again, most of the discourse around this topic is either 100% opinion or it is opinion that is substantiated by some number of data points, but ultimately it is an opinion. So keep that in mind as you look at languages to adopt. Of course, the more people that there are using that language, the more likely there is a thriving community, a large enough community that you'll be able to get your question answered, for example. So that's something to look for in a language. And Ruby certainly does have that at the moment. There are quite a few other languages that have that though. Python, Java, even iOS Swift, there's a large group of people who talk about these languages all the time every single day. So I wouldn't say that community is lacking in any of the major languages, but to be a good developer, you must be willing to adopt a constant willingness to change. And that doesn't necessarily mean that you always let the rug get pulled out from under your feet. You don't need to be switching tools constantly. We've talked about this on the show in the past, but it does mean that you should be able to look critically at the tools that you have and find their weaknesses and determine whether or not that weakness is going to be a fatal flaw for your particular problems that you are solving for the things that you are building with those tools. Thank you so much for listening to today's episode of Developer Tea. And thank you so much again to Mark Thomas for sending in today's question. If you or someone you know has a question that you would like to see answered on the show, you can join me on the Slack community for spec by going to spec.fm slash slack. Of course you can find that by just going to spec.fm and looking in the show notes for today's episode. You can also find the show at at Developer Teaon Twitter and you can find me personally on Twitter at @jcutrell. Once again those will be in the show notes. If you don't want to miss out on future episodes of Developer Tea, luckily for you, you can subscribe to the show in just about any podcasting app that you choose to use. Subscribe to the show and every episode will be delivered directly to your device automatically. And lastly I have one request of you. If you are enjoying this show, please consider leaving a review in iTunes. This is the easiest way you can help the show succeed in the long term. Leaving a review helps other people just like you find Developer Tea. Thank you again to today's sponsor hire.com. If you are looking for a job, make sure you go to spec.fm, look in the show notes and sign up for an account at hired. By using that special link in the show notes, if you end up getting a job through hired, your signing bonus will double from $2,000 to $4,000. So make sure you check out the show notes and check out hired.com. Thank you again for sponsoring the show. Thank you for listening to Developer Tea. And until next time, enjoy your tea.