I developed a habit of reviewing Github’s trending lists every week. I will review the top trending projects across all languages and for the few languages that I am interested in following. Recently, that list for me has been:
I started looking at these trending lists for reasons similar to others. It was a way of finding new and interesting projects. It was only recently that I started to realize that I was able to glean more of these lists than before.
Why Github trends?
There are other ways that as software engineers, coders, and programmers, we can find out about interesting projects that we had not heard of before. There are pleny of podcasts that discuss different projects or interview engineers behind prominent tools. There are blogs and forums where projects are discussed. I think the reason that I look at the github trending lists is because it is more structured, more immediate, and closer to the source.
Writing this now, I am thinking about the type of questions that are hard to answer elsewhere:
- What sort of tasks is a programming language suited to?
- What direction is a programming language heading in?
I find the latter two questions more interesting. Aside from answering specific questions, the trending lists also highlights patterns that shed light on questions I might not have thought to ask.
Patterns in Github trending lists
I read a few articles highlighting the achievements and implications of work in Julia thus far. I took a look at Julia’s Github trending list, expecting to see a list of mathematical and statistical tools. What I saw were web frameworks, simple low level utilities, and what I thought I might find. When I considered further, it made sense. Julia 1.0 was recently released. Given the first major version was just released, given the community is growing, and given the time the community has had, what is on the trending list highlights that Julia is in its growing phase.
Although, the web may constitute a majority of code written today, python highlights the possibilities for a language that did not specifically spring to enhance the web experience. In the python trends, I found more solutions geared towards machine learning, data, crawling, and obtaining information from various APIs. Specifially, I saw mentions of PyTorch, Keras, TensorFlow, Youtube, SoundCloud, home automation, and another lightweight machine learning library.
Acting on patterns
For me, the patterns are more interesting than the new project trending for a week. I find that while I will look at a new project and perhaps review its source code, I am unlikely to remember this project unless I have an immediate application in the near future. Patterns are something that generally remain on hand at the back of my mind and come up in conversation with colleagues.