
Average Income per Programming Language - bpodgursky
http://bpodgursky.wordpress.com/2013/08/21/average-income-per-programming-language/
======
patio11
Please don't attempt to operationalize this data by saying "I know PHP. If I
learn Ruby, then I can get a $5,000 raise!" I talk to more engineers than is
healthy, and many of them think that languages are the primary differentiator
in salary (or some other metric of interest in their career). They're very
mistaken. Far more salient are negotiating skill, location, what company you
work for, where you're assigned in that company (profit center or cost center,
favored project/division/etc or not, etc), and ability to use computer code as
leverage to accomplish things that capitalism cares about.

Also, the dynamic range among e.g. Ruby programmers of my acquaintance goes
from something like $2k a month to $2k a day, not primarily based on skill
with Ruby. (If I were comfortable describing the individuals at the high end
some people might say "That's cheating! They're getting compensated for non-
Ruby things which happen to be expressed in Ruby programs." I call that
_winning_ rather than _cheating_ but to each their own.)

~~~
xiaoma
Language _is_ a primary differentiator in hire-ability.

In case you don't remember, we had a discussion about the job market last
year:
[https://news.ycombinator.com/item?id=4214543](https://news.ycombinator.com/item?id=4214543)

You were claiming the hiring market was _on fire_ and that being fizzbuzz
capable was about enough to get meetings with hiring directors and that your
clients were begging you to find them an engineer.

During that time I was spending a great deal of time applying to jobs, going
to tech meetups and interviewing and had very little success despite a track
record of successfully taking on challenges in the business world and
demonstrable junior-level programming skills. I asked you to your back up your
claims and put me in touch with any of these clients dying for an engineer, as
you might remember.

Now—about a year later—I've achieved the goals I had at that time. I'm working
in a purely technical role building a large site that many, many people use.
My compensation is at least in the top decile of both programmers in the US
and residents of the city where I live. And one thing that was _key_ to me
getting a flood of offers from both large companies and start-ups a few months
ago was developing domain-expertise in JavaScript and becoming proficient in
several frameworks. Putting up projects on github and contributing to others
played a role, too.

There is a high rate of unemployment in the US right now. As a result, many,
many people are trying to break into the software world. For new graduates,
there's a bit of an open door via internships but it's not at all easy in the
general case. I've seen many talented people struggle for months to break in
and then suddenly get a flood of offers. There's clearly a good degree of herd
behavior involved.

Without the specific framework skills that I had, companies would have had a
very long list of applicants to consider before getting to me. And both
understanding the frameworks and doing well in the technical interviews
required some fairly deep understanding of the language. Yes, the company you
work for and the team you're working on have a great deal to do with your
compensation. But both of those things are heavily influenced by how skilled
you are in what technologies, especially for typical engineering roles.
Knowing the right stack can open doors for networking around the front-door,
too!

>They're getting compensated for non-Ruby things which happen to be expressed
in Ruby programs." I call that winning rather than cheating but to each their
own.

I wouldn't call that _cheating_ but I would call it a poor anecdote to
generalize from. Some people with a legal background translate contracts and
earn a great deal of money for it, but that fact doesn't speak much to the
market for translators as a whole or show there's no appreciable difference in
career trajectories for translators of various languages.

~~~
alinajaf
If your argument here is that knowing Javascript earns you more money than
knowing no programming language in depth at all, I don't think anyone
disagrees with you.

You could however have picked Ruby, PHP, Python, Haskell, Java, C(++),
Objective-C (holy crap, Objective-C), Scala, Clojure etc to deep-dive on and
would have been just as employable.

To convince me otherwise, you'd have to make the case that all of my
professional connections are conspiring to deceive me or that I'm experiencing
hallucinations on a near-daily basis and need professional help.

~~~
xiaoma
Yes and no. The particular job offers I got all relied on JavaScript, but of
course there are a lot of great positions that require other languages. I do
think that JavaScript was the optimal choice. There is such a small number of
people who have experience with the MEAN stack compared to LAMP / Java / RoR
that it makes it a quite a bit easier for an outsider to break in through
unconventional means.

Objective C would have been very strong as well. Many companies of all sizes,
including my current one use it. It would probably have taken a successful app
on the app store or a stronger resume in order to get the kind of interest I
did from top tier companies. Ruby would have lead to openings, but probably
wouldn't have done much for me my interviews with Google. Java is used all
over the place but from what I've seen, few junior devs without a degree break
into the better work. Haskell would have been absolutely horrible--I'd have
been competing with freakishly smart people for a small number of low-paying
jobs!

The beauty of JavaScript is:

1) It's in the front end of every web stack, so nearly everyone needs it.

