Charting Stacks

Language Framework Popularity: A Look at Go

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

TL: DR – Gin and Beego rule the roost for Go based web application frameworks, go-kit and micro are the most popular microservices toolkits. The dependence on single contributors is a concern for several frameworks.

Framework: ‘a basic structure underlying a system, concept, or text.’

Since its initial launch by Google in 2009, Go has established a loyal and vocal community of users. The Go community continues to grow, and organisations such as Microsoft are investing very heavily into direct community involvement and evangelism. Within the community there is a very strong culture of knowledge sharing and training.

From our perspective at RedMonk it is rare to encounter a new infrastructure project which is not using Go in a significant manner. We are also seeing Go appear as a language of choice for people building cloud native applications. All of this still needs to be caveated with the fact that while Go is a language that is wildly popular with early adopters, it is only starting to show up in the enterprise. That said Go has featured in our programming language rankings over the last few years.

There is also a growth in interest in using Go for serverless applications. As we recently noted Amazon are providing formal Go support for Lambda. While various other solutions exist the formal support from Amazon is significant.

For the purposes of this analysis we have looked at frameworks we have heard mentioned in our conversations around Go. We have explicitly excluded frameworks targeted at serverless, which we will return to separately. We are including web focused frameworks as well as those that are designed explicitly for microservices and frameworks that extend the functionality of tools such as gRPC or act as replacements of core Go components. As always if there are frameworks you feel should be included please let us know in the comments or on twitter.

Framework Popularity

We looked at 20 different frameworks covering web applications and microservices, and a number of clear tiers emerge for both web applications and microservices, we will focus our remaining analysis on the top five web application and top four microservices frameworks respectively.

For web applications we see two top tiers of frameworks

Tier 1

Tier 2

We will touch on Martini again in this piece, but it is no longer an active project. Developers who are currently using it should migrate their apps to an alternative framework.

Four frameworks emerge as the clear leaders specifically focused around Microservices.

Notes: very few of the frameworks have a twitter presence, so we have not included details on twitter followers here. Additionally, the volume of questions for the various frameworks on stackoverflow is very low, reflecting a different community interaction model versus other languages.

A Closer Look at Web Application Frameworks

Commits & Issues

While stars are useful proxy for interest in a framework, commits and issues are a more interesting measure of the vibrancy of a community.

In terms of commits Iris is by far the most active currently, while Beego, Gin and Iris take a clear lead on the issues front.

Commercial & Community Contributions Web Application Frameworks

For each of the web application frameworks we identified, where possible, commercial contributions and issues raised, and split into three distinct groups – the primary commercial entity contributing code and/or raising issues, other commercial entities and the wider community.

Beego

The most significant core contributor to Beego worked at Apple during the most active period of the project, hence we note Apple as the largest commercial contributor.

We see the wider community raising the majority of issues with Beego. It is worth noting that we see the majority of Beego usage occurring in Asia.

Gin

The majority of commercial contributions to Gin occurred in 2015/16. The wider community raises the majority of issues, but the overall numbers are relatively small.

Martini

As noted above Martini is no longer actively developed. Developers still using the framework should look to an alternative, with Gin being the most obvious migration path.

Activity more or less ceased in 2016.

Echo

Overall activity in Echo has been dominated by LabStack, but has tailed off significantly over 2017.

Revel

Development and issues around Revel are predominantly from the community at this point, after the initial development work from Yext. That said overall activity is relatively low. What we find very interesting with Revel is its steady growth over the years.

Iris

Iris development is dominated by Makis Maropoulos, with over 80% of all commits coming from him. Issues come from the wider community.

Update – Feb 8th: A number of people, both publicly (although anonymously) and privately (people well known to RedMonk), have pointed out various issues regarding incorrect attribution of code committed to the Iris project and license violations. These make it impossible for us to discern an accurate view of contributions to the project.

A Closer Look at Microservices Frameworks

Commits & Issues

The overall number of contributions has eased off for all of the frameworks, reflecting their relative stability and maturity at this point. Go-Kit sees more issues than any of the other frameworks, but the overall totals are very low.

Go-Kit

Go-Kit is by far the most popular Microservices framework for Go and looks set to continue its trajectory for the foreseeable future. The majority of contributions come from the community.

Micro

The main contributor to Micro, Asim Aslam, has also founded a company around the project. Over 90% of the contributions come from him. The number of issues is very low. Micro has been on a solid upward trajectory since its launch.

Gizmo

Gizmo originated at the New York Times, which dominates the overall contributions. Issues are very low, and the level of overall activity is limited.

Kite

Kite originated from Koding who are the main contributor for commits and issues. Overall development has slowed as the main engineers working on the project have moved to other companies.

Commercial Support & Licensing Information

When we move to large scale enterprise deployments, commercial support and licensing choices can become significant factors. MIT is the dominant license and commercial support is only available on Micro.

Framework Commercial Support License
Beego None Apache 2.0
Echo None MIT
Gin None MIT
Revel None MIT
Iris None BSD-3
Go-Kit None MIT
Micro micro.mu Apache 2.0
Gizmo None Apache 2.0
Kite None MIT

Disclosures: Amazon, Google, Microsoft are current RedMonk clients.

5 comments

  1. That Iris author/developer is toxic. You see it has virtually no issues because the author actively deletes issues he can’t/won’t solve. Just Google it, that framework is marred with controversies. I would avoid it.

    1. Thank you. We have added a note above about the veracity of the data.

  2. […] is rare to encounter a new infrastructure project which is not using Go in a significant manner,” read the firm’s recent blog posting on the most popular Go-based frameworks. “We are also seeing Go appear as a language of choice […]

  3. On tracking Go adoption consider Perkeep (perkeep.org née Camlistore) for the projects influence on enterprise adoption. Seen in the top tier contributors.

  4. You should add https://github.com/go-ozzo/ozzo-routing into the micro framework category. It’s very simple with a descent API.

Leave a Reply

Your email address will not be published. Required fields are marked *