Thisis a bit of a "holy war" among software developers; one that's been the subject of many debates and in-jokes. I use spaces, but I never thought it was particularly important. But today we're releasing the raw data behind the Stack Overflow 2017 Developer Survey, and some analysis suggests this choice matters more than I expected.
Analyzing the data leads us to an interesting conclusion. Coders who use spaces for indentation make more money than ones who use tabs, even if they have the same amount of experience:
Indeed, the median developer who uses spaces had a salary of $59,140, while the median tabs developer had a salary of $43,750. (Note that all the results were converted into US dollars from each respondent's currency). Developers who responded "Both" were generally indistinguishable from ones who answered "Tabs": I'll leave them out of many of the remaining analyses.
This is an amusing result, but of course it's not conclusive by itself. When I first discovered this effect, I assumed that it was confounded by a factor such as country or programming language. For example, it's conceivable that developers in low GDP-per-capita countries could be more likely to use tabs, and therefore such developers tend to have lower salaries on average.
As another hypothesis, we know that different types of developers often use different indentation (e.g. with DevOps developers more likely to use spaces and mobile developers more likely to use tabs), often because they use different editors and languages. The Developer Survey asked both about what programming languages each respondent uses (Python, Javascript, etc) and what "type" of developer they are (web developer, embedded developer, etc).
Yes, the effect existed within every subgroup of developers. (This gave a similar result even when filtering for developers only in a specific country, or for ones with a specific range of experience). Note that respondents could select multiple languages, so each of these groups are overlapping to some degree.
I did several other visual examinations of possible confounding factors (such as level of education or company size), and found basically the same results: spaces beat tabs within every group. Now that the raw data is available, I encourage other statisticians to check other confounders themselves.
The model estimated that using spaces instead of tabs is associated with an 8.6% higher salary (confidence interval (6%, 10.4%), p-value % change each factor contributed to a salary rather than the dollar amount). Put another way, using spaces instead of tabs is associated with as high a salary difference as an extra 2.4 years of experience.
So... this is certainly a surprising result, one that I didn't expect to find when I started exploring the data. And it is impressively robust even when controlling for many confounding factors. As an exercise I tried controlling for many other confounding factors within the survey data beyond those mentioned here, but it was difficult to make the effect shrink and basically impossible to make it disappear.
Correlation is not causation, and we can never be sure that we've controlled for all the confounding factors present in a dataset, or indeed that the confounders were measured in the survey at all. If you're a data scientist, statistician, or analyst, I encourage you to download the raw survey data and examine it for yourself. You can find the code behind this blog post here if you'd like to reproduce the analysis. In any case we'd be interested in hearing hypotheses about this relationship.
In astronomy and cosmology, dark matter is a currently-undetermined type of matter hypothesized to account for a large part of the mass of the universe, but which neither emits nor scatters light or other electromagnetic radiation, and so cannot be directly seen with telescopes. - Wikipedia on Dark Matter
My coworker Damian Edwards and I hypothesize that there is another kind of developer than the ones we meet all the time. We call them Dark Matter Developers. They don't read a lot of blogs, they never write blogs, they don't go to user groups, they don't tweet or facebook, and you don't often see them at large conferences. Where are these dark matter developers online?
Part of this is the web's fault. The web insists on moving things forward at an rate that makes people feel unable to keep up. I mean, Google Chrome has upped two version numbers just in the last 3 paragraphs of this blog post. Microsoft probably created a new API and deprecated an old one just while I was typing this sentence.
Lots of technologies don't iterate at this speed, nor should they. Embedded developers are still doing their thing in C and C++. Both are deeply mature and well understood languages that don't require a lot of churn or panic on the social networks.
Where are the dark matter developers? Probably getting work done. Maybe using
ASP.NET 1.1 at a local municipality or small office. Maybe working at a bottling plant in Mexico in VB6. Perhaps they are writing PHP calendar applications at a large chip manufacturer.*
Personally, as one of the loud-online-pushing-things-forward 1%, I might think I need to find these Dark Matter Developers and explain to them how they need to get online! Join the community! Get a blog, start changing stuff, mix it up! But, as my friend Brad Wilson points out, those dark matter 99% have a lot to teach us about GETTING STUFF DONE.
They use mature products that are well-known, well-tested and well-understood. They aren't chasing the latest beta or pushing any limits, they are just producing. (Or they are just totally chilling and punching out at 5:01pm, but I like to think they are producing.) Point is, we need to find a balance between those of us online yelling and tweeting and pushing towards the Next Big Thing and those that are unseen and patient and focused on the business problem at hand.
I like working on new stuff and trying to new ways to solve old (and new) problems but one of the reasons I do like working on the web is that it's coming to a place of maturity, believe it or not. I feel like I can count on angle brackets and curly braces. I can count on IL and bytecode. These are the reliable and open building blocks that we will use to build on the web for the next decade or three.
While some days I create new things with cutting edge technology and revel in the latest Beta or Daily Build and push the limits with an untested specification, other days I take to remember the Dark Matter Developers. I remind my team of them. They are out there, they are quiet, but they are using our stuff to get work done. No amount of Twitter Polls or Facebook Likes or even Page Views will adequately speak for them.
The Dark Matter Developer will never read this blog post because they are getting work done using tech from ten years ago and that's totally OK. I know they are there and I will continue to support them in their work.
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
A PostgreSQL database developer is someone who is actually working on the project, not someone using it to developan application or a website. We don't hire programmers, we reach across the Internet, drawing the best databasedevelopers in the world to PostgreSQL. Read about the people behind PostgreSQL andcheck out the group picture from the 2006PostgreSQL Anniversary Summit.
The information available in this section will mainly interest PostgreSQL developers. Here you'll find theroadmap with current TODO list, coding andtesting information, CommitFests, mailing lists, andthe developer FAQ. Keep in mind the information available here is notnecessarily available in the release version of PostgreSQL - it may not yet even be in the development version.
The open Web presents incredible opportunities for developers. To take full advantage of these technologies, you need to know how to use them. Below you'll find links to our Web technology documentation.
Businesses, researchers, and developers all over the world have used the X Developer Platform to creatively innovate, gain valuable insights, and shape the future. Explore how they did it and get inspired to use the APIs in your own way.
Strava athletes upload millions of activities every day. Our open API and this rich data set yield diverse opportunities for developers, from creating new hardware to augmenting the Strava experience.
The Strava V3 API is a publicly available interface that allows developers to access Strava data. The interface is stable and used by the Strava mobile apps. However, we occasionally make major changes to improve performance and enhance our features (see the changelog for more details).
Strava reserves the right to revoke your API Token if you violate the API Agreement, including but not limited to, uses that enable virtual races or competitions and uses that replicate Strava sites, services or products.
Join the Strava developer community to learn, ask questions, and hear from other developers. Remember, never share access tokens, refresh tokens, authorization codes, or your client secret in a public forum.
The Digital Accessibility Foundations - Free Online Course page introduces a self-paced course from W3C WAI for developers and others. It is designed for technical and non-technical learners, including students, instructors, professionals, and people with disabilities. The course is free, with optional certificate.
Cloud coaches are highly skilled developers, ready to assist you in your Oracle Cloud development journey. Cloud Coaching office hours provide an opportunity for you to engage directly with experts and find additional help for your organization.
3a8082e126