2) The MEAN stack (which includes Node and Angular) is a fast rising platform
with few people competent in it. Even knowing "old" frameworks like Backbone
can lead to a lot of opportunities.

3) In general, there is a bit less conservative of a culture among JavaScript
programmers. Java/C/Python shops are more likely to care about pedigree and
formal credentials.

------
quchen
What are the distributions of the salaries among one language? Mean values
alone are completely useless, give us some information about how you found the
salaries out, what their standard deviations are etc.

I don't want to imply maliciousness here, so I'm going to call this an example
of unknowingly bad statistics (which, sadly, seems to be the default in most
places). Bonus points for the bar (!) chart that starts at 90,000 and looks
like ActionScript is twice as profitable as the rest of the languages.

~~~
dlss
He found the salaries out using rapleaf... which didn't know the salaries but
was making an educated guess. (You can try out their api if you register an
account, FWIW it was way off for the people I've tried it on.)

With data like that, I'd imagine the only sort of data you _could_ trust would
be the mean, since I'm guessing its much harder to be wrong about relative
income levels between large groups than it is to be right about actual income
numbers.

~~~
quchen
The only sort of data you can trust is the data itself. Providing the mean of
data is providing a sum value a person thinks is useful to convey the shape of
the data, and the mean in particular is unsuitable at conveying shape on its
own.

What the author tries to get at is a precise quantity, namely the average
salary for each language. However, we cannot measure that quantity directly,
so taking samples (from a good source) is as good as it gets.

The easiest assumption about that data is that it follows a normal
distribution, which does have a mean, but also a standard deviation; both of
these are required to talk about any meaning of the result. (If the normal
distribution is not a good fit things may get more complicated.)

What I'm saying is that providing just means is not a ballpark way of doing
statistics, it is wrong. The statistical ballpark is the normal distribution,
and maybe a value ensuring that it is at least somewhat appropriate to use
that one.

~~~
lifeisstillgood
So forgive the statistical ignorance, but how would one display mean and std
dev in useful graphical form? (Asking seriously as it would be good to know
which setting to press on gnu plot)

~~~
merijnv
Not quite the same, but box-and-whisker plots
([https://en.wikipedia.org/wiki/Box_plot](https://en.wikipedia.org/wiki/Box_plot))
are good for visualising distributions. They show the mean, minimum, maximum
and the first and second quartiles.

Since they show the minimum and maximum we can judge the overall spread, the
mean tells us...well...the mean and first and second quartile lets us judge
how close data is clustered around the mean.

See
[http://gnuplot.sourceforge.net/demo/candlesticks.html](http://gnuplot.sourceforge.net/demo/candlesticks.html)
for gnuplot examples.

~~~
omh
A minor point, but I think Box Plots usually show the _median_ rather than the
_mean_ at the centre.

It would make sense perhaps to use standard deviations and means for some
data, but in cases like this I think quartiles and medians make more sense.

------
frobozz
This states that it is average _household_ income by language.

I could assert the following from the data:

* ActionScript developers are horribly underpaid, but more likely to marry lawyers, doctors and bankers.

* Haskell developers are relatively well paid, but more likely to live alone or with a stay-at-home parent.

* Pythonists get roughly the same salary as Haskell developers, but their partners are all low-paid key workers.

~~~
siddboots
Pythonistas marry for love.

~~~
6ren
Haskellers are single because _you 're not my type_

~~~
cgh
Being lazy doesn't help either.

~~~
santadays
Or terse.

------
lucaspiller
Without knowing where the users are based, this data alone is pretty
meaningless. Where I'm from in South West England pretty much all the
programming jobs are Java (hence why I left), and you are lucky to get £40k.
Spain and Portugal have even lower salaries. I'm guessing this is US based,
but even then, I'm sure there is a lot of variation. Working in London as a
Java developer in finance you could easily get over £100k.

~~~
rplnt
And you can be based in post-soviet ("happy" 45th anniversary to crushing
Czechoslovakia's future) country, make $10k or $20k and be very happy.

~~~
lucaspiller
Personal experience? My SO is Lithuanian, so I would be interested to know
what working in that area is like.

~~~
berntb
I can tell you that you live really well for quite few Euro after tax in
Transylvania (as long as you don't go to West Europe for vacation).

This is quite easy to check, Google: living costs Cluj London

[http://www.expatistan.com/cost-of-
living/comparison/london/c...](http://www.expatistan.com/cost-of-
living/comparison/london/cluj-napoca)

(Don't trust information about cities with too few data points.)

~~~
rplnt
The only downside is that the prices of imported goods (most notably
electronics) and software are usually higher than in the US for example.
Services are much cheaper of course.

------
dons
GIGO.

Most commercial Haskell jobs are in finance -- where you don't get to
contribute code to github. That leaves the PhD students and open source folks,
shifting the data sideways.

~~~
theorique
_Most commercial Haskell jobs are in finance_

Cool - do you have any articles/references about that?

~~~
pjonesdotca
[http://www.haskell.org/haskellwiki/Haskell_in_industry](http://www.haskell.org/haskellwiki/Haskell_in_industry)

Seems like more than a few quant shops advertise that they use Haskell.

------
snitko
I can kinda understand why XSLT is one of the most expensive (on an intuitive
level - as quchen said, it's not clear how the data was obtained for this
post). Certain parts of it is a complete brainfuck. I worked on a small
opensource project of mine once, where I decided to use XSLT to translate XML
to HTML. I din't know much XSLT, so I started reading docs and eventually
managed to accomplish my goal. However after struggling with it for a while, I
realized it sometimes makes completely no sense. Or, to be more fair, it takes
a rather different logic to understand it than I usually apply to programming
languages... because, well it's not a programming language.

I only wonder, where is XSLT usually used? Can anyone outline the most typical
types of projects and environments?

~~~
AlexanderDhoore
I just had an exam about XSLT, XML Schema, etc... this morning. My take-away
is this. Pick any scripting language (python, ruby, php...) + templating
engine and you'll avoid the World Of Pain that is XSLT.

XSLT is kind of 'declarative', but it has ifs, switches, ... They probably
didn't start out with the plan to implement a programming language with xml
tags, but they did. It's horrible.

Edit: XML Schema is horrible as well. This is how you define an element with
string content, and one attribute (which is VERY basic):

    
    
      <xs:element name="myElement">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute name="myAttribute" type="xs:string" />
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    

Just off the top of my head, I could invent something better, like:

    
    
      <myElement myAttribute="xs:string">xs:string</myElement>

~~~
snitko
Ahh yes. I tried writing a schema for my document (ocd here, I like things to
be valid), but then I realized that the cost/benefit ratio of this process
would be completely unreasonable.

~~~
AlexanderDhoore
If I had to do it today, I'd probably use DTD to validate the XML tag
hierarchy and than use a programming language (with xpath) to validated the
attribute and tag contents.

XML Schema tries to validate both the tag hierarchy and the contents, which
requires data types and complicated definitions. So much overkill...

DTD and XPath are actually very nice and simple. This is the DTD equivalent of
my XML Schema example above:

    
    
      <!ELEMENT myElement (#PCDATA)>
      <!ATTLIST myElement myAttribute CDATA>
    

I could see myself writing a small domain language and translate it to DTD, to
make it even nicer.

~~~
pjmlp
The way I work around XML schema pain is to use visual tools for it, like the
ones in Visual Studio, for example.

Hand editing XML schema files is too much of a pain.

~~~
mjn
My impression is that this is considered the norm in the XML world: you're
supposed to edit it via a specialized editor, not directly as raw text.

------
sequoia
I am totally baffled about where the income data supposedly comes from, and
how it's mapped to GH user accounts.

[http://www.rapleaf.com/about-us/faq/#where](http://www.rapleaf.com/about-
us/faq/#where)

"Rapleaf aggregates consumer data from data providers, cleanses it and maps it
to emails, and ultimately makes it accesible through our easy to use Append
portal and API. We partner with dozens of large and small data companies to
aggregate data that we ultimately anonymize and tie to email addresses. We
source it from only legitimate data bureaus who adhere to the highest consumer
privacy standards -- sources that give consumers appropriate notice and choice
about sharing their information and have opted in to make their data
accesible."

What? Are they claiming to know the salary of all the github users used in
this study? Were the users filtered down to those who had income data
available? Because if so, that's a really weird (bad) selection technique. If
not, what is being done with users whose income data is not available? Also
where the hell is rapleaf getting their data?? This whole thing confuses the
heck out of me, someone please help.

~~~
bpodgursky
Rapleaf's API provides income given an email address, when available. I ran
the list of emails from the git commit log across that API, which only gives
me data points for the users who have income data available.

Is there really any way to correct for the fact that not all the data is going
to be available? It certainly doesn't exclude a sampling bias, which I did
mention in the post, possibly not aggressively enough.

------
fbnt
I believe ITJobsWatch (
[http://www.itjobswatch.co.uk/](http://www.itjobswatch.co.uk/) ), despite
being limited to the UK, gives a much more comprehensive overview on the
topic.

~~~
edem
I concur. I always use it if I want some statistics.

------
khalidmbajwa
The actionscript programmers may be getting paid higher (Mostly because the
Flex enterprise hangover is still lingering), but in my experience the actual
_number_ of actionscript jobs available is sharply falling. I have been doing
Flash/Flex dev for about 8 years now, and while my evidence is certainly
anecdotal,i have gone from having tons of contract offers swamping my inbox to
once every few months.Make no mistake, Flash and Flex IS dying. Javascript
meanwhile is maturing remarkably, and it will soon be in a position where
enterprise will seriously start considering it as a viable platform.

------
awkward
As a former actionscript programmer, this makes me cringe a little. My
assumption is that actionscript is a new COBOL - tons of businesses rely on
it, but now that it's looking like a dead end, the only way to fill those
positions is to crank up the salary to compensate for the perceived dead space
on a resume.

IMHO experience in it translates well to Javascript, but I miss some of the
features - especially the type system and the token API (which was much more
consistently implemented than the various JS deferred systems).

------
ck2
Isn't the real news here that programmers are making $100K on average?

Language doesn't really seem to be too big a variable, it affects the income
level by typically less than 10%

Are people really making that much around here? Why are you on HN then?

~~~
GFischer
I make $24K after taxes anually.

I live in Uruguay, and program in VB6, VB.NET, and occasionally in Forte4GL,
C# or PHP, but I'd make the same programming in Java or C# (it's an average
local salary for a developer).

The way to make more money, as Patio11 said, is not to switch languages, but
the "ability to use computer code as leverage to accomplish things that
capitalism cares about"

[https://news.ycombinator.com/item?id=6249373](https://news.ycombinator.com/item?id=6249373)

If I made $100K, I wouldn't mind reading HN either :) (I know people that make
orders of magnitude more and who occasionally browse it, or even post).

~~~
V-2
I make about 14K per annum in Poland (net pay) : )

~~~
GFischer
Ouch, is that a full-time job? Is that 14K euros or dollars?

I barely manage on 24K for me and my girlfriend (made some bad decisions
though).

I've heard rent and cost of living is cheaper in Poland than in Uruguay -
we're still in a housing bubble here, and it's close to the most expensive
country on earth for some stuff (example: cars).

~~~
V-2
US dollars. See
[http://www.worldsalaries.org/computerprogrammer.shtml](http://www.worldsalaries.org/computerprogrammer.shtml)
The numbers are dated, but it doesn't turn upside down in a decade. Uruguay is
not included in the statistics. It does seem to be more expensive at first
glance - I looked it up on [http://www.numbeo.com/cost-of-
living/compare_countries_resul...](http://www.numbeo.com/cost-of-
living/compare_countries_result.jsp?country1=Poland&country2=Uruguay)

~~~
GFischer
Nice, those numbeo comparisons are really good to know, and relevant to this
article :) .

As many mentioned, 100K is a lot, but you have to take into account cost of
living.

Can't believe Uruguay is 50% more expensive to live in than Poland, used to be
the other way round a decade ago.

~~~
V-2
Well I can say that the prices on Numbeo are fairly accurate for Poland

------
programminggeek
I would say location weighs heavily on average income as a programmer. For
example, the average dev salary in the midwest might be more like $50,000 and
anything approaching $100,000 being very high end.

~~~
theandrewbailey
This. Salaries are based upon more than just skills and languages.

It seems like this article is biased towards California or New York salaries.
I once jokingly told a SF based recruiter that $55k might not seem too much,
but those aren't California dollars, which are worth less than Pittsburgh
dollars. If I wanted to make six figures right now, I'd probably move.

------
jyap
Subtracting the top 2 and bottom 2 language data points and you have a range
of $94,031.19 to $103,179.39.

With a range that small, IMHO nothing significant can be derived.

It's not like the range is $50k to $150k.

~~~
jkscm
The range is probably not small, but the range between the highest and the
lowest average is.

------
PaulHoule
Given the sample size here I don't think this means anything.

I've seen real world programming jobs in the U.S.A. everywhere from $25,000 up
to $250,000. Everything you get is closely clustered around $100,000k and when
you consider the sample size I;m nit sure any of these mean anything.

------
segmondy
This is absolutely useless. Emacs Lisp? Really? XSLT? What? CSS? Woah. I love
that the internet has made it easy for anyone to share their opinion, I hate
when noise is presented is as useful information.

------
stewbrew
Do I understand the chart correctly that people get paid exclusively for
writing vim plugins (VimL)?

~~~
bpodgursky
No, but people who contribute to VimL projects (among other projects) do get
paid for something.

------
talloaktrees
After just reading the headline the first thought I had was "the comments are
going to seriously question the statistical basis used" I was not
disappointed.

------
kazagistar
The article lists household income, which makes it just about useless.
Household income will be higher if you are married. People who are married are
more likely to chose a more stable job working for a large corporation. Such
jobs require languages more like Java, and less like Haskell. Such people
might also have less spare time to play around with new languages due to
family engagements, or a dozen other differences, all masked by this chart.

------
6ren
±10% is almost nothing... OTOH, maybe I could do XSLT, if I just took some
nausea pills...

PS: I actually think XSLT is a brilliant application of some cool ideas -
putting them to work in (e.g.) grammar compatibility, it's just, like XSD,
using XML itself as the syntax (e.g. _i &lt; 10_ pls shoot me) and lack of
helpful conventions (e.g. the empty stylesheet should be the identity
transform, which you can then tweak).

~~~
regularfry
XSLT smells to me like it should be a compilation target for a scheme rather
than something you actually write directly.

~~~
qwerty_asdf
Yeah, the repetitive boilerplate of it all...

This is probably something that many well-paid "XSLT developers" probably
figured out early on. Develop your XSLT using ANYTHING except XSLT. ...and
then they go on to create the "actual" programs to vomit the crapwads of
excessive mark-up, and mystify those who made their own unfortunate beds and
chose to consume this... this... XSLT.

------
wallflower
Remember as patio11 says the most important and valuable skill is not making
money for your employer but being able to enable them (and eventually other
companies, as your own entrepreneurial soldier of fortune) to make more money.

[http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-
pro...](http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/)

------
Andy678
Being a very versatile web developper, I never understood why (good) PHP
programming gets so little credit in the profession, whereas to me it appears
to be much more demanding to write a decent piece of software using PHP rather
than with Ruby, Python, or even ASP/.NET. These other languages have so many
easy tools, great debugging and all that, with the natural counterpart of
offering less performance. PHP strikes me more as the C Language of web
development : easy to learn, but harder to decently apply on a day-to-day
basis. So I wonder if the companies out there just value other languages more
because they tend to misinterpret the "simplicity" of a language for the
quality of the developer using it. To me, making a good website using Rails is
child's play compared to making one using PHP, framework or not...

~~~
canadiancreed
Supply and demand and perception is pretty much what it boils down too.
There's a lot of PHP apps, and a lot of terribly written PHP apps. Add that
companies that hire for such positions have a plethora of options for cost-
effective (read dirt cheap) and a lot of developers that will work for such
wages and you have a language that while popular, is not well respected, and
has those looking for more money and a more versatile skill set seeking
greener pastures.

------
ejbs
I didn't know that ActionScript was used in the enterprise environment? Why
and what for? Did I miss something?

~~~
khalidmbajwa
It is because of Adobe AIR.Which is a cross platform runtime. Contrary to
popular public opinion, Flash and Flex is actually a stunningly beautiful
platform to code in. It's a very very mature platform, with an excellent
community, and amazing libraries. (As a matter of fact, the creator of Angular
JS wrote a blog post citing some of Flex's features as his inspiration). It's
just that Adobe keeps screwing up their Runtimes. Flash and AIR both have
performance issues which is why they are starting to get left behind now. For
enterprise softwares,its cheaper and more optimal to have a single codebase
that can work across platforms and in return take a slight hit on the
performance.

~~~
pixie_
I agree flash/flex is a great platform to develop on. From the language, to
the IDE, to the API. It's like a strongly typed javascript with XAML done
right. You can create a great looking app that shares the same code base
between the web, iPhone and Android.

------
snake_plissken
Lolwut? Are these for two person households where each person is in the same
language or only for people working at quant funds? About 40% of my social
circle is made up of programmers and no one makes close to these amounts. 100%
anecdotal, but, I think we are all being shafted ;0

------
abraxasz
Some languages heavily used in finance (and not much else) haven't been
mentioned, and would likely fair pretty well. I'm thinking about K, and in
Ocaml. Ocaml in particular is used at Jane Street which is known for paying
extremely well.

------
newbie12
You should control for geographical differences in pay and language
distribution. California likely has more Ruby programmers-- the higher cost of
living and higher salaries there may explain the entire difference between
Ruby and PHP.

------
tarekmoz
It's not listing Cobol.

~~~
krob
That's because Cobol programmers probably make an order of magnitude greater
income than on this chart. The only people who still write Cobol from my
understanding are people who continuously update banking mainframe software.
Government mainframes, etc. Usually these days you are apprenticed by someone
with years of experience because of how difficult it is to obtain old
documentation etc.

~~~
dagw
A vocational school here in Sweden recently started offering a 1 year Cobol
degree, ostensibly after demand from the banking and insurance sector.

------
gwu78
I thought Puppet was a collection of Ruby scripts, not a programming language
in the same sense as the others listed. To put it another way, can you
"program" in Puppet without first having Ruby installed?

On a side note, I am always wary of the statistics Github gives for each
repository where they estimate the percentage of code from different languages
used (e.g., 90% Python, 10% C, etc.). In your opinion, how accurate do you
think these are?

~~~
druiid
Puppet has it's own DSL. It's easy to learn, but it is difficult to use it
well. Basically as a Puppet 'programmer' I can generally see the difference
between an experienced user or not.

This all said, to extract a lot of power from Puppet you also have to script
in Ruby, as to add additional functions not included in the Puppet core DSL
requires you to write your own scripts.

~~~
gwu78
Do you need Ruby installed to run Puppet programs?

The answer if I'm not mistaken is yes.

Personally I would be afraid to use Puppet as a substitute for my own
configuration scripts. With the later, I'm required to know how things work at
the shell level (and I use a small POSIX-like shell, not bash). But is this
true with Puppet? I note it currently has some open security issues. But hey,
if you are paid a competitive salary to write Puppet scripts, then there's
little reason to learn more than how to do that.

I imagine Puppet probably saves you heaps of time.

~~~
druiid
Indeed. Puppet was created in Ruby and thus requires it to function.

Puppet is generally meant to be a replacement for configuration scripts.
Essentially your Puppet scripts define a 'state' that you want the server to
be in, thus if you want a user account called 'bob' you'd do something like
this:

user {'bob': ensure => present, gid => '0', uid => '0', password => '<my
encrypted password>', }

From this Puppet would do all the 'difficult' bits for you.

You mention that if you get paid to write Puppet scripts you wouldn't need to
know how things work at the shell level. That is extremely far from the truth.
You need a strong background and experience with shell commands, configuration
layouts, shell/CLI methodology, etc. Without those you would quickly be lost
both in terms of managing and dealing with Puppet and scripting in it.

Knowing Puppet is no replacement for Shell knowledge unless the extent of what
you need to do with Puppet is understand you're using it to launch your
Vagrant instances. Honestly there are things which to build out in Puppet
would require extensive Ruby based functions and sometimes you really just
need to fall back to using exec {} statements in Puppet (Meaning you're
running shell commands from within Puppet). You can see some examples of this
in the zookeeper module I built: [https://github.com/justicel/puppet-
zookeeper](https://github.com/justicel/puppet-zookeeper)

Feel free to message me with Puppet questions and really, if you're just using
Shell scripts I highly, highly recommend moving toward configuration-
management (even if it's not Puppet), unless you only have one or two servers
to manage.

~~~
gwu78
Informative response. Thank you for this.

Perhaps my time has been well spent mastering the shell at the expense of not
learning Ruby and Puppet.

I have a need for keeping things small (too small for Ruby) so if I do need to
use scripting languages other than sh for configuration, I'm planning to use
Lua.

Here's a question for you since you mentioned Vagrant: I'm interested in
hosting that allows me to run my preferred bootloader that reliably boots my
DomU kernels instead of the PyGrub hack that AWS uses. I can deploy my systems
as Xen kernels, as filesystem images that have a Dom0 that can run my DomU
kernels, whatever. I can also run limited purpose kernels in userspace so I am
not necessarily restricted to Xen as a means of "virtualization".

I want the AWS convenience of creating and launching an instance remotely
rather than having to visit a datacenter. But I do not want anything to do
with grub.

All my configuration is in the DomU kernel's embedded filesystem. When I
change configs I simply edit the kernel source and recompile. My kernels
recompile very quickly. I don't use kernels provided by third parties.

I'll probably have to build my own "cloud" to get things the way I want. Big
itch; relentless scratching. Easy? No. But, so often that's how useful
software comes into existance: because of someone personally finds the status
quo inadequate.

------
bayesianhorse
It looks like the most data points are found in the middle of the field. The
extremes at both ends are underrepresented (except Java). That is a common
finding, because the probability of deviation from a “true norm” would be
highest in the smallest sample.

The big question is: How significantly do these datapoints deviate from the
null hypothesis of “all programming languages average the same pay).

------
rip747
as much as i'm loving that coldfusion (my primary language of choice) is
included on this chart and ranked in the top 10, i would really like to see
how the job market compares to the other languages on the chart.

on a side note: really? xslt is second on the list? i remember using it to
create a code generator years ago. probably one of the poorer decisions i've
made in my life :P

------
V-2
[http://en.wikipedia.org/wiki/Simpson's_paradox](http://en.wikipedia.org/wiki/Simpson's_paradox)
is quite likely ;) There's many other variables apart from the programming
language itself that affect the salary. They can be only indirectly correlated
with the language.

------
gtrubetskoy
I think in reality the highest paid languages are C, Objective-C and C++, with
Java a close second (though it very much depends on what is being done).

And if you're looking to be at the top of your game, one single piece of
advice: _master C_. Once you've mastered it, you can pick and choose whatever
else you want.

~~~
canadiancreed
I second this. Have a mate of mine that has five years in C and has been able
to walk into any shop that he wants, regardless of language they use, and get
a gig, and well paying to boot.

On the other end of the scale, I have almost six years in PHP and it's worth
as much as a broken kinder egg for anything outside the LAMP stack world (and
in some cases, within that world as well)

~~~
ciclista
I've noticed less interesting gigs and lower pay as well for PHP over the last
year or so. Spending a lot of time with Python and Go now.

------
dagw
Actually the only really interesting thing about that data is how close the
lowest and highest values are, certainly they must be within the margin of
error (something I noticed he failed to talk about). So it seems the real
conclusion to draw is that average income is largely uncorrelated with
language used.

------
marklit
Averaging is a very lossy method to use. You could be looking at a histogram
shaped like a satellite dish and the average value you come to is one few are
close to. There are a lot of extremes in tech salaries from what I've seen
hiring and contracting over the years.

------
marknutter
What about programmers who are proficient in multiple languages? (As any good
programmer should be).

------
dagw
Surely who you're working for and what you're working on has a much much
bigger effect on income than what programming language you happen to use.
People using python at a top hedge fund will surely earn more than people
using python at a low end web shop.

------
edem
This chart looks like a GROUP BY clause which was used in a not too meaningful
way. As others mentioned above there are a lot of parameters here like the
company you are working for, location, project nature and such which would be
important to point out.

------
edem
This chart looks like if a GROUP BY clause was used in a not too meaningful
way. As others mentioned above there are a lot of parameters here like the
company you are working for, location, project nature and such which would be
important to point out.

------
ori_b
What's the standard deviation on these numbers?

For all I know, they could all be the same (within error).

------
ronaldx
> I’m unfamiliar with some of the other languages... Any ideas on why these
> languages ranked higher or lower than average?

The unknown languages may appear on the outsides just because of the
statistics: smaller sample size => higher variance in the sample mean.

------
CmonDev
Looks like rubbish frankly speaking. That XSLT alone is a sign of something
being wrong.

------
jcromartie
It's based on household income, so is it reasonable to infer that Haskell
programmers may be likely to be the sole income while ActionScript programmers
have working spouses? That could make sense.

------
emilsedgh
Is there a point im missing that causes CSS to perform better than Erlang?

~~~
pkorzeniewski
I think CSS covers here a general "front-end web development" among with HTML
and there is simply a big demand for such stuff, especially will all the new
features of CSS3 and HTML5 - everyone wants a modern 3.0 website now :)

------
rockyj
Well this sucks, in India even after speaking Java, Ruby, CoffeeScript and
Scala I get a measly $35,000 which after taxes goes down to $25,000. Yeah, I
know low cost of living etc. etc.

------
JoeAltmaier
Perhaps the differences is in the demographics, not the language. People using
'older' languages may be older, further along in their careers. That would
explain everything.

------
bishop_mandible
LOL, even PHP programmers earn more than Haskell programmers.

~~~
dagw
If you're getting paid to program Haskell chances are you are in either
academia or finance. I think it's safe to assume that a) Haskell programmers
in finance earn more than most PHP programmers and b) that they're not allowed
to upload their latest projects to github.

------
eterm
Without significance testing, are those results significant? It looks like
random data to my eye but I've not got the source data for any proper
analysis.

------
circuiter
As a C and Java developer, the numbers made me feel good.

------
rwhitman
Hmm, looks like my giving up ColdFusion was a mistake...

------
Raphmedia
All those "CSS programmers" must be freelancers, with the salary covering the
whole contract.

Otherwise, I'm really, really, really underpaid.

------
juskrey
Your graphic representation is highly misleading.

------
roel_v
Where does he get income from? How does Rapleaf (whatever it may be) correlate
emails with household income?

------
nazgulnarsil
I'd really like to see a differing standard deviation between them.

------
krob
I guess I should drop php and switch to ruby & js exclusively eh?

------
jokoon
actionscript, whaaat. I thought people are using flah less and less.

------
kleiba
You can make money writing Emacs Lisp?

------
tianyazi
what's happened

