Average Income per Programming Language

Update 8/21:  I’ve gotten a lot of feedback about issues with these rankings from comments, and have tried to address some of them here The data there has been updated to include confidence intervals.

———————————————————————————————————

A few weeks ago I described how I used Git commit metadata plus the Rapleaf API to build aggregate demographic profiles for popular GitHub organizations (blog post here, per-organization data available here).

I was also interested in slicing the data somewhat differently, breaking down demographics per programming language instead of per organization.  Stereotypes about developers of various languages abound, but I was curious how these lined up with reality.  The easiest place to start was age, income, and gender breakdowns per language. Given the data I’d already collected, this wasn’t too challenging:

  • For each repository I used GitHub’s estimate of a repostory’s language composition.  For example, GitHub estimates this project at 75% Java.
  • For each language, I aggregated incomes for all developers who have contributed to a project which is at least 50% that language (by the above measure).
  • I filtered for languages with > 100 available income data points.

Here are the results for income, sorted from lowest average household income to highest:

Language Average Household Income ($) Data Points
Puppet 87,589.29 112
Haskell 89,973.82 191
PHP 94,031.19 978
CoffeeScript 94,890.80 435
VimL 94,967.11 532
Shell 96,930.54 979
Lua 96,930.69 101
Erlang 97,306.55 168
Clojure 97,500.00 269
Python 97,578.87 2314
JavaScript 97,598.75 3443
Emacs Lisp 97,774.65 355
C# 97,823.31 665
Ruby 98,238.74 3242
C++ 99,147.93 845
CSS 99,881.40 527
Perl 100,295.45 990
C 100,766.51 2120
Go 101,158.01 231
Scala 101,460.91 243
ColdFusion 101,536.70 109
Objective-C 101,801.60 562
Groovy 102,650.86 116
Java 103,179.39 1402
XSLT 106,199.19 123
ActionScript 108,119.47 113

Here’s the same data in chart form:

Language vs Income

Most of the language rankings were roughly in line with my expectations, to the extent I had any:

  • Haskell is a very academic language, and academia is not known for generous salaries
  • PHP is a very accessible language, and it makes sense that casual / younger / lower paid programmers can easily contribute
  • On the high end of the spectrum, Java and ActionScript are used heavily in enterprise software, and enterprise software is certainly known to pay well

On the other hand, I’m unfamiliar with some of the other languages on the high/low ends like XSLT, Puppet, and CoffeeScript.  Any ideas on why these languages ranked higher or lower than average?

Caveats before making too many conclusions from the data here:

  • These are all open-source projects, which may not accurately represent compensation among closed-source developers
  • Rapleaf data does not have total income coverage, and the sample may be biased
  • I have not corrected for any other skew (age, gender, etc)
  • I haven’t crawled all repositories on GitHub, so the users for whom I have data may not be a representative sample

That said, even though the absolute numbers may be biased, I think this is a good starting point when comparing relative compensation between languages.

Let me know any thoughts or suggestions about the methodology or the results.  I’ll follow up soon with age and gender breakdowns per language in a similar fashion.

