Trends in Government Software Developers
With the D.C. area in the middle of Microsoft Inspire, one of the year’s biggest tech events, we thought it might be interesting to see how developers working in government stack up with developers in other industries in terms of what technologies they use on a daily basis.
At Stack Overflow we’re able to segment our US traffic by industry (by matching IP address to ISP), as part of our mission to better understand and serve developers. One of the sectors we can examine is government employees, who make up about 3.5% of US traffic to Stack Overflow. This category is comprised of
- state and municipal governments.
- federal departments and agencies (such as NASA or the National Institutes of Health).
- military and Department of Defense traffic, such as the Navy and Coast Guard.
Here we’re sharing some trends we can see among software developers working for the public sector, how the tools and technologies they use differ from those used by the rest of the country, and how the sector has changed over the last year. Note that all the data shown here is aggregated across hundreds of thousands of visitors across thousands of government organizations (with no organization making up more than about 5% of the overall traffic), so we’re looking only at aggregate trends.
Technologies Used in Government
We’ve shared data before on what languages and technologies are most asked about or visited on Stack Overflow, most notably in the Stack Overflow Trends tool. These give a snapshot of what tools software developers are using today.
As you might expect, the list of languages and technologies that are most visited from government agencies is similar to the technologies most visited in the US overall. We thus might want to examine the lists side by side, to see what technologies are unusually often visited from government IPs.
We can see that the lists have a lot in common: Python and Java are the two most visited languages, followed by C# and Javascript. However, several technologies show notable differences. SQL, SQL Server, and .NET are more visited from government agencies than the rest of the US, while Android is very low among government technologies despite making the top 10 in the US overall.
Among notable programming languages and platforms, what was the difference in Stack Overflow traffic between government and the private sector?
Technologies more used in the public sector included Microsoft products like Excel, VBA, C# and Windows, as well as the scientific programming languages R and MATLAB. Java, Python, Javascript and C++ were used to roughly equal extents. There were several technologies government programmers barely touched at all, including mobile technologies like Android, iOS, and Swift, and particularly the programming languages Go, Scala and Ruby.
Besides programming languages and platforms, we may be interested in what databases the public sector works with.
Government agencies are more likely to work with the proprietary database system Oracle, as well as with Microsoft’s SQL Server. They’re less likely to work with NoSQL databases like MongoDB or Neo4J, and especially unlikely to work with open source “big data” technologies such as Spark or Hive that have become popular at web companies.
Fastest Growing Technologies
What technologies have been growing within the government sector?
We’ll compare the first half of 2016 (January-June) to the first half of 2017 to estimate the year-over-year growth (as a percentage change) in visits to questions about each technology. We’ll consider only the 100 tags that were most visited (across both years), and compare the average to the change. This helps us examine both which technologies are commonly used, and which increased or decreased the most.
The clear theme is an increase in technologies used in data science and analysis— it looks like that has become a growing part of programming in government work.
Two programming languages that stand out are Python and R, both popular for data analyses. The Python data science framework pandas is the fastest growing tag by far: it nearly doubled in traffic from 2016 to 2017. The Python libraries matplotlib and numpy are also growing, as is the R visualization package ggplot2.
Not all technologies associated with data analysis are growing. Excel has stayed steady, and MATLAB (which was already a fairly small percentage of government traffic) has been shrinking.
Most major programming languages (like Java, Javascript, C#, and C++) have stayed steady since 2016 in terms of their share of government traffic, though it’s worth noticing that traffic to PHP and Android have declined about 10%. Traffic to Oracle has seen a small uptick, suggesting it will continue to be a popular choice as a government database technology.
19 Comments
It would also be interesting to see how business/enterprise software usage compares to overall US use.
As you might expect, the list of languages and technologies that are most visited from government agencies is similar to the technologies most visited in the US overall. We thus might want to examine the lists side by side, to see what technologies are unusually often visited from government IPs.
I’m curious if you included Federal Funded Research and Development Centers and large government contractors in this, or if you only included government employees. I believe that more software development for the government is done at FFRCDs and contractors than by government employees.
Although when it may be hard to separate out traffic from these sources related to US government work than not. Several FFRDCs are run by universities, so I’m not sure if you can tell that it came from the FFRCD versus a university. Likewise, large contractors may also do commercial ventures and you probably can’t tell the context of a search.
As has been noted by other posters, contractors aren’t subject to the restrictions that make government software garbage, so including contractors would skew the dataset.
I’m curious that SAS doesn’t show up here. In the government environment I work in, the choice of serious tools is R supported by databases, or SAS (usually a big end-to-end SAS legacy system). I know no agencies using Python for data science except on the margins.
The absence of SAS here is likely in part due to the relative small footprint SAS questions and tags have on Stack Overflow( ex: today there are almost 800,000 tags for “python” with only roughly 8,000 tags for “sas”). SAS usage is undoubtedly prominent and widespread across government, but underindexed on Stack Overflow. I have often wondered why that is the case.
Just a guess, but it might be because a SAS license gets you the ability to call the official support hotline. Asking on SO is going above and beyond.
Python is the main language used around here for programming against Esri (spatial) data. It’s in our top 5 for that reason, and it’s all we do with it.
The gov should use more strings and arrays.
Definitely! Migration to ordinal types could be extremely expensive.
I know it’s in the text, but maybe you should specify in the title that this is US only, I was looking forward to see my country’s data when I saw the link in the blog sidebar of Stackoverflow.
I don’t understand why you split .Net tecnologies like .Net, Asp .net, asp.net-mvc and C# but you don’t do the same with Java and its tecnologies.
Hey loved the post! Great post and reaching the top I will be back to visit often.
http://www.masticoopon.com
Can you post the different between why questions that are closed from general users and government users. I’d like to know if government employees are more likely or less likely to post a rejected question. 🙂
From the second graph, it seems the explanation “Technologies more used in the public sector included Microsoft products like Excel, VBA, C# and Windows, as well as the scientific programming languages R and MATLAB.” actually refers to technologies more used in the GOVERNMENT sector, does it not?
Most of the programming languages on the list are likely not available to fed works due to them not being cleared for use at my shop. As a federal employee (non contractor), the Java SDK and Python just became available for us to develop with on our laptops in the last year, and only because i took the initiative to get them approved. Contract workers i believe don’t have to deal with those restrictions.
Also most Integrated Development Environments (Visual Studio & Eclipse) don’t meet federal regulations for accessibility (508 compliance) at my agency. Other agencies may grant waivers. It takes a lot of talent to write meaningful software in a modern language without and IDE these days… So historically we have mainly lashed applications together using Excel-VBA and SAS for this reason..
It takes a lot of problem solving ability to get things done in that kind of environment while staying compliant, but it can be pretty rewarding when you build something meaningful despite the barriers…
I’d argue that it takes a lot of hubris to write “meaningful software” without an IDE. You lose all of the security-focused code analysis and other features available, and it is impossible for any single developer to know both their entire application’s attack surface AND how to mitigate every threat.
The idea that there are such onerous restrictions on even the *possibility* of code quality makes me even more concerned for the state of the nation’s software security.
I’m almost certain any contractor developed software (the vast majority) is done in an IDE so i wouldn’t be quite as worried. Though as civilian fed it is not uncommon to still see folks adding to mainframe COBOL code base, which given the demographic trends presents itself as another issue. Don’t know too many millennials who are willing to get learned in JCL and zOS these days.
Contractor here. Though fairly easy to get approval, we still deal with a lot of those same restrictions.