197 thoughts on “Average Income per Programming Language

  1. I’m surprised no one stated what seems to me to be the obvious about Puppet: it’s a language used by system administrators, which, on average, are paid less than software developers.

    And Puppet *is* a language, by the way, in addition to being a tool. Anyone thinking to the contrary is welcome to look at my puppet users module on github, which isn’t even the most complex model I’ve written, much less seen.

    Coffeescript is a layer on javascript, used mainly by startups and independent developers, which is probably pushing it down on the list.

    XSLT is used mainly by enterprise, to an extent greater than Java.

  2. XSLT is neither ‘terrible’ or ‘difficult’. Like any language it can be miss-used, you can write poor OO Java and people who know what they’re doing will snort at you. If you follow best practice patterns then your code will be efficient and well structured, that goes for any language.

    Organisations pay good money for good XSLT developers because they know what they’re doing and this is appreciated. Also, people who are good at XSLT come with a lot of other related skills and Information Architecture knowledge and experience too.

    If you are processing/transforming XSLT via something like Java then in most cases you’ll be wise to use XSLT as it can replace large swathes of Java code with only a few well chosen lines. While your at it, if you’re really smart you’ll also use the XML Pipeline Language (XProc) on top of that and you’ll replace yards more needless Java into the bargain.

      1. ….except for it’s mother, which is Smalltalk, of course, and which is still going strong and is much more producvtive than Java.

      2. C#/.NET is superior to Java in every way. Not everything in Java is a class: http://www.idevelopment.info/data/Programming/java/miscellaneous_java/Java_Primitive_Types.html . Java has yet to implement lambda expressions, it doesn’t have LINQ, a far more natural syntax for accessing SQL database information, simple syntax for getters and setters int x { get; set; } (done), structs with copy by value assignment instead of by ref, operator overloading. It’s got everything Java has and more. Learn more languages before you express an uninformed opinion on Java. It may be more widespread than C#, but that does not make it a better language.

    1. For a few reasons.

      1) C# is dying. Sorry to say, but this tech is slowly going the way of the dodo. I dedicated a lot of my career to C# and it appears that even MS isn’t using it as much as they were for a while.
      2) Java is “more” cross-platform than C#.
      3) The loss of support in XBox live is killing the broader appeal of C#… http://en.wikipedia.org/wiki/Microsoft_XNA… According to an email sent on 31 January 2013, XNA is no longer actively being developed, and it is not supported under the new “Metro interface” layers of Windows 8 nor on the Windows RT platform.

      Java has been more widely used for a long time and MS entered this enterprise development knowing that things would be competitive. Unfortunately for them, they are definitely losing.

      1. Could you give some supporting info about the C# decline? Where is Microsoft pushing delevopers if not .NET?

        TIOBE (for what it’s worth) shows a dip since a 2012 surge but not massive drop.

        http://www.tiobe.com/index.php/paperinfo/tpci/C_.html

        I also would imagine that XNA would bring down C# salaries, given the “young, eager, and underpaid” factor in game programming salaries, and its loss might increase this number.

        At least where I live, the big banks are still looking for C# programmers.

      2. The only reason Microsoft killed XNA is because game-building tools like UDK and Unity have become cheap or even free, they’re widely available and far more preferable to indie devs than XNA’s low-level graphics library functionality. Has nothing to do with C#/.NET. .NET is also open source, runs on Linux too. It’s just that most people don’t know that.

      3. Yes, I’m awaiting the same situation in a few years that occurred with Cobol, with large finance companies paying heft wages to find those who can still program in it.

      4. 1) You’re kidding right? What exactly do you think C# is being replaced with?
        2) So what?
        3) How many XBox developers do you know? I know a few who dabble with it for fun but it’s in their spare time after they come home from writing non-XNA C# code. XNA is hardly a significant force behind C#, so using it as a metric to the language’s viability is…. what?
        4) “entered this enterprise development knowing things would be competitive” yea – about 30 years ago… just sayin.

        Things change, the needs placed on technology change, and thus the role of C# is changing. .Net as a platform hasn’t been around terribly long, and I would say it’s finally coming into “maturity” so to speak in which there’s a more clearly defined space that it fills. In the early years organizations were still figuring out how/where to incorporate it, and updating legacy systems to take advantage of the new developments. That’s not really the case these days, and there’s a pretty solid segment that’s perfectly happy with it. To say that means the language is dying is…. mindboggling.

      5. Err.. .NET (and therefore C#) is the framework for Windows 8 store apps. If MS think the language is dead, why would they INCREASE its use in their new flagship operating system?

        Java may be more ‘cross platform’, but wtf does that have to do with anything? If you develop a business app, you run it on a set of servers. It’s kinda unlikely that a business is going to choose its language of development based on whether it can easily switch the servers’ OS.

        In the mobile development sphere, Java only runs on Android. That’s not overly cross-platform.

        And for desktop applications, why would you even consider Java over .NET for Windows or the objective-c Mac OS X equivalent.

        Then comes web. Java is too clunky to be used for anything other than large, enterprise level web-apps. .NET/C# is easier to develop in, dominating this field compared to Java and, if developed correctly, can out-perform Java in business apps too.

        Your arguments are so flawed, they’re hilarious!

        I have been hired as a programmer as both a Java and .NET developer and I can definitely see that it’s the other way around. Java, however powerful, is not keeping up with the pace set by the other technologies. If it wasn’t for Android, it’d be so niche it may as well be dead.

    2. One reason I imagine is because of Android. If you’re going to build a mobile app you’ll probably target iPhone and Android leaving Win Phone as a “if necessary.” Of course this is just the vibe I get from talking with other devs and I have no data to back that up.

      1. Windows Phone is hardly the main use case for C# developers. Many, many enterprise applications are written in C#/ASP it’s a very powerful platform for building web applications. In addition, its used in Windows development.

    3. C# covers a wide variety of both high paying and low paying Microsoft’s done a pretty good job over the last bunch of years getting free versions of visual studio out there, as well as plenty of pre-built scaffolds to get a basic site/application together quickly. You no longer have high costs as a bar of entry to get on the Microsoft platform.

      Java is still favored heavily by enterprise developers. I don’t think i’ve ever heard someone say “I need to throw together a quick site for a client, I know, I’ll use java!!”. They go for something like an MVC project in .Net – which is – you guessed it, mostly C# these days.

      On a side note -it makes me very happy that VB.net isn’t even on this list. VB needs to just go away. The sooner the better.

      1. Regardless of one’s preferences, I am still unclear as to why VB.NET is not on the list. I currently program in C# and VB using the .NET runtime and maintain a lot of VB.NET code. MS posts their code samples in both languages. My question is not a matter of liking a language, only why it’s not up here. Missing data or actual lack of enough use? I’m replying to you as I see you noticed that as well and you might have some factual basis for why it’s not up there. I am not trying to pick a fight about VB as I personally do not care but I know some people are offended by the language so I have to add that. If anything my preference would be C because that was my first language on which I received formal training, but I’m more or less language agnostic. 🙂 Thanks!

        1. I would encourage anyone to look at the job trends. These are based on postings for jobs so the more postings, the higher the demand (presumably). Does this mean that the pay is requisite: not even close… I have seen Perl jobs paying $160 per hour and Java jobs paying only $80k. For those wondering about AS3, VB, or C#, all I can say is that according to the stats from Indeed, which may not reflect industry-wide demand, they are all on a serious decline now hovering near 0. But the demand for many types of tech have declined according to indeed’s numbers.

          http://www.indeed.com/jobtrends?q=HTML5%2C+vb.net%2C+C%23%2C+C%2B%2B%2C+Javascript%2C+Java%2C+CSS3%2C+Actionscript&l=

          According to this site, C# slightly outnumbers C++. (AS3 and VB barely count). I do like how they’ve broken out Java and Java for Android which makes it easier to evaluate.

          http://jobstractor.com/monthly-stats

          Lastly, we have a sort-of gold standard for programming language demand. These guys even list trends. Make sure that if you don’t see you language of choice that you scroll down a bit to their second chart that has a lot of other languages listed.

          http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

          Enjoy

      2. To be honest I don’t think I’ve ever heard very, very few people say “I need to throw together a quick project… I’ll use .Net MVC”. Python, Ruby, PHP even Go I’ve heard but also if not more so Scala, Groovy or Python and Ruby on the JRE which then make use of common Java libraries. I can’t recall too many projects coming out of hackathaons that weren’t somehow MS centered being .Net based. C# .Net is as stuck in the enterprise as Java EE.

    4. C# is what Java should’ve been. I have a feeling the Java developers are getting paid more because they’re declining in number: to me, Java’s done – it’s now outdated and archaic, and I’d never choose it in preference to C# for new projects, if I didn’t absolutely have to. And I don’t. At this point, I’d rather pass up the project.

  3. A few thoughts on the low end:

    They tend to recruit new hires from the newly graduated. Haskell is indeed academic. It’s entirely possible the major contributors to github for these two languages are all students living in student neighborhoods.

    My theory: there’s a generational effect. People who know Java and commit to Github did so fifteen years ago, and are further along their professional career. They have high income jobs, and live in affluent areas with other rich people. In contrast, people who know Puppet and Haskell are college students (certainly these are popular with my college student employees). In ten years, they’ll be where the Java people are financially. Maybe get there faster, maybe not.

    If true, then langauge selection won’t affect starting salary or lifetime accumulated of wealth.

    1. Err, Puppetlabs tends to recruit new hires from the newly graduated. And their product benefits greatly from open source modules being published, so there’s going to be a pretty big Puppetlabs skew.

  4. It’s hard to answer questions about “why” or “how” on this data because you need to remember what it is actually showing. It’s not “average salary for programmer in language X”. What it really shows is average salary made by developers who primarily contributed to github projects sliced by majority language of that project.

    Someone writing ActionScript projects on GitHub could be using Haskell at work. People paid more may be more likely to hide salary information. Certain languages may be more or less likely to get contributors on github from different salary ranges, and so on (combine with the obvious disparity in number of data points and lack of baseline/control data). I know I primarly contribute javascript, clojure, or Go even though my day job is C#.

    So with that said, it’s hard to draw any conclusions that aren’t obviously flawed. The data is neat, but ultimately may be more misleading than illuminating.

  5. Also note that this is household income, not individual programmer income. Entirely possible that some of the people that responded to the survey have working spouses…a point which, for me, invalidates the entire point of this article.

    1. And if the income is self-reported, the data may better indicate biggest bullshitters per programming language.

  6. No Cobol on the list? I can only assume your spreadsheet couldn’t handle an Average Household Income of ‘Whatever They Want’.

  7. Assembly is not on the list, I’m a bit of a noob, but assembly is a programming language right? and someone still has to be writing the basic codes for x86 processors? Or is it just that rare. Surprised to see action script so high up there… If only I had kept making flash games 😉

    1. Normally asm is only used when you need a very short amount of asm or if you need to read it (ie: reverse engineering). So unless you’re developing an OS, a compiler, an exploit, or reverse engineering something I can’t see it being used.

      No-one writes programs in asm anymore. Not even malware developers. C is good enough for that kind of stuff. It’snstill a great learning experiance.

  8. Are you sure? C has over 2000 data points while C++ just 800? Personally, I do not know anyone using old plain C. But I know lots of C++ programmers…

  9. It is very good that finally someone brought the real story about the things.
    There is long time since I have read a positive statement about ActionScript, since the forged stories about it from Steve Jobs, and it’s low quality devices and OS.
    The true story behind the war against Flash/ActionScript is just because it’s unbeatable Quality and Power.
    For instance – an Enterprise High Quality application developed with Flex ( AS3 based framework ) will be created about 10 to 50 times faster than Java or C# application from the same class, and in is the same time the best application-web language which providing the same look and feel across the platforms in no additional costs. Write once, run everywhere, look the same way across the platforms.
    The is only one big con in it.
    – It’s bad for Google and Apple business, and their “App stores” flooded with ultra low quality applications which cost money, which would be completely free, and will requires no more than a beginner level for a Flex programmer to develop them in about a couple of hours.
    This is the whole store. ActionScript is the programming language which each Enterprise really needs. It is practically the most secure way to have an application which can be executed on practically all the platforms out there, without any switch in the codebase at all, and no additional worries neither about the look and feel, neither about hackability of the platform on which it is executing.

    1. Agree that ActionScript lends itself to rapid application development (and is a great cross-platform medium), However, I can’t say the future of ActionScript looks particularly rosy. If I was looking at an AsctionScript role I would probably need to balance the short term gain of the attractive salary indicated above with long term security/experience of such a role.

    2. Interesting opinion. Do you mean Actionscript outside of Flash… that is to say, apps not written using Flash. Obviously, Flash has tons of security issues, performance issues, and is perhaps the worst cross platform app framework in existence. AC3 was a terrible IDE (last version I used) and developing in Flash takes a lot of patience because of it dev environment.

      So, you probably mean something else. Which tools do you use? What is your final output? How do you deploy your apps?

      1. Actionscript apps made with actionscript (Flash Pro, FlashDevelop, Flashbuilder or any other tool/compiler) outputs as AIR for Android, iOS, Windows desktop, Mac and as swf for browser. All from more or less the same base files. Many libraries and frameworks to use for UI, gaming, data etc. Native code extensions. And it´s fun.
        http://www.adobe.com/products/air.html

      2. I certainly defer on the mentioned Flash issues. It is no more the story. On the contrary, it is probably the best currently available cross platform option, whereby every other option either lacks majorly in one or more aspects or is not just matured enough as much as AIR. We have been dedicating our time in developing flash platform based games which work like a charm across Desktop, iOS and Android (including Kindle) as native apps, with all richness of UI and logic intact – and most importantly with a single codebase. I would love to hear the claim of any other technology which has such a huge user reach and with almost 1:1 transition across platforms.

      3. Flash Builder, FlashDevelop, Intellij IDEA, Powerflasher FDT, SapphireSteel Amethyst. No serious flash programmers uses Flash CS/CC except for creating assets. Security isn’t a big issue, Adobe patches security holes quickly. Performance issue is most likely the programmer’s fault.

        The worst crossplatform app framework ? LOL.

      4. “Flash has tons of security issues”, it has had some, they are normally spotted pretty quickly and taken care of in updates. In terms of development though this matters very little. It is more of an end user issue, but to be honest it’s no big deal.

        “performance issues” The more recent versions are very fast indeed, not as fast as I would like but for most tasks (99%) it is more than capable.

        “perhaps the worst cross platform app framework in existence” Not sure if you are joking or not there? I know it isn’t perfect but I can throw together a test app that will run and deploy to desktop, android and ios all from my windows machine and it is pretty quick at doing so. I can and have knocked out simple prototypes for the 3 major platforms in under 30 mins before… Also it is not so much a “framework” as it is just a language with app frameworks to choose from.

        “takes a lot of patience” It may have been worse in the past but just short of javascript/html it is one of the fastest and easiest ways to get your code working on screen with minimal effort.

        I have a Java background but when I started using as3 it was so refreshing to have something with the right balance of speed and simplicity. Sure it has it problems, what language doesn’t right?

        b

      5. The performance issues are mostly battery life… I’ve seen flash drain the battery from a laptop reducing lifetime from 6 hours to 2. Also, flash on phones is an atrocious battery hog.

      6. “The performance issues are mostly battery life… I’ve seen flash drain the battery from a laptop reducing lifetime from 6 hours to 2. Also, flash on phones is an atrocious battery hog.”
        Badly written and badly optimised software and applications exists in any language. There is no “flash” as if it is one kind of thing. I don´t see any battery or performance issues on mobile using for example Photoshop Express or Angry Birds, both built with “flash”.

      7. Flash & Flex crash. Flash Player sucks all your memory and your application runs on it which runs under your browser’s umbrella which runs under your OS’s. You can write very clean code and get away with a lot of memory issues.

        Oh Another thing .. Flex wraps a lot of packages from Macromedia’s flash so most of its classes are bloated with multiple ways to do the same thing and multiple ways to get to same objects.

        To me Flex is Kludge. Actionscript + MXML + html + javascript all running in there clunky ways to deliver an App on a Browser.

        Flex or Flash in no way can match an App running on iOS Device. You have “pedal to the metal” in iOS. Flash you are living on the mercy of your Flash Player which is living on the mercy of the browser which is living on the mercy of the OS.

        Have fun developing in Flex… I had miserable couple of years on Flex/Flash before I bolted to real stuff.

        -Mike

      8. Flex, I don´t like it or use it either for actionscript dev. But I do know skilled devs that can make good applications using Flex too. It is good for what it´s good for and bad for what it´s bad for. “Flash” is not Flex, it´s many things and choose what suits you. How it runs depends on suitability, the right tool for the right job no language can be used for “everything” right, but not the least the skill level of devs. The knowledge about how to work with actionscript and what it can do is not great even among devs I see. And Adobe has done a really poor job communicating.
        Actionscript development tools, there are so many. Flashbuilder, Flash Pro with code editors like FlashDevelop, Flash with Scaleform (like “Tiny thief”) and more. Frameworks and egines like Starling, Robotlegs, Away3D, libraries for physics or data… Can port from C++ too with FlasCC. Output nowadays are 95% standalone applications for desktops Win/Mac, or mobile – Android incl Kindle, iOS. Output as AIR and compiled to native code partly for some platforms like iOS. Very seldom anything browser based for many years except games (easy to port across devices from same project). Many samples here for anyone who is really interested in learning more and not just bashing. http://flashdaily.net/ Most of all, it´s fun to work with because it is so flexible, both what you can do and the tools. Also from what I see, experienced actionscript devs understanding OOP etc can pick up other languages very easy so it´s not a bad foundation to have.

    3. The opinions about “security issues” is actually influented by “outside”.
      Comparing any high level secured HTML5/JS application to badly secured ActionScript/Flex application.. well HTML5 have NONE chance in there, neither in any other direction.
      The time spend for coding a HTML5 application on average is about tens up to thousands of times more than in coding AS3 application.
      And – by default FlashBuilder is THE AS3 IDE with capital letters.
      About the performance ..
      – An application written in AS3 will perform from 10 to 500 times faster than the same written in HTML5.
      About the battery drain. .
      – It is the same or lower than HTML5 application nowdays. there is no difference practically, or the worse is the HTML5 one.
      About the memory leaks..
      – We did a test with HTML5 mapping API against Flex/Flash maping API.
      For one night the HTML5 application have consumed 2.6GB RAM, and the browser and the OS were stooped responding, meanwhile at the morning the Flex API was on 270 MB, kindly responding from the first touch, and the memory leask gone in the first refresh.
      ( the test was above the same generative codebase provided from the API provider ).
      ..
      anyway – the security issues connected to Flash is basically forged. they are much lower than any other web based application framework/language nowdays. Providing almost NONE hackability, against 95% hackability in JS/HTML5 applications.
      As it was mentioned – everything was carefully forged from Apple in order to get deeper into “online app store” buisness, since out there is about 10 000 000 000 free Flex/Flash(AS3) applications.which is bad for the normal pickpocketers like they are.
      Just the masses accepted the forged “truth” because some demigod of the stolen ideas told it to them in a very softly voice.
      Jobs is not a creator. Actually the opposite – he is a destroyer.
      A destroyer of a world of the free software, applications, and ideas.
      Google seems to embrace the idea of destroying the free software, using free software ( it’s another way of doing the same, but a bit sneaky ).
      Only the Microsoft left the finally supporter of everything free actually, but they took the bite, and created METRO UI, which is HTML5 applications afiniated, which as I mentioned above is leading to great loss in performance, and general programming time spend on a single application, and the same time – very hard to expand. Which finally leads to the massive losses in MS. Made Your mind guys. The things is not what they are looks like.
      Everything is made for the developers to took the bite (as MS did), and turn the wheel toward Apple / Google direction, and end the free software as much as possible.

      1. >>Jobs is not a creator. Actually the opposite – he is a destroyer.

        I have often thought who really benefitted from the open source and who benefitted from closed ecosystems like Microsoft and Apple’s iOS Apps. I remember in the 80’s and 90’s programmers were thriving under the hood of Microsoft. Small companies were building out really good software chunks like Norton, JBuilder, PowerBuilder, Visual Cafe, and the Virus Companies.

        Then came open source and all of a sudden everything was going to be free. Well, what happened was that software was commoditized. Eclipse destroyed Jbuilder and even SUN to a certain degree. IBM funded Eclipse heavily to bring down SUN.. Eclipsed! IBM also took the Open source pieces and patched together their WebSphere. Well, not only IBM but a whole lot of companies basically got programmers like us to buy into the opensource and start contributing while they sold it for millions if not billions for services or patched up products. We worked for free and really had people like me fooled.

        Now the world comes full circle back to where I write on Android or iOS and you the consumer buy it. If you take it for free I put adds or I sell for $.99 cents.

        I don’t have an opinion on Steve Jobs but by mistake or by design his Apple opened the door back for the Developers to have a revenue and the visibility.

        I am sure you can make money making Flash games and Flex Apps but not as easily as on Apple’s App Store. I don’t want Apples software to be open source I want it to be what it is right now where I can make an App and get a buck. I want to have a living as a software developer without having to work for a giant like IBM, Adobe, even Apple, Google, and list goes on.

        Please tell me if I am wrong.

      2. “I am sure you can make money making Flash games and Flex Apps but not as easily as on Apple’s App Store.”
        Now we make those games with actionscript – Flash and compile as apps for iOS and sell them in Appstore too. It is kind of ironic that the app chosen by Apple last year as the app of the year was built with Flash. As are many games and apps on the toplist in Appstore (Angry Birds, Little Thief, Wonderput, Machinarium, Age of defenders, Photoshop Express…) . The weird thing is that so many even devs don´t know that or undertsand the possibilities. From the same project without major changes I can compile app for Android incl Kindle, Facebook (Farmville, SongPop…), standalone apps for Win/Mac desktop and for browser. The development time savings are enormous if you know what you are doing from start.
        The Steve thing, motives was his control, his money and getting back at people. All the wrong reasons. And even if some devs make some money from that too now that doesn´t make so many wrongs right.

    1. Maybe because as in many other European countries a big chunk of money is not visible as a paycheck but goes straight from the employer to government (in my country it is approx 37% on top of salary). And you and I don´t have to pay anything for health insurance, schools are free, we have at least 5 weeks paid holiday, paid sick leave, more than a year paid maternity (or paternity) leave, unemployment insurance… and more. Average as-dev salary here is approx 72.000 US, on top of that 37% to the government would make that equal to about 99.000 US in a country where you have to pay for all that yourself or don´t have it at all. Billing for work as company or self employed would include those costs of course 🙂

  10. Chris: .NET is also open source, runs on Linux too?

    No it isn’t and doesn’t. Do you have access to the source code for the .Net libraries? (That’s a rhetorical question – you don’t unless you work in Microsoft’s .Net team or have paid megabucks for NDA-controlled access) There is a Linux port of .Net (Mono) but it isn’t a complete port so C# code written for the Windows platform may, or may not, run on Linux. You don’t quite get the same write-once-read-many benefit that a cross platform framework would give.

  11. I do not see VB.NET on the list? Is it combined with another language? It is pretty ubiquitous and used in about 80% of the code at a company of about 4,000. I’d be surprised if it weren’t included due to lack of popularity; please do explain as I really would like to know. Thanks in advance!

  12. Please report/plot standard deviations for the incomes per language! Otherwise you can not say whether the differences are any significant, and all the discussion is waste of time.

  13. Pingback: Genuitec
  14. This may have already been commented on (tl;dr;) But to properly analyze the data shouldn’t one take into account the age of the projects? If you have developers that have been there longer, they’re going to get paid more. Considering actionscript projects may represent considerable investment, it could be inferred that developers who have actionscript skills are in higher supply and therefore can demand more money.

    1. It would be interesting to take that into account. It’s not quite the same thing, but I’m going to try to post numbers correcting for age and gender when I’m able.

  15. Very interesting– although new projects for ActionScript / Flash are definitely on the decline and have been steadily doing so for the past 2 years– I had my most lucrative quarter ever as an ActionScript developer, at the beginning of 2013. Go figure…

  16. I am intrigued by the terminology of “average HOUSEHOLD income” as opposed to average PERSONAL annual earnings. If the label is to be taken literally, the entire table could merely be reflective of marital patterns and spousal occupations by language. Maybe Actionscript programmers have a knack for marrying investment bankers.

  17. I’ve worked for a few companies and on a wide range of projects and I haven’t even heard of almost half the languages on this list. And Wow, I’ve never heard of a JavaScript programmer before. I’ve always used scripting languages as complementary to .net (or in the past C++). Like throwing in some Java-Script on an ASP.Net page, or building something outside of your primary IDE (like IBM Visual Age, or Visual Studio) for speed and simplicity. And other than when working at a County job with a bunch of Cobol programmers, I’ve never known a professional developer making 6 figs. that only knew just 1 language.

    1. Times change. Some new apps and startups use Node.js which is Javascript on the server side. And many web applications are written completely in Javascript on the browser side as well.

    2. Well, only people really using ActionScript are your big companies like banks. They invested huge money in Flex to make Desktop look a like (i.e. trading applications). They can’t just yank 3 years of development for some new technology like lets say Ruby. I remember in 2011 they were trying to phase out IE6 and have their sites working for IE7 and IE8. So they made that garbage using Flex now they are going to eat it till 2020. You also have to remember some of those guys still have those VT220 Screens using VAX, DEC, and AS400. Some guy wrote something in 80’s that trade government bonds then and probably still not phased out yet.

      These programmers are paid well and therefore it reflects on this report. I know AS400 guys in those places make as much as 200K because now that they are there no one can take their job. Well, not only that no one really wants to be a Cobol developer no matter how much money someone offers them.

      1. Mike says:
        “Well, not only that no one really wants to be a Cobol developer no matter how much money someone offers them.”

        —-

        I would like to mention that AS3 is the most beautiful Object-Oriented Language, with the help of the most high level expandable/extendable framework out there – Flex.
        It is more than fun to write applications with it. It is just amazing.

      2. Fair enough. I stand corrected.

        However, banks use a lot of Flex (not Flash) and have heavily invested in it. I am guessing a lot of enterprise have also invested heavily in Flex.

        Bottom line for me (and no Flash or Flex bashing ) I would like to have complete control over my application and not go through a mediator like FlashPlayer/Browser/JVM. Living in the FlashPlayer’s or JVM’s bubble does not excite me. Most of the time I use libraries for graphics and animations but sometime I feel like I just need to go the GPU directly or run multiple threads. I call that freedom as a programmer. I am sure 99.99% of the I will have no need for it but having lived in JVM’s cage for 14 years I am would like to see sunlight.

        🙂

  18. XSLT – expanding on some of the previous.
    If you know how to do XSLT well, you can achieve 2 to 4 orders of magnitude performance improvement over using raw code to manipulate the XML (especially if you really grok the muencian method)
    Knowing XSLT really implies that you probably know XSD extremely well also. Almost all generated XSDs (i.e. those employed by your web services) are, putting it bluntly, ‘crap’. A well crafted XSD will enable significantly better validation of messages at a point before you even hit your own business code. Also the weaknesses in XSDs can be overcome with judicious use of Schematron (which yields XSLT) and with that you can cover every scenarioyou may possible need to totally validate a given message. All of which means much higher throughput of messages, and no writing ‘business logic’ to validate your messages.

    1. Yes, I wonder the same, but most likely because of the rapid switching from Delphi to C#.
      Anyway the Embarcader is to be blamed, since they have failed to give to the world on time Delphi for Android, Delphi for iOS, and expand Delphi further, for instance – embracing .NET extensions / LINQ and so on..

  19. Part of this might by age is correlated with seniority – Java programmers might be older because it’s been around for a long time, for example. Trying building a statistical model that takes age into account! Gender would be fascinating too.

  20. Very interesting post. I think it also probably depends on where you’re located, what positions you’re applying for + perhaps how you go about your job hunt.

    I work for DeveloperAuction and offer amounts for our developers are higher than what you’re showing here. Our average offer amount has recently been around 120000. We’ve seen some positions (eg: mobile developers and tech leads) pull salaries much higher than this.

    My sense is that the Silicon Valley is a bit different from other places — salaries are a bit higher so that might account for part of the difference. Still… these numbers seem a bit low to me. Would be interested to explore where the differences between your numbers and ours come from.

    1. Interesting. Salaries of 90-100k do seem plausible with respect to other numbers I’ve seen (ex http://money.usnews.com/careers/best-jobs/software-developer/salary). I wouldn’t be surprised at all if salaries in Silicon Valley were 50% higher (totally anecdotal observations though.)

      I also wonder what the difference is between new job offers and the average of currently employed people is. Out here in SV, people hop between jobs dizzyingly quickly, but at a lot of companies / in a lot of the country, 10-20 year developer careers are not uncommon.

      Alternatively, it would make sense to me if open positions commanded higher salaries since they were by definition harder to fill and required a premium to attract applicants (if they were able to fill the spot themselves, they wouldn’t need to use you guys to list the job.)

      1. Yeah, definitely agree that it’s easier to move ones salary around when going after a new job. Also at least out here (SF) there’s a shortage of developers. I think it has something to do with all the venture companies.

        Interestingly, I used to be an ActionScript consultant and instructor (these days I’m doing rails) and for a while it was a WONDERFUL niche to be in. I found that there was a ton of demand (still is for exotic video stuff like live web conferencing) and there just weren’t that many developers who were good who could do ActionScript. A couple of years ago the bottom kind of fell out of that market though as HTML5 become more of a real thing. At least around here a lot of companies switched direction and began using JavaScript for things that they were using flash for. Still you’ll occasionally find a company doing pretty innovative things with flash. I do wonder though if people can still command the kinds of salaries they used to get with ActionScript a couple of years ago. I feel like mobile is a bit like what ActionScript used to be.

        Have you ever seen this tool? I think it’s interesting to play with:

        http://www.simplyhired.com/a/jobtrends/trend/q-actionscript%2C+ruby%2C+java%2C+android

  21. I can suggest explanations for five languages (ColdFusion, ActionScript, Perl, Python, and PHP).

    ColdFusion is a legacy language, and I would speculate that many developers still using it are based in Massachusetts.

    ActionScript is very specific to Macromedia technologies. Macromedia is based in Massachusetts.

    Perl has been used for about 25 years, Python – for over 20 years, and PHP – for over 15 years. Perl had huge, almost religious following 10-25 years ago both, as a scripting language on Unix and as a Web scripting language. In the last 10-15 years, Python is increasingly strongly preferred over Perl on Linux, and PHP – as a server side Web scripting language. Arguably, median age of current Perl developers is above average, of Python developers – slightly below average, and of PHP developers – below average. Higher median age implies higher percentage living in suburbia, hence, higher median income.

Leave a reply to trollaikman8 Cancel reply