Slashdot Mirror


Which Programming Language Pays the Best? Probably Python

Nerval's Lobster writes: What programming language will earn you the biggest salary over the long run? According to Quartz, which relied partially on data compiled by employment-analytics firm Burning Glass and a Brookings Institution economist, Ruby on Rails, Objective-C, and Python are all programming skills that will earn you more than $100,000 per year. But salary doesn't necessarily correlate with popularity. Earlier this year, for example, tech-industry analyst firm RedMonk produced its latest ranking of the most-used languages, and Java/JavaScript topped the list, followed by PHP, Python, C#, and C++/Ruby. Meanwhile, Python was the one programming language to appear on Dice's recent list of the fastest-growing tech skills, which is assembled from mentions in Dice job postings. Python is a staple language in college-level computer-science courses, and has repeatedly topped the lists of popular programming languages as compiled by TIOBE Software and others. Should someone learn a language just because it could come with a six-figure salary, or are there better reasons to learn a particular language and not others?

183 of 277 comments (clear)

  1. Ada Engineer... by Anonymous Coward · · Score: 5, Informative

    Ada is paying me ~$140k

    1. Re:Ada Engineer... by Tablizer · · Score: 2

      Ada tells all her men that, until...

    2. Re:Ada Engineer... by aaaaaaargh! · · Score: 5, Insightful

      Exceptions???

      I very much doubt that a high salary for an Ada engineer is an exception, it would be suprising if there are any low-wage Ada jobs at all. The same goes for COBOL, without doubt.

    3. Re:Ada Engineer... by ColdWetDog · · Score: 2

      250K what? Rupees? Rubles

      --
      Faster! Faster! Faster would be better!
    4. Re:Ada Engineer... by omtinez · · Score: 2

      Let me question your doubts with some facts. Two major insurance companies and one (huge) banking institution located in the midwest pay between $70,000 and $80,000 a year as of mid 2013 for senior-level positions. I know that from going to their interviews myself, and they were very desperately looking for people. Albeit not desperately enough to raise the pay...

    5. Re:Ada Engineer... by darkwing_bmf · · Score: 2

      For a senior level position??? They need to update their salary reference tables.

    6. Re:Ada Engineer... by plopez · · Score: 2

      What is that in salary adjusted for local cost of living. $80k is minimum wage in Silly Valley, but in the mid west, which is a huge swath of land from Western PA to Eastern CO, $150K can buy you a nice house in a decent neighborhood. While in Silly Valley you would probably have to pay $500K + a horrific commute.

      --
      putting the 'B' in LGBTQ+
    7. Re:Ada Engineer... by HeckRuler · · Score: 4, Interesting

      Sigh.... *Raises hand*
      Hey, in my defense, when most people say mid-west they really mean Chicago. And the cost of living there is not the same as here in miniscule Quad Cities. I know it's only three hours away, but it's still a difference.
      Here, I only know of CTOs and one developer making over 6 figures. Most of the makerspace is making under 80K, with a couple exceptions.
      The biggest factor is that, for an embedded guy like me, there are only about 3 companies that would employ me. And only one big fish. (It's John Deere). There are plenty of small side players for general business-level developers, and web-devs can live anywhere, right?

      But yeah, with about a decade experience, I'm kinda feeling underpaid. The good news is that the whole family is headed for Colorado, where I hear there's more opportunity.

      With a combined income of ~150k, we live a comfortable life in a 3 bed 3 bath and have saved up a net worth of about 300k.
      That's two engineers with no kids most of that time. We certainly feel like one of the wealthier people in the area.

    8. Re:Ada Engineer... by AuMatar · · Score: 4, Interesting

      Even cost of living adjusted you're being screwed. A senior in Seattle (more expensive, but not silicon valley prices) will make 120K plus stock. A senior in the valley can make 160+ not counting equity and bonuses. A senior coming off a big success like working at a sold startup can make twice what your combined salary is (that's not counting what he makes on the sale itself). And cost of living isn't as huge a deal as many people make it for two reasons:

      1)The only thing that's hugely different is housing. Even if you pay 2-3x rent, you won't pay 2-3x for car insurance, the car itself, food, etc. That tends to be more 10-15% max (and usually much less, some things are even cheaper). You're most likely figuring the COLA wrong. The right way to do it is to break your costs into categories and figure out the adjustment for each category, not straight multiply by the rent adjustment.

      2)If you save the same percentage in either place, you should still prefer the place that pays more because you can downsize someplace cheaper at retirement.

      If you have personal reasons for wanting to live out there, that's totally different and understandable. But understand that you are getting fucked financially by it, it isn't just a cost of living difference.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    9. Re:Ada Engineer... by jonbryce · · Score: 1

      If it was Rupees, it would be quoted as 2.5 lakh, and tech salaries in India are a bit higher than that.

    10. Re:Ada Engineer... by plopez · · Score: 1

      I was working in a smaller University town and got laid off 3 times in about 12 years and had a new job within a couple of weeks each time. There simply weren't that many people at my skill level in the town. Low taxes and $500 /month rent. I tucked away a fair amount of cash.

      --
      putting the 'B' in LGBTQ+
    11. Re:Ada Engineer... by AuMatar · · Score: 1

      Its hard to compare car insurance directly since it depends so much on driving history, type of car, and theres a lack of quoted prices. However having lived in 3 states on 2 coasts in the last year, it didn't change much.

      Different calculators give different results, but they converge tot he same numbers within a percent or two, with one bad outlier website. Here's an example of what I could find:

      Seattle vs Quad cities

              Groceries14%more
              Housing48%more
              Utilities17%more
              Transportation8%more
              Health Care23%more

      San Jose (southern silicon valley) vs Quad cities

              Groceries27%more
              Housing154%more
              Utilities48%more
              Transportation0%more
              Health Care21%more

      75K in quad cities is 96K in Seattle or 116K in San Jose. Financially the cost of living argument just doesn't hold up, as you can beat that in Seattle and EASILY beat that in San Jose. The lack of employers pushes down salary more than the cheaper prices make up for. You also generally have to choose between fewer interesting jobs as well, although that doesn't matter to everyone.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    12. Re: Ada Engineer... by TimMD909 · · Score: 1

      I'm in Pittsburgh and it's about $120 for me a month with a brand new Sentra and full coverage through Progressive. I've heard of others around $100 for similar coverage. Anyone from Miami care to share their experience?

    13. Re:Ada Engineer... by Mister+Null · · Score: 1

      Good chunk of change. People forget about tasks such as Data Warehousing which really isn't programming but is heavily technical.

  2. Yes by Anonymous Coward · · Score: 4, Insightful

    Should someone learn a language just because it could come with a six-figure salary, or are there better reasons to learn a particular language and not others?

    Yes.

    1. Re:Yes by xaotikdesigns · · Score: 1

      I was wondering what languages I should learn myself. I have some experience with C++, but that's over 10 years ago, and only as a hobby. I've been thinking about picking it back up, but wasn't sure if there were better options. Since I'm an adult and looking to be able to support my family, money certainly is one of the leading factors as to which language I want to get into.

      --
      XDInd
    2. Re:Yes by thedonger · · Score: 5, Insightful

      I was wondering what languages I should learn myself. I have some experience with C++, but that's over 10 years ago, and only as a hobby. I've been thinking about picking it back up, but wasn't sure if there were better options. Since I'm an adult and looking to be able to support my family, money certainly is one of the leading factors as to which language I want to get into.

      A more relevant question than money may be what interests you? Automation, mobile apps, database, web, etc.? You may have the potential to make more money as a Python programmer, but will a few thousand on average more per year make the job itself more worthwhile? Would, say, only $95k per year to program C++ -- if the specific job was more to your liking -- be a deal breaker?

      Another way to look at it: If you are happier doing the job, might that make you perform better and therefor out-perform the industry average?

      --
      Help fight poverty: Punch a poor person.
    3. Re:Yes by daemonhunter · · Score: 1

      This. Mod parent up.

    4. Re:Yes by JustinKSU · · Score: 1

      I'm a developer and primarily develop in Java. However, I do program in Python from time to time. Without getting into a Holy War about scripting versus strongly typed languages, I will say that I would take less money to program in Java. I just enjoy it more. It probably has more to do with familiarity than Java being "better", but the syntax, third party tools, third party libraries, IDEs, etc. all contribute to the satisfaction of programming in that language.

    5. Re:Yes by darkwing_bmf · · Score: 2

      I'd wager that people who are doing what they're interested in make more anyway because they learn how to do things their uninterested peers don't care about.

    6. Re: Yes by Anonymous Coward · · Score: 1

      Python is best learned because you're an anal retentive asshole and would like to associate with your own kind. No other modern language is anal about indentation, nor has its own RFC and a Nazi-like attitude to creative thinking. "Zehr is only van vay to do it." Oh, and I should also point out it's complete failure to prevent its stated goal: prevent shitty code.

    7. Re:Yes by SQLGuru · · Score: 2

      All of the reasons that you like Java are the very same reasons that I opt to feed my family coding in the various .Net technologies (ASP.NET, C#, Javascript, HTML, etc.). Microsoft is very developer friendly (just as Balmer).....but seriously, Visual Studio is a great IDE.

      But I firmly agree with the aspect of taking less money to do what you love; that's far more important than money. My worst day doing my current job is better than the best day at my previous job.

    8. Re:Yes by Anrego · · Score: 1

      Indeed.

      Plus by having an outside interest, they tend to have a greater domain awareness and are able to talk more intelligently to customers and maybe even contribute business ideas.

    9. Re:Yes by JustinKSU · · Score: 1

      select HAPPINESS from LIFE;

    10. Re:Yes by Hognoxious · · Score: 1

      I prefer code I can see, thanks.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    11. Re: Yes by TapeCutter · · Score: 2

      it's complete failure to prevent its stated goal

      Speaking of shitty code, you do realise that expression resolves to "met its goal", right?

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    12. Re:Yes by Hognoxious · · Score: 1

      You might be interested in broom utilisation techniques, but you won't be paid any more than the other street sweepers.

      Note: I have nothing against street sweepers. I quite like them, in a way.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    13. Re: Yes by Hognoxious · · Score: 1

      At least apostrophes are visible.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    14. Re:Yes by HeckRuler · · Score: 1

      I too, am a big fan of Piet. Loved programming in Paint, the RIGHT way!

    15. Re:Yes by Jane+Q.+Public · · Score: 1

      Agreed. Some sources are saying Python pays the most today, others say C++, others say Ruby.

      But you have to factor in what you enjoy also. If I had a choice of a $110,000 job writing Python and a $100,000 job writing Ruby, I'd take the Ruby job, because I don't much care for Python, but I really enjoy Ruby.

      It's all a matter of taste. I've only dabbled in Python a little but that's because I don't care for it; a little was plenty for me. And even less so because I also don't care for that "significant whitespace" stuff. In my experience it can be hell when debugging someone else's code: "Did she mean to put this HERE? Or 4 columns to the left?"

    16. Re:Yes by Jane+Q.+Public · · Score: 1

      but the syntax, third party tools, third party libraries, IDEs, etc. all contribute to the satisfaction of programming in that language.

      And all of those same reasons are why I am DIS-satisfied with Java. I did some programming in Java, but it feels too restrictive to me. But I grant you: those restrictions are what enable it to run relatively fast.

      I think Java is a decent language for teaching object-orientated programming techniques. And it forces you to remain in-type, etc. But I've never much cared to work in restrictive environments and I feel that I can program like an adult without Java looking over my shoulder and forcing me to do things its way.

      I like that the entire "Hello World" program can be done in 15 characters. I like that I don't have to "include" libraries that I use damned near every day. Etc.

      But it's all personal preference. The point was that you should do what makes you happy. It's not the same for everybody.

    17. Re:Yes by garyebickford · · Score: 1

      Regardless of other aspects, if you want to learn something new, I would suggest trying one of the functional languages, such as Erlang or Haskell. Not because you actually want to get a job doing that, but because it will rearrange your brain and get you thinking about programs in a different, and I would argue, better way. I have never gotten around to becoming proficient in either one, but the limited effort I made to learn Erlang has greatly changed the way I write in other languages.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    18. Re:Yes by hermitdev · · Score: 1

      I agree that language comes down to preference and usually comfort level. Having +10 years experience with C++, C# and Python each, while roughly a year experience with Java & Ruby, my languages of choice, in order are: C++, Python, C#, Ruby, Java.

      I particularly like C++ because of it's raw unabashed power. There's very little magic, and nearly every language construct is straight forward and easy to understand. Granted, there are a ton of subtle gotchas an nuances that will trip up the inexperienced and even the veterans. I like Python because the language itself is clean, succinct and terse (but not perl level terse). It also has the benefit of generally being easily readable by non-Python folks. I hear a lot of complaints about the whitespace, but when it comes down to it, it's a non-issue when you're used to it. If you indent your code well and normally in other languages, your code looks the same, but you've saved having to type the braces. One of the other things I like about Python is how well and cleanly it interfaces with C/C++. It's C object model is one of the cleanest and most straight forward I've ever seen. It is a breeze to interface with and expose C/C++ APIs to. Unlike perl with its abomination of a library: XS. I like C# for a lot of the same reasons: mostly clean language, expansive built-in library and removed a lot of the idiocy of Java (exception specs? ew. Double is an object, double is a value, wtf?

      I have very little experience with Ruby, and I'm still learning. It seems a mix of Python & Perl which, I tend to stay towards the more Python-ic approaches in Ruby because they're clearer and make more sense to me.

      As far as looking for a job, money isn't everything. A year ago, I left a job pulling in $155K base with bonuses around $40K per anum doing mostly C++ & Python, which I liked. But after a decade at the company, I'd enough of the stress and the B.S. politics, so I left for a job where I'm just pulling $145K base and little to no bonus doing mostly C#, Java, Ruby and maintaining legacy Python code. And, for now at least, I'm happier. Sure, I miss the money, but I still make enough.

    19. Re:Yes by Jane+Q.+Public · · Score: 1

      Well, my first language on a "serious" computer was Fortran, and not a "modern" version. And I absolutely hated the "this has to go in this column" BS, which may be why I don't care for the whitespace in Python. Used to it or not, I just don't care for it.

      Same with the Haml framework in Ruby, which also uses significant whitespace. I used it enough to become familiar with it. Didn't care for it at all.

    20. Re:Yes by shutdown+-p+now · · Score: 1

      It's worth noting that many high-paying jobs require multiple languages. E.g. when people talk of Python, the ability to write extension modules in C++ is often assumed.

  3. Problem domain, not language by lgw · · Score: 5, Informative

    It's the problem domain, not the language. Front-end webdev seems more concerned with language fashion, and kernel work still scoffs at anything but C, but in-between language doesn't seem to matter that much.

    I've most of my career writing no-UI usermode code, and employers haven't much cared which language I knew. It's sort-of moved from C++/C#/Java being interchangeable to Java/C#/Python, though many hiring managers still seem skeptical of Python as a "real language" (I expect that will change over time).

    It's not your ability to bang out code in any language that will advance your career anyhow - whether tech track or management, it's one set of leadership skills or another that come to matter most.

    --
    Socialism: a lie told by totalitarians and believed by fools.
    1. Re:Problem domain, not language by crgrace · · Score: 5, Insightful

      This is exactly right. I'm a scientist, not a programmer, and we use Python in my group because it is clean, easy, and gets the job done. When we hire people for scientific programming they typically use some mix of Python, C++ (ROOT, anyone?), and Fortran. These engineers are sought-after because they know how to solve tricky large-scale mathematical problems using computers, not because of a specific language.

      So it isn't a matter of "programming language x is valuable", but more a matter of "valuable people use programming language x".

    2. Re:Problem domain, not language by K.+S.+Kyosuke · · Score: 1

      Front-end webdev seems more concerned with language fashion, and kernel work still scoffs at anything but C, but in-between language doesn't seem to matter that much.

      Unless you're doing extremely challenging things...the kind that is often high-risk but also high-reward.

      --
      Ezekiel 23:20
    3. Re:Problem domain, not language by Austerity+Empowers · · Score: 1

      Leadership skills... Sorry I agree with most of what you said except that part. Never has such a word had such an ironic meaning as the word "leadership" in context of the corporation.

    4. Re:Problem domain, not language by halivar · · Score: 2

      Every corporate development team I've been on has had a leader, even if unofficially. Technical leadership is essential for developing talent, authoritatively resolving conflicts, and mentoring new and younger developers. A team without such leadership is dysfunctional from the get-go.

    5. Re:Problem domain, not language by lgw · · Score: 5, Insightful

      Never confuse "leadership" with "management". I'm quite well compensated, and a key reason is my ability to drag projects across the finish line, and the primary obstacles are often managers and petty territorial pissing. Another reason is that I make a concerted effort to raise both the code quality and developer morale around me - often by forcing a change in toolchain or automation through the bureaucracy to address whatever's frustrating developers most day-to-day. Sure, some companies don't value that sort of thing, but plenty do - enough for a solid career.

       

      --
      Socialism: a lie told by totalitarians and believed by fools.
    6. Re:Problem domain, not language by pixelpusher220 · · Score: 1
      from the OP

      context of the corporation

      and your response

      dysfunctional from the get-go

      is basically the same thing :)

      --
      People in cars cause accidents....accidents in cars cause people :-D
    7. Re:Problem domain, not language by lgw · · Score: 1

      There are major software-focused corporations where the software developer culture is not dysfunctional, and it's probably no accident they're many of the industry leaders (outside of gaming, for whatever reason, where the larger the corporation the deeper the circle of Hell for the devs).

      --
      Socialism: a lie told by totalitarians and believed by fools.
    8. Re:Problem domain, not language by Anonymous Coward · · Score: 1

      So if I program in python people will stop calling me retarded? Thanks for the tip. Diving right in.

    9. Re:Problem domain, not language by g01d4 · · Score: 4, Informative

      solve tricky large-scale mathematical problems using computers

      With Python many problems have either already been solved or there are several, typically free resources that make solutions easier. I also use Matlab which, far from free, is also supported widely.

    10. Re:Problem domain, not language by twdorris · · Score: 3, Funny

      So if I program in python people will stop calling me retarded?

      Yeah, I'm pretty sure that's exactly what he said. And I kinda doubt people will ever stop calling you retarded.

    11. Re:Problem domain, not language by garyebickford · · Score: 1

      As a long time developer, I would say that nobody should be planning to use C for anything but where it's apparently still considered almost mandatory - kernels, device drivers, maybe compilers & interpreters. Application coders (your "in-between") should almost never waste time and mental effort making up for the lack of memory management and features like bounds checking of more "modern" languages. And I would argue that with most hardware being designed using advanced CAD, the hardware design should be well enough characterized that even device drivers may soon become something that could be almost automatically generated from the hardware specification, eliminating that job.

      * footnote: In the 1960s, Burroughs Corporation used Language-directed design for their computers. For at least some of their designs, the entire system was defined and modeled in a high level software language (typically ALGOL) and internal specification language, and then the hardware/software interface was defined according to performance requirements and the hardware was built to implement the originally software-defined low level functionality.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    12. Re:Problem domain, not language by narcc · · Score: 1

      To add to your point: You can also justify using the terms "clean" and "easy" to describe Forth.

    13. Re:Problem domain, not language by shutdown+-p+now · · Score: 1

      For scientific and technical computing, data science and machine learning, a good reason to use Python by default is basically because everyone else does. So it's easy to find libraries that already cover your domain, a large and helpful community, and ease of hiring new people.

      Well, and there's IPython.

  4. False advertising by Anonymous Coward · · Score: 5, Insightful

    Not a single programming language makes the best figures in a year for you..but the ability to adapt and learn new technologies as well as completing your task does.

    1. Re:False advertising by Anonymous Coward · · Score: 1

      Actually if you are willing to become a gun on one of the older languages that are disappearing you will acutally make a LOT more money. e.g. here where I live the best pay is for Model 204, Ada, Cobol. followed distantly .NET and Java. Scarcity of resources combined with an absolute glut of legacy code means you will have a job for life at rates that more modern language programmers only dream of.

    2. Re:False advertising by Hognoxious · · Score: 1

      Monkey spunk.

      Learning new languages is great and all, but what it means is that you're permanently a n00b.

      And even if they need someone who knows assembler, cobol, D-flat and some other shit that hasn't been invented yet it might get you the gig but they aren't going to pay you four salaries for it.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    3. Re:False advertising by Lawrence_Bird · · Score: 3, Insightful

      Contrary to your popular belief, COBOL and Fortran are not disappearing. But they do pay well. They are left out of these type of surveys because they are not sexy and not buzz worthy. There will be millions (billions) of lines of COBOL still in production long after Ruby is dead and buried.

    4. Re:False advertising by BarbaraHudson · · Score: 1

      guru

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
  5. Java/Javascript eh? by Anonymous Coward · · Score: 1, Insightful

    Looking at this website I'm not that surprised you think they're the same thing.

    1. Re:Java/Javascript eh? by Bing+Tsher+E · · Score: 1

      Java is the language Minecraft is coded in, and Javascript is what web 'developers' use to jumble the marked up content in HTML and make it slower for the web browser to display.

  6. How much of that is big data-driven? by MikeRT · · Score: 2

    A lot of big data work seems to be done or prototyped with Python. Storm, Spark and others treat Python very well, but Ruby (MRI, not JRuby) gets a lot less love there and big data is a market with big salaries.

    1. Re:How much of that is big data-driven? by GameboyRMH · · Score: 1

      The most lucrative programming career is one where you constantly jump between short-term fads.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    2. Re:How much of that is big data-driven? by pixelpusher220 · · Score: 1

      Or at least enough to know when to stop jumping.

      --
      People in cars cause accidents....accidents in cars cause people :-D
    3. Re:How much of that is big data-driven? by jbarone · · Score: 4, Informative

      Big Data isn't a fad. It's what built Google and Facebook into the companies they are today, and the applications for it are growing rapidly in tons of non-tech fields. Sure it's a buzzword, but a useful one since there wasn't previously a way to describe the various aspects of it succinctly.

    4. Re:How much of that is big data-driven? by micahraleigh · · Score: 1

      Big data is not a fad. It started slow (might be where you are coming from).

      In my last job search 3 of the places I interviewed were interested in .NET developers with Mongo.

      Mongo because ... big data.

    5. Re:How much of that is big data-driven? by Bing+Tsher+E · · Score: 1

      You would have said that about tulip bulbs, too. And look where we are today. Tulip bulbs are worth a fortune. I sold some of my shares in one to buy my house.

    6. Re:How much of that is big data-driven? by Hognoxious · · Score: 1

      Mongo is webscale. It doesn't use joins.

      https://www.youtube.com/watch?...

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  7. Why program in Python by Danathar · · Score: 3, Insightful

    You should program in Python because it's a great language.

    1. Re:Why program in Python by linuxrocks123 · · Score: 3, Informative

      That's not really fair. There are really only two versions: Python 2.7, which is mostly backward compatible earlier Python 2.x, and Python 3.x, which is a new, incompatible language similar in spirit to Python 2. The stated reason for radically breaking compatibility with Python 3 is "because Unicode". I don't much buy that, but whatever. Python 3 uptake has been slow because of the backward incompatibility, but it's clearly the future of the language. At the same time, Python 2.7 is still by no means a bad language, as long as you don't care about Unicode.

      There's also Jython and IronPython, but those aren't official versions of the language.

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    2. Re:Why program in Python by Lodragandraoidh · · Score: 1

      What versions are you using, and what features are broken between them that you are complaining about? 3.0 was clearly a departure from the 2.X versions - and that is well known; if you have code that needs 2.X, you can stick with that until it makes sense to transition/migrate your code to 3.0. Right now I'm using 2.6/2.7 - and it is solid as a rock, so I'm not sure what you're complaining about; no one is forcing you to upgrade versions if you don't want/need to, right?

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    3. Re:Why program in Python by Lodragandraoidh · · Score: 1

      P.S. I would have thought your statements more appropriate to Perl than Python:

      I came to python after using perl for over 10 years - and have never looked back. Hands down it can do everything perl can do - while providing clear, readable code that is consistent from one developer to the next...you have to really dig down into the bowls of python to create anything that would make me scratch my head - whereas that is trivial to accomplish with perl - and was the cause of many headaches over the years when needing to work with multiple developers' code. I debugged my last hanging curly brace/missing semicolon long ago.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    4. Re:Why program in Python by aaaaaaargh! · · Score: 1

      It's also the slowest language, at least among the common ones. In fact it's so slow that it's even a lousy replacement for Basic, because most Basic implementations are faster. And it's not standardized.

    5. Re:Why program in Python by narcc · · Score: 1

      Within 2.x, you'll find many problems with backward compatibility. 2.3, 2.4, and 2.5 -- 2.6 got a lot of bad press, but it did break less stuff than the previous versions, so I'm excluding it for fairness.

      I'm not sure what you're complaining about; no one is forcing you to upgrade versions if you don't want/need to, right?

      How long will users be able to maintain an installation of, for example, 2.4 if their software depends on it? Will there even be anyone around who remembers that requirement in 5 or 10 years time? What about security issues? 2.2, 2.3, and 2.4 all have notable security issues.

      Software should have a life-span longer than a midge-fly.

    6. Re:Why program in Python by narcc · · Score: 3, Interesting

      Hands down it can do everything perl can do - while providing clear, readable code that is consistent from one developer to the next.

      My experience is different. Dramatically different, actually. I've seen very few examples of readable python, and very little consistency between developers.

      I suppose you're referring to the controversial the white space rules? The killer-feature that can be replicated for any sensible language with a keystroke in virtually every editor? Or, if you prefer: The reason that anonymous functions in Python are crippled?

      I'd even go as far as to say it's white space rules make Python code significantly more difficult to read, as you can't clearly see where blocks begin and end, particularly when the indentation level changes by more than one, which happens quite frequently.

      I debugged my last hanging curly brace/missing semicolon long ago.

      I'll bet it was easier than hunting down the invisible bugs from mixed tabs/spaces or introduced by your editor mangling indentation while moving bits of code around. You know, problems you're actually likely to encounter when using Python, unlike your examples.

    7. Re:Why program in Python by Anonymous Coward · · Score: 2, Insightful

      My experience is different. Dramatically different, actually. I've seen very few examples of readable python, and very little consistency between developers.

      Every language can be made readable or unreadable, which depends on the programmer. Python culture though actively pushes writing in a 'pythonic' way, which mostly boils down to as simple and readable as possible and repeating yourself as little as possible. That results in very readable code. Perl culture on the other hand often actively takes pride in getting as much code as possible into a single line which makes code completely unreadable, or actively trying to make it unreadable. If your developers aren't writing readable code they aren't writing in a Pythonic manner, meaning they aren't Good(tm) python developers.

    8. Re:Why program in Python by tomhath · · Score: 2

      If your only concern is cpu cycles you shouldn't use an interpreted language. As long as the program is fast enough you should be concerned about things like productivity, testability, and maintainability.

    9. Re:Why program in Python by Just+Some+Guy · · Score: 1

      Whatevs. I co-built a web service on Python that handled 250,000 requests per second with a horizontally scaleable design. We could bump that up to 1,000,000 requests per second by deploying 4 times the servers (which isn't as easy as it sounds because most things don't scale out well like that). I left that company and went to another employer that handled "only" 80,000 requests per second, averaged over a month. If you can ditch the chattiness of HTTP, well, I've written single-threaded UDP servers in Python that could handle 200,000 requests per second per server. How fast do you want it to be?

      Unless you're seeing extremely low numbers or your design requires vertical scaling because it was architected in 1965, choice of language isn't all that important. Ruby is slow, too, but Heroku manages to shovel the data pretty well.

      --
      Dewey, what part of this looks like authorities should be involved?
    10. Re:Why program in Python by Just+Some+Guy · · Score: 1

      I agree, but remember that Python is interpreted in exactly the same way that Java is: both compile high level code to bytecode and run it on virtual machines. PyPy selectively uses LLVM to compile that bytecode into assembler for some enormous performance boosts, much as the Java JIT compiler does.

      --
      Dewey, what part of this looks like authorities should be involved?
    11. Re:Why program in Python by aaaaaaargh! · · Score: 1

      I don't know. While I personally don't really care which programming language is used and have no quirks with programming in Python if I had to (I've done it in the past), it's not easy to see why Python became so popular except for confirming the widely held suspicion that only lousy programming languages can become popular. Even Ada has higher productivity, testability and maintainability, and it's as fast as C.

      To make things worse, Python is also slower than Ruby, Scala, Clojure, Racket, Common Lisp (sbcl), Rust, FreePascal, PHP, ....

      Also, explain to me why anyone should use an interpreted programming language when even CommonLisp was already compiled in the 80s?

    12. Re:Why program in Python by goose-incarnated · · Score: 1

      As a roundabout answer to your final question... when there is a "technology" (I use that word loosely when describing computer languages) that takes all of 5 minutes to grasp then you are going to get a lot of practitioners of that tech being the type who picked it up in 5 minutes or less. Had they spent the requisite number of years using different idioms in different languages in different industries you can be sure that they would have firmly placed python back down after playing with it for a few weeks.

      Proponents think python is great because they're comparing it to PHP and/or Perl. They think it's great because, in a tragic case of hilarity, jumping into code with minimal design is what python is great at. Had they done some design and/or architecture upfront their Java/C++/Ada/etc project would have taken the same time as their python one.

      I've never fully understood the whole "check types at runtime" thing. If you're a diligent programmer in python/php/javascript/etc then, in each function you write, you're going to double-check that the type passed in is correct, anyway. The only reason that python/php/javascript/etc code appears to be smaller for the same task in java/C++/Ada/etc is because the former omits all error-checking.

      For dynamic languages I still prefer Common Lisp, and that's only because the error signalling mechanism is so much superior to the exception-handling mechanism that you can actually get away with inferred types. Exceptions are one of the worst things to have become common - an "error" is almost always only caught outside the scope that it occurred in, hence the stack has already been unwound and thus there is no sane way to fix the error and retry the operation that caused the exception. Who in their right mind actually thought that this was a good idea? Gosling, when working on Java, must have been on serious meds to forget all he learned when writing MockLisp. To add to this comedy of errors, Guy Steele was only called in after Java was implemented to write the Java spec. Had they called him in a mere 24 months prior to that we may never have had to endure the horrible wreck that is the Exception ...

      --
      I'm a minority race. Save your vitriol for white people.
    13. Re:Why program in Python by Waffle+Iron · · Score: 1

      Would you care to enlighten us with an example of a popular real-world language that has not had problems with backwards compatiblity?

    14. Re:Why program in Python by Just+Some+Guy · · Score: 4, Insightful

      They think it's great because, in a tragic case of hilarity, jumping into code with minimal design is what python is great at.

      We think it's great because, among other things, it has first-class functions and a very high code:boilerplate ratio. This lets us write very concise, readable, and maintainable code.

      If you're a diligent programmer in python/php/javascript/etc then, in each function you write, you're going to double-check that the type passed in is correct, anyway.

      Eww, no. I've never seen good Python code that asserts types because it's not the idiom for you to care. For instance, suppose you write a function like:

      def get_contents_of(obj): return obj.read()

      In this case, obj might be a file, or a web request, or a string (via the StringIO interface). Who knows? Who cares? As long as obj.read returns something, it works. BTW, this is supremely nice for unit testing when you don't really want to hit an SQL server 1,000 times in a tight loop.

      Now, you could write something like assert isinstance(obj, file) to guarantee that you're only dealing with file objects. Of course, that lays waste to the whole concept of duck typing and people will laugh at you for doing it. So dropping that bad idea, you could write assert hasattr(obj, 'read') to ensure that the object has the needed methods. But why? Python gives you that check for free when you try to call the method. Let it do the heavy lifting and concentrate on the parts of the problem you actually care about.

      Exceptions are one of the worst things to have become common - an "error" is almost always only caught outside the scope that it occurred in, hence the stack has already been unwound and thus there is no sane way to fix the error and retry the operation that caused the exception.

      Yeah, that would be terrible. You almost never use them in Python like that, partially because Python tends to have a vastly shallower call stack than, say, Java (largely because you don't need 10 layers of abstraction between bits of code thanks to the duck typing we just talked about).

      I think it boils down to you not knowing idiomatic Python. That's OK. I'm ignorant about lots of things, too. But I think you'd find that you enjoy it more if you stop trying to write C or Java in Python, because that almost never works out well.

      --
      Dewey, what part of this looks like authorities should be involved?
    15. Re:Why program in Python by KagatoLNX · · Score: 1

      A few notes:

      Python's newer abstract base classes allow you to make types that specify the presence of abstract methods and properties and you can use isinstance(thing, base_class) to achieve something similar (and thereby making handling types more familiar to foreigners)

      With respect to Java and call stacks; Java has no easy way to dispatch to a function by name. You either need to make a class hierarchy so that you can use virtual call dispatch; or you need an if-tree (which is ugly but underappreciated). I've seen a few Java brains melt when I give them something like:

              cast_spell[spell_type](spell_data, casting_context)

      Of course, I could just make a base class for spells and grow a giant, sparse API; but the benefit of playing the default-implementation / function overriding game is suboptimal. At the end of the day, the class hierarchy is just a data structure to determine how different "types" of functions get dispatched. As it happens, it spreads things out in a way that makes them hard to visualize. It often forces me to shadow unrelated sections of other APIs that grow on the same base-class.

      In short, it's a crappy data structure for the purpose and it makes a pain out of gathering the knowledge to know how that dispatch happens. Sure, the code is "type-correct", but that doesn't say very much about being logically correct. As it happens, type errors are easy errors--but figuring out how the class hierarchy isn't serving your logical needs is *not* an easy error.

      Don't get me wrong, I'm not fundamentally opposed to a good type system. First-class functions in Haskell or the like could handle this with type-safety. However, our industry just isn't ready for all of the pipes, beards, and sweaters. So, given the choice between Python and Java, I pick the one that give me methods for dynamic dispatch that don't abuse an already incredibly limited inheritance mechanism. I'll take the language that allows extensible, generic function application instead of getting it as a side-effect of their implementation of an already stunted type-system.

      --
      I think Mauve has the most RAM. --PHB (Dilbert Comic)
    16. Re:Why program in Python by Jeremi · · Score: 1

      Also, explain to me why anyone should use an interpreted programming language when even CommonLisp was already compiled in the 80s?

      In a large number of scenarios, the limiting factor is the skill of the (often easily-intimidated newbie) programmer, not the speed of the resulting program's execution.

      In those cases, a "slow" language that is easy to learn and use (e.g. Python) typically produces a better result than a really fast/powerful language that isn't as newbie-friendly. Computers are fast enough these days that for a lot of things, a slow/inefficient program is nevertheless more than adequate to the task at hand.

      In particular, I think the ability to run the Python interpreter and enter python code into it interactively is an easy and convenient way for people to experiment and learn how Python works. Compiled languages make that harder to do, as you have to enter all your changes at once, then recompile, rather than being able to type in a single line and get an instant result.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    17. Re:Why program in Python by ultranova · · Score: 1

      As long as the program is fast enough you should be concerned about things like productivity, testability, and maintainability.

      And thus use a language with compile-time type checking.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    18. Re:Why program in Python by narcc · · Score: 1

      Not with vague criteria like 'popular', which can mean whatever you feel best suits your interests. I can, however, point out numerous languages with far fewer problems with backward compatibility than Python. For fun, I'll use only languages that you're likely to despise: VBA, PHP, JavaScript, and Perl (even the infamous Perl 6 is slated to have a compatibility mode for Perl 5 code), just to name a few.

      In each of those examples, you'll find that most, if not all, untouched 10-year-old code works in the latest releases. (Yes, even PHP, which has been known to give users a decade or more to deal with depreciated features.)

    19. Re:Why program in Python by goose-incarnated · · Score: 1

      They think it's great because, in a tragic case of hilarity, jumping into code with minimal design is what python is great at.

      We think it's great because, among other things, it has first-class functions and a very high code:boilerplate ratio. This lets us write very concise, readable, and maintainable code.

      That's the tragic case of hilarity I was talking about. You do realise that you're talking about a language that takes the law of least astonishment and throws it out the window? There are too many exceptions to the rule in Python, leaving most people writing things that fail and silently corrupt data, or fail and displays an incomprehensible message to the user. There are too many leaky abstractions, too many unexpected surprises, too many exceptions to the rule. All those things are bad, and python has them all in spades.

      If you're a diligent programmer in python/php/javascript/etc then, in each function you write, you're going to double-check that the type passed in is correct, anyway.

      Eww, no. I've never seen good Python code that asserts types because it's not the idiom for you to care. For instance, suppose you write a function like:

      def get_contents_of(obj): return obj.read()

      In this case, obj might be a file, or a web request, or a string (via the StringIO interface). Who knows? Who cares?

      def foo (a, b) : return a/b * 100; That will eventually fail unless you put in checks to make sure that arguments are what you expect. This is what I meant by hilarious tragedy - python/javascript/etc programmers rely on the caller to read the code before calling the function. You need to know what each function takes and heaven forbid you forget - the damn thing will only fail at runtime, or worse, silently corrupt data without anyone realising it.

      Python gives you that check for free when you try to call the method. Let it do the heavy lifting and concentrate on the parts of the problem you actually care about.

      Well, except that it is you, the programmer, who is doing the heavy lifting. You have to make sure everything is specified, the language won't help you.

      Exceptions are one of the worst things to have become common - an "error" is almost always only caught outside the scope that it occurred in, hence the stack has already been unwound and thus there is no sane way to fix the error and retry the operation that caused the exception.

      Yeah, that would be terrible. You almost never use them in Python like that,

      Okay, then how doyou use them? Show me one way for a library function to throw an exception for a reason that is fixed by the caller so that the library can retry the line that threw the exception?

      I think it boils down to you not knowing idiomatic Python.

      Unfortunately I've had to do lots of work in python over the years, both maintaining others' code and writing new code. The reason I know all these nasty-will-bite-you things is because I've run into them in various different programmers code, in various different companies. The problem with python is it's easy to pick up in a few minutes, but all those exceptions to the rule makes it hard to even guess what something might do at runtime. The most frequent problem I've seen is the insane way scope changes in a single line of code when a read of a variable is changed to a write of the same variable.

      Changing "var_b = var_a" into "var_a = var_b" should not change the scope of either variable, but in python it does, and it is considered "pythonic". Other languages consider such a thing to be madness, but in python it is considered to be idiomatic rather than just idiotic.

      That's OK. I'm ignorant about lots of things, too. But I think you'd find tha

      --
      I'm a minority race. Save your vitriol for white people.
    20. Re:Why program in Python by Slashdot+Parent · · Score: 1

      The last time I looked at learning Python, it was clear that Python 3 was the way of the future, but Django only ran on Python 2. Soooo.... I just kind of gave up on that one.

      Python is still on my list of languages to learn, but it's more on the back burner until Python 2 is but a distant memory.

      The stated reason for radically breaking compatibility with Python 3 is "because Unicode".

      This is obviously silly. Look at what Oracle did with Java 8. Java 8 is a huge upgrade to the language, but it doesn't break a single line of Java 7 code, despite many JDK interfaces changing. I know, I know, everyone hates Oracle around here, but at least they recognize breaking backward-compatibility is probably a bad idea.

      --
      They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
    21. Re:Why program in Python by linuxrocks123 · · Score: 1

      Well, 100% backward incompatibility isn't always possible, but I think the gratuitous incompatibility in Python 3 is bad. Example: making print a function instead of a special statement. Yes, okay, maybe that would have made more sense 20 years ago when you designed the language. No disagreement, necessarily. But probably a million people or more are now used to typing "print whatever" into the Python interpreter during debugging and when making console Python applications, and inconveniencing all of those people because you think "print(whatever)" is more aesthetically pleasing is just plain inconsiderate.

      My (mostly uninformed) opinion is they should have done whatever they needed to do to get Unicode working with minimal drama ... and then stopped there, at least as far as backward-incompatible changes go.

      But, hey, they did it, and many people actually like what they did. Including, it looks like, the Django people. You might want to read this if you're curious what some big-name porters think of Python 3 (the attitude seems mostly positive).

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    22. Re:Why program in Python by Slashdot+Parent · · Score: 1

      I'm not saying that they shouldn't have improved the language--I'm just saying that they should have made the upgrade path easier. This is coming from the point of view of someone who wanted to learn Python, but decided against it because why should I learn a language that I can't use right away?

      This was a few years ago at this point, but my position then was that I wasn't going to learn Python 2 for the obvious reason that it was deprecated. But why should I learn Python 3 if I can't even use Django? So I lost interest and learned something else instead (I forget what. Solr, maybe?)

      I'm sure that the situation is way better right now that the Python community has had a few years to evolve to Python 3. But now I have a backlog of new things to learn, so my guess is that one day I'll need numPy and I'll probably give Python another look, but that state of flux was what turned me off from learning the language originally.

      --
      They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
  8. Which job website pays the best? by sdguero · · Score: 5, Funny

    I read that LinkedIn is a job website that will get you more than $100,000 per year. Meanwhile, LinkedIN was the one programming language to appear on LinkedIn's recent list of the fastest-growing tech skills, which is assembled from mentions in LinkedIn job postings.

    Fuuuuuck Yoooooouuuuuuuu Dice!

    1. Re:Which job website pays the best? by halivar · · Score: 1

      Nerval's Lobster strikes again with another Dicevertisement. For those who don't know, Nerval's Lobster is the unofficially official Dice astroturf account. And everything he posts is drivel.

  9. MATLAB by Anonymous Coward · · Score: 1

    Python? That's interesting - just a few months ago, a different slashdot article said that MATLAB is the one language you need on your resume (if you want a job at Google). It's nowhere to be found on this particular, list however!

    1. Re:MATLAB by pixelpusher220 · · Score: 1

      exactly.

      --
      People in cars cause accidents....accidents in cars cause people :-D
    2. Re:MATLAB by shutdown+-p+now · · Score: 1

      These are not contradictory claims. But it should be noted that the current trend is people going from MATLAB to Python for the kind of things that both are good at. It was initially probably driven mostly by Python being free, but now it has a kind of an avalanche effect in that the more people switch, the bigger the Python community is, the more libraries, docs etc are, and the better it becomes - and hence more enticing to switch for the remaining folk.

  10. Java and JavaScript are different languages by Anonymous Coward · · Score: 1, Insightful

    RedMonk produced its latest ranking of the most-used languages, and Java/JavaScript topped the list

    Of course it did, if you combine the results of two popular languages it makes sense that the combined result might outshine the rest. But what about the results for Java and JavaScript as two separate languages, which they are? The link to the actual rankings was not provided in the summary... I can only hope that it's just written poorly and both tied as #1..?

    Also, cost of living is vastly different around the world and the US. It does not appear to have been corrected for in this study, making it pretty much useless IMO.

  11. C pays well. by Snufu · · Score: 1

    But only in coins.

    1. Re:C pays well. by __aaclcg7560 · · Score: 1

      Bitcoins. Not a penny less.

  12. What does learning a language really mean? by Jackazz · · Score: 2
    What metric should we use to say we've "learned a language"? At what point can you put in on your resume? Do you have to take a college course? Publish an application? Read a book?

    Sometimes, the more you learn, the more you understand you are not an expert.

    1. Re:What does learning a language really mean? by Anonymous Coward · · Score: 2, Insightful

      That would be the ability to not look like a fool when your knowledge of the language is challenged in an interview.

    2. Re:What does learning a language really mean? by Bruco · · Score: 1

      Ain't that the truth. I'm a network/infrastructure goon, and I use Python all the time to automate things, sort mountains of data, etc. etc. Sometimes when I'm stuck on how to do something I'll look it up and find myself staring at code on Stack Overflow that is completely alien to me. I suppose that sticks me in the "hobbyist" category... but, I usually end up learning something, so there's that.

    3. Re:What does learning a language really mean? by allquixotic · · Score: 1

      That's just passing the buck, not really answering the question. I can imagine three completely different interviews purportedly about, say, "Ruby": one that a college kid could pass by going through a Ruby tutorial the night before; one that would require the same kid to take a Programming Languages class with a 4-week section on Ruby to be able to pass; and one that would unambiguously flunk everyone except Masahiro Matsumoto. There is an entire spectrum of different difficulties of interview in between these three examples, too.

      The OP asked a philosophical question, and you provided a concrete answer that, while technically correct, does not actually get us any closer to an understanding of the issue. A more reasoned answer would go something like this: if you're being hired with the intent of writing Ruby code as a significant part, or the entirety of your job description, the interviewer ought to ask questions that are challenging enough that, if you can answer them fluently and capably, the implied skills you must possess in order to do so would be more than sufficient for you to excel at the type of work being performed. Even within the industry of coding shops, there is an enormous difference between writing Ruby for basic office automation tools (say, an automatic timesheet filler using Selenium) and writing Ruby with intense domain knowledge needed in a challenging area, like physics, quantum computing, higher mathematics, actuarial science, etc.

      So the two axes of programming language competency are: domain knowledge (can you comprehend the subject matter enough to develop the algorithms/formulae/logic flows for the software you're writing?), and knowledge of the language and its libraries, including third-party libraries (are you able to use the facilities of the language itself or any third-party components in order to implement your solution?). Proper competency must be established on BOTH axes in order to determine if you're suitable for a job.

      In the absolutely general, context-free case of determining whether you are "competent" or "good" or "learned" with a language, I don't think it's possible to answer in any meaningful way. One's competency must always be bounded by a realistic look at what exactly the work to be perfomed entails.

    4. Re:What does learning a language really mean? by Opportunist · · Score: 1

      Well, then the correct answer is actually what the GP said: You're "good enough" in a language when your command of it is sufficient to make it past the interview.

      At what level can you say the same about any foreign (human) language? When can I say "I speak English"? When I can make Shakespeare look like he needs a thesaurus to compete with me, or is it enough to read enough LOLcats and mimic their expression? Same deal, you're good enough when you're good enough.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  13. C++/Ruby hotness by NonUniqueNickname · · Score: 4, Funny

    and Java/JavaScript topped the list, followed by PHP, Python, C#, and C++/Ruby.

    C/C++ is old, C#/C++ is tired, but C++/Ruby is so hot right now.

    1. Re:C++/Ruby hotness by Slashdot+Parent · · Score: 1

      C/C++ is old

      Whenever I see that on a resume when I'm doing an interview, my first technical question is, "What's the difference between C and C++?" 9 times out of 10, the applicant has no clue whatsoever.

      Hint to job applicants: if the extent of your experience is that you broke your brain on a few curly braces for a semester in college, don't put "C/C++" on your resume.

      --
      They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
  14. Not COBOL? by crgrace · · Score: 1

    I thought maintaining legacy systems using COBOL was the road to riches. Is that a myth?

    1. Re:Not COBOL? by blueshift_1 · · Score: 2

      The problem with COBOL is that while there is definitely need, it's still a niche market. I feel like this article was more focused on what popular languages could make you money. The reason COBOL is valuable is because it isn't popular.

    2. Re:Not COBOL? by phantomfive · · Score: 1

      It's hard to say. Look at the data they used.

      The data is compiled from job listings. How often do job listings show salaries? Not very often. The ones that do tend to be government jobs or fake job postings trying to fulfill the requirement for an H1 visa.

      Furthermore, the salaries listed are crap. If you look here, even developers in the midwest make more than what they are listing.

      To add randomness to this post, someone told me about a COBOL project that was the best he'd ever worked on. It had build automation in the 80s, was cleanly organized, easy to find what needed to be changed, and small changes required small effort. Further evidence that the language doesn't matter as much as the people using it.

      I would love to be working on a COBOL code base like that right now, instead of the 'modern' crap pile I'm currently fixing.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:Not COBOL? by martiniturbide · · Score: 1

      There was this related post on Slashdot on Sep 2014. College Students: Want To Earn More? Take a COBOL Class - http://developers.slashdot.org...

  15. The best reasons to learn Python by Marginal+Coward · · Score: 2

    For the best reasons to learn Python, see The Zen of Python. If Python happens to pay more, that's just gravy.

    That said, it seems hard to believe that people would get paid extra to work in such a pleasant language. If so, maybe Adam Smith had it all wrong when he said:

    First, The wages of labour vary with the ease or hardship, the cleanliness or dirtiness, the honourableness or dishonourableness of the employment...The most detestable of all employments, that of public executioner, is, in proportion to the quantity of work done, better paid than any common trade whatever.

    Perhaps florists soon will be making more money than plumbers. Which would really stink.

    1. Re:The best reasons to learn Python by goose-incarnated · · Score: 1

      For the best reasons to learn Python, see The Zen of Python. If Python happens to pay more, that's just gravy.

      That said, it seems hard to believe that people would get paid extra to work in such a pleasant language. If so, maybe Adam Smith had it all wrong when he said:

      First, The wages of labour vary with the ease or hardship, the cleanliness or dirtiness, the honourableness or dishonourableness of the employment...The most detestable of all employments, that of public executioner, is, in proportion to the quantity of work done, better paid than any common trade whatever.

      Perhaps florists soon will be making more money than plumbers. Which would really stink.

      I see no beauty, simplicity or elegance in the pythonic way variables are handled when shadowed (for example, global scope). You can read them BUT writing them fails silently! Explain how this is intuitive in any way.

      --
      I'm a minority race. Save your vitriol for white people.
    2. Re:The best reasons to learn Python by Gorobei · · Score: 1

      For the best reasons to learn Python, see The Zen of Python. If Python happens to pay more, that's just gravy.

      That said, it seems hard to believe that people would get paid extra to work in such a pleasant language. If so, maybe Adam Smith had it all wrong when he said:

      First, The wages of labour vary with the ease or hardship, the cleanliness or dirtiness, the honourableness or dishonourableness of the employment...The most detestable of all employments, that of public executioner, is, in proportion to the quantity of work done, better paid than any common trade whatever.

      Read on a bit more. By paragraph 10 he points to increased wages for jobs requiring skill, by paragraph 20 he's getting into jobs requiring trust.

      Pity he living too soon to comment on large software project laborers.

    3. Re:The best reasons to learn Python by Marginal+Coward · · Score: 1

      Read on a bit more. By paragraph 10 he points to increased wages for jobs requiring skill, by paragraph 20 he's getting into jobs requiring trust.

      What skill? I've been writing Python for over 10 years. Sure, it took a little while to learn to think Pythonically, but the main selling point is that Python is truly easy. Oh, except for those folks who can't live without braces. And compared to regular dentists, don't orthodontists get paid extra to use braces?...

  16. Perl! by MagickalMyst · · Score: 3, Interesting

    No, I probably won't make $100k/year coding in Perl but I don't care.

    It's not about the money. It's about the love.

    Not as tedious as C++; not as clunky as Java; not as lame as VB.

    Scoff all you want! I feel blessed while coding in Perl.

    Thanks Larry & friends!

    --
    Political correctness is really just herd psychology pushed by insecure people who desperately seek social conformity.
    1. Re:Perl! by MagickalMyst · · Score: 1

      Thank you. I like you too. :)

      (That is, as long as you are not the heterophobic troll who has been spamming Slashdot lately).

      --
      Political correctness is really just herd psychology pushed by insecure people who desperately seek social conformity.
    2. Re:Perl! by Hohlraum · · Score: 1

      I love Perl as well (and I make well over that). But I'll be honest with you. After 20+ years of programming in Perl I love programming in Python a whole lot more.

    3. Re:Perl! by MagickalMyst · · Score: 1

      Interesting.

      --
      Political correctness is really just herd psychology pushed by insecure people who desperately seek social conformity.
    4. Re:Perl! by wiredlogic · · Score: 1, Flamebait

      The christian propaganda everywhere is part of why Perl has been abandoned.

      --
      I am becoming gerund, destroyer of verbs.
    5. Re:Perl! by MagickalMyst · · Score: 1

      "Blessing" is not limited to Christianity.

      And Perl has not been abandoned - not by me, and not by at least 2 other people.

      --
      Political correctness is really just herd psychology pushed by insecure people who desperately seek social conformity.
    6. Re:Perl! by John+Bokma · · Score: 1

      Oh, huh, bless has never bothered me much. And that's the only Christian propaganda I can think of.

    7. Re:Perl! by UPi · · Score: 2

      I shall replace you with a perl script!! A very simple one will do.. :)

    8. Re:Perl! by angel'o'sphere · · Score: 1

      Actually I remember a C++ persistence 'framework' where the 'read' method used an other function/method, called 'bless' to restore the vtable pointers.
      And yes, that name was inspired by Perl.
      Hm, not sure if I 'invented/reused' that name myself ... and the original name (in the C++ framework) was different.
      But a friend of mine, an Australian, found the name 'bless' for that function hilarious :)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:Perl! by garyebickford · · Score: 1

      Funny, back in the 1990s I purposely didn't learn Perl beyond the minimal amount I needed to maintain an early web app. To me it all looked like somebody sneezed on the page. But in the last 1/2 decade or so I've become pretty proficient at PCRE - Perl-Compatible Regular Expressions, the very essence of page-sneezing.

      I once idly wondered how hard it would be to build a parser/compiler for another language using PCRE. PCRE-Perl? PCRE-PHP? PCRE-Ruby? Of course, PCRE-C could be the first one, and the others just built running GCC through PCRE-C. I'm a sick puppy! :P

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    10. Re:Perl! by HeckRuler · · Score: 1

      I assumed you were referring to Nethack's blessed/cursed system.

  17. from Economics-land by cellocgw · · Score: 2

    "Past performance is no guarantee of future returns."

    Learn as many languages as you can/want and try to find employers who recognize that adaptibility is much more valuable than existing capability with a specific tool.

    Now where are all those $250k jobs requiring R ? :-)

    --
    https://app.box.com/WitthoftResume Code: https://github.com/cellocgw
  18. Should I learn Imperial or Metric for max $$$? by Anonymous Coward · · Score: 1

    I hear that most fields use metric, but some really high-paying ones like petroleum engineering use imperial units. Should I focus my studies on imperial units if I want to make more money?

    The truth is, until you have learned enough that the choice of units or choice of language is completely fucking irrelevant to the task at hand, then you aren't going to add much value to the process. Mastering one language qualifies you for the programming equivalent of the secretary pool.

    1. Re:Should I learn Imperial or Metric for max $$$? by rasmusbr · · Score: 1

      I hear that most fields use metric, but some really high-paying ones like petroleum engineering use imperial units. Should I focus my studies on imperial units if I want to make more money?

      Whether you use metric or Imperial measurements is really a minor side issue.

      The important thing is that you use a good steel ruler and compasses. None of that plastic crap.

    2. Re:Should I learn Imperial or Metric for max $$$? by garyebickford · · Score: 1

      ... and slide rules! And use Mayan or Aztec measurements. Although Register Standards would also be acceptable. (actual data starts at about 1:45).

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
  19. C/C++ at $160k/yr by CQDX · · Score: 4, Interesting

    But it's not the language, it's the domain knowledge I bring to the table. I was hired to write embedded software for scientific instruments. As a former research scientist and current software engineer I can understand the problem, the solutions, and write code to do what the device needs to do. C/C++ just happens to be the tool I use to build the device. Python, Java, and so on just wouldn't cut it.

    1. Re:C/C++ at $160k/yr by angel'o'sphere · · Score: 1

      So:
      device.turn(degrees(90)) .move(mm(30),NORTH) .measure(seconds(0.01))

      Which language is that? Phython? C++? C? Java?

      A language "does not cut it" ... how retarded.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re:C/C++ at $160k/yr by Jeremi · · Score: 2

      Which language is that? Phython? C++? C? Java? A language "does not cut it" ... how retarded.

      It's not retarded at all; it's a simple fact that each language comes with its own set of design decisions that make some tasks easier and some tasks more difficult. Thinking that all languages are equivalent would be a newbie mistake.

      For example, Python, while it is a great high-level language and easy to learn and use, will almost never produce software that runs at the speed of an equivalent compiled C or C++ program. Furthermore, its continuing reliance on a Global Interpreter Lock means that multithreaded Python programs will not utilize multiple cores efficiently for the forseeable future.

      Java, OTOH, avoids those problems but using Java means you'll need to include a Java runtime environment and JIT on any platform you deploy on; that makes it inappropriate for many embedded devices or otherwise constrained environments. Also the non-deterministic timing of the built-in garbage collector makes Java a poor fit for real-time programming.

      C/C++, finally, can run mostly anywhere, but their low-level nature makes them a bit harder to learn, and a great deal more conducive to shooting yourself in the foot with (if you don't use them correctly).

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    3. Re:C/C++ at $160k/yr by garyebickford · · Score: 1

      Your example reminds me of a powerful understanding I came to a while back. Every program we write defines an "application specific language" that is composed of the text, or the actions if a GUI, that the application supports. This linguistic approach to user interfaces can be a very useful viewpoint from which to define how a user interacts with our program. (where "user" may be a device, or software, or actual person, or whatever). We are constructing a language by which that user "talks" to our program.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    4. Re:C/C++ at $160k/yr by david_thornley · · Score: 1

      C and C++ are very different languages by now, despite having a large common core. C++ is not low-level unless you want it to be that.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  20. $100k is not adequate information by Thud457 · · Score: 4, Insightful

    $100k and sharing a rented hovel in silicon valley with seven other brogrammers ?
    Or are we talking $100k in a mansion on the golf course in Arkansas?

    --

    the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

    1. Re:$100k is not adequate information by Darinbob · · Score: 1

      I've tried that once, but I passed out from the smell.

  21. Not in the Austin job market by quietwalker · · Score: 3, Insightful

    I'm pretty savvy with all the listed languages except Objective-C (only maintenance on existing apps), and have used them all at one time or another in a job. My linked profile garners around 3-4 recruiter contacts a week, and in my own little silo, I can say that while there may be 6 figure salaries out there for the Python and RoR, they are few and far between. The salaries I'm seeing on the top end for those development jobs rarely crest 70k.

    On the other hand, there's bigger salaries for Java or C#. It's not too hard to find a 100k-110k senior Java or C# developer position.

    Anecdotal evidence is not scientific data, but their results just don't match my personal experience in 2 decades of doing this.

    However, I think I can see how they got the numbers.

    According to the article, the data was retrieved by searching job ads, as opposed to taking a survey of people actually working at those jobs, and then permuting and filtering it. Given that:
        - Development job availability, especially with new technologies, is heavily skewed towards the west coast, where the cost of living is higher. From Austin to San Jose, the cost of living increase is between 50 and 75 percent - the 100k job is at least a 150k.

    We can make a reasonable assumption that there will be more positions open, and that more of them will be higher paying relative to the entire US job market, likely breaking the 100k cap, as 100k is low relative to the cost of living.

        - Established development languages already have a majority of their positions filled, as opposed to emergent technologies which have more open positions

    This will naturally result in a higher number compared to a language with less open positions, if the bar (100k) is low relative to the cost of living.

        - Emerging technologies lack experts simply because they haven't been around long enough to develop as many

    So positions will be open longer, and more aggressively marketed by recruiters, meaning that they're more likely to double- or triple- count job postings that are unknowingly for the same job
                              &
    Employers using recruiters often prefer to using a limited number of recruiters who themselves maintain a pool of direct-contact individuals with experience in a given field, meaning that those jobs are less likely to be publicly posted, whereas the new technologies require public announcement and investigations.

    So in summary: I don't doubt the statics they used, but I think their methodology may be affected by a heavy bias, and therefore invalid.

  22. Laughable methodology by jbarone · · Score: 5, Insightful

    The salary data is taken from the subset of job ads that list compensation. I don't know the last time I saw a want ad in the software industry that said anything beyond "competitive compensation" or the like. That suggests that they are only looking at a very skewed subset of jobs, my guess would be much greater representation from government, academic, non-profit, and non-tech companies looking for developers.

    Getting into speculation here, but I would guess that the higher premium on things like python would be because non-tech firms hiring python devs probably need scripts for efficient data mining, analysis, and reporting, a skill requiring far more expertise than run-of-the-mill software development.

    C#, which I don't think anyone would argue is vastly more marketable than python, Ruby, or Objective-C in the highly lucrative tech sector, is likely so low because the sort of want ads they are looking at are mostly going to be positions that build web-based business management sites on the .NET stack, which is a very low-expertise, low-standards type of job.

    Beyond the stupid methodology of only looking at want ad compensation (a better - though still suspect - method would be to look at something like glassdoor for salaries and then correlate those to the skills asked for in want ads for the same position and company), they should really be including the full requirements list for this to be at all meaningful. If one ad asks for "python, plus 7 years of experience working with large scientific datasets, strong understanding of statistics, and experience with one or more data visualization libraries" and the second asks for "c#, knows what a website is", then saying the first one is better paying because of python is silly.

  23. Wrong question by johnlcallaway · · Score: 2

    Smart programmers pick up new languages very quickly. I'd rather hire someone smart who doesn't know Python, than someone mediocre and only knows Python.

    Someone may make $100K today in Python, but what about a few decades from now. I know COBOL, and still know people writing COBOL supporting legacy code. But the majority of the ones unwilling/unable to learn a new language are out of a job.

    I'd rather be learning new things and have several tools in my belt than just one and be limited.

    And easily replaced.

    --
    I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
  24. Use just one? by fahrbot-bot · · Score: 1

    Which Programming Language Pays the Best?

    Seriously, just one? I use several languages, on the same project:

    • Solaris/Linux: Ksh, Perl, (some) Python, Tcl/Tk, Java, C
    • Windows (XP->2012): Batch, PowerShell, VB Script, AutoIt, Perl, Tcl/Tk, Java, C, Assembly.

    I'm 51 and get paid over $125K (in southeastern Virginia) and generally work when and on what as I please. There are 3 senior and 1 junior people on my team and we develop/support a ~300k lines of code for our cross-platform application.

    --
    It must have been something you assimilated. . . .
  25. Assembler! by Anonymous Coward · · Score: 1

    Do you want to write kick ass firmware that even runs faster than code generated with C ? Learn to write assembler code. My first programming gig out of college I wrote firmware for a networked door controller. I started with a semaphore driven multitasker. One level of the multitasker functioned as a main loop just checking to see if semaphore flags are set. if a flag is set, run the subroutine and return to where I jumped from. There were also interrupt driven subroutines.. for instance a card reader, communications controller, alarm bus, all driving sub routines by interrupt. The processors were only running at 6mhz then but the code was actually quick. I even wrote a routine that compresses the card data in the database.
    When you read my assembler code, due to the labels I used for the subroutines, semaphore flag names, interrupts.. the code looked like a unique programming language, except for the assembler on the side. You could clearly read the code and understand what what going on even a year after the development.

    From Assembler I learned C. I wrote interfaces to my firmware in C. From C to C++. C++ to Java, from Java to Perk, From Perl to PHP. When I learned that Mars Rovers run Python that motivated me to learn Python. I built a small robot based on the BeagleBone.. originally I used node. Eventually I got the robot to run on Python.

    As far as pay goes. I found C scripting (you need to know how to script to glue Unix based applications together), C, and PHP to pay the most.
    There are far too many java programmers out there so most java developer postions don't pay over $80k. C is still king for salary. Especially if you
    are not afraid to design your own algorithms. I think as long as you know how to take input data, process it, store it in a database, generate reports from it, or take sensor input, control servo output you will earn decent money.

    Worpress will eventually be so easy to use a monkey can do it. Right now you can still earn $5k or more by creating a website for a business. Eventually that would erode. Writing the killer web application well there's still money in that. You can actually write your own ticket if you do that.
    I would never of thought that facebook would generate income. Who in there right mind would publish personal information about them for the world to see ? Governements all have facebook data mining tools. What do you think they use to train face recognition system. I saw the software in the wild so I do not have a facebook account. The only social media account I have is LinkedIn.

    Python isn't so bad.. I don't know how far a python application would scale because the python applications I wrote are for a robot controller running on a BeagleBone Black. I have written C applications that would spawn over 1000 threads on an IBM Power AIX system and can say applications written the correct way on IBM Power scale very well. I have also seen 32 bit Websphere java applications on similar hardware scale poorly, mostly due to the way the code was written... and partly due the java garbage collector busy using 80% CPU even with GC tuning set properly. Java needs more hardware with a smaller memory footprint to run fast. I think it's because java was written by a hardware vendor. note when I say scale I mean 2100 threads processes incoming loan requests from all over the country.

    Anyway enough ranting. If you are a hippie just write in the code that you enjoy. If you have a family and financial obligations I suggest hardcore C.

    1. Re:Assembler! by molarmass192 · · Score: 1

      Wish I had mod points. Learn the underlying concepts and best approaches. The language is just the tool. It's akin to someone asking "I want to build houses for a living, which brand of hammer will let me build houses?".

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    2. Re:Assembler! by Opportunist · · Score: 1

      Thank you for reaffirming my faith in humanity. It took me almost to the bottom of the thread to FINALLY come across someone who gets it.

      The language does not fucking matter! Imperative language is imperative language. Unless we're talking about some completely different concept that requires you to alter your thinking completely, the choice of language matters little. If anything, you may make a difference between interpreted and compiled languages due to the workflow behind them, but that's already leading me to my actual gripe: Your environment and your goal matters. Not your tool.

      The language mostly used around my team is Python. Not because it's a great language (it may be, but for all I care it doesn't matter), not because it's the flavour of the month language (again, don't know, don't care), not because most of my team are proficient with it (far from it, most who do have a programming background in the first place come from compiled languages of the C/C++ family), but because it's there, it's stable enough, it's easy, it gets the job done and it's part of most of the tools used. It's used for automatizing security tests.

      Now, and that's the critical part: The people around here don't earn their money for being such Python wizards, they earn it for being security gurus. Knowing Python is nice, but it's at best some icing on the cake. But I bet they would show up in this fucked up statistics as "Python programmers" and presto, "Python programmers make shitloads of money".

      No! People who have jobs that pay them well because they're good in it use Python because it's there, it's available and it's easy to pick up, and since they don't give a fuck which language to use, it's Python because it's there, it's easy to use and many tools support it or the environment is easy to set up.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  26. Causality? Who knows? by Just+Some+Guy · · Score: 3, Interesting

    I love Python because it maps very neatly onto how I model problems in my head. I'm not averse to using other languages, but Python is my comfort zone because Guido and I apparently think about algorithms in the same ways. As it turns out, I make a decent living with it.

    So, do I have a good job because I know Python, or is it because the thought patterns of the people who are drawn to Python are the same ones that companies want to pay for, regardless of language? If the former and you want a good job, then by all means learn Python. But if knowing Python is just a side effect of the properties that employers are actually looking for, then it's probably not going to help you all that much.

    --
    Dewey, what part of this looks like authorities should be involved?
  27. Re:Your baseline is wrong... by bigman2003 · · Score: 4, Interesting

    I hate this comment.

    I probably hate it because I make about $90k (plus one of the best benefits/retirement packages in the United States...you can suck your 401k, I gots me a pension!)

    But really, I hear this all the time. "Oh, you only make $90k? You must suck. Any mid-level programmer can make more than that."

    First, it really isn't just about the take-home. The benefits are really important.

    Second, there are sooo many other factors, it is incredible. I live about 70 miles from Silicon Valley. My salary *is* something to scoff at by the denizens of the Valley, but for quality of life? I have most of them beat.

    I live in a beautiful house that I can easily afford. I average 40 hours per week- with the variance being about 3 hours each way. A 'crazy' time means that I come in at 7:30, and maybe stay as late as 5:30 if I have some process running.

    I get to lift my head out of the screen and go do REAL things during my work. I am consulted on many different business processes- my opinion is valued well beyond the technical side of my job.

    Someone else mentioned 7 brogrammers huddled together in some Santa Clara shit-shack, all making $150,000. That's a miserable existence that I want no part of- no matter how great they are at programming, or how many Google logoed items they own.

    It isn't all about the dollars- don't let some HR firm tell you it is! Don't base your career/life trajectory on your paystubs.

    **As an aside, I have visited the Google campus a few time for different projects- meeting with 'fairly high level' employees. We typically compare quality of life notes...I haven't talked to any Google employees over the age of 35 who thought they had made a good life decision to be there. Except for the former CEO's of companies Google has purchased...those guys are happy as shit.

    --
    No reason to lie.
  28. Topping the list of most popular US Fast Foods is: by jddj · · Score: 3, Funny

    Ham/Hamburger

  29. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  30. Dice by aardvarkjoe · · Score: 1

    Yeah. I'm totally going to change my career path based on a Dice article. Unless my horoscope tells me otherwise, of course.

    --

    How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
  31. Dice's recent list of the fastest-growing tech... by who_stole_my_kidneys · · Score: 1

    Well if Dice.com said it, then it must be true!

  32. Consulting FTW by Kagato · · Score: 1

    Realistically speaking if you want to make the Benjamins then you need to be a Senior level developer in a widely adopted language and 1099 corp to corp bill through a smaller consulting firm. You will likely make $100+/hr and be able to do it while living in relatively inexpensive fly over country. No need to bunk of with half a dozen Brogrammers in the Valley.

    Just to give you a bit of a data point, at my last consulting gig, in the midwest, WiPro told them their H1B contract Business Analysts were going to be over $100/hr.

  33. C language by michaelmalak · · Score: 1

    Hey, in the 1980's, C was supposed to pay the best. What happened?

    A more interesting metric would be how many languages and frameworks one must learn per year in order to maintain compensation in inflation-adjusted dollars, and then chart that over time. I suspect a) it would come out as an exponential and b) that this indicates our acceleration toward the singularity.

    1. Re:C language by michaelmalak · · Score: 1

      According to shadowstats.com, actual (i.e. not reported) inflation over the past 25 years has averaged 8.4% annually. Now, take your current compensation and multiply it by 2.24. Do you expect to be earning that much in 10 years? OK, now take your current compensation and multiple it by 7.51. Do you expect to be earning that much in 25 years? Keep in mind there will be long droughts during recessions where your compensation will stagnate or even decline.

    2. Re:C language by geekoid · · Score: 1

      Still does.
      There isn't as much work, but what needs to be done is critical.
      So there aren't a lot of candidate.
      A Sr. C programmer should be making 200K; which is down from 400K in '99

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    3. Re:C language by geekoid · · Score: 1

      Shadowstats is crap.

      http://azizonomics.com/2013/06...

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    4. Re:C language by lgw · · Score: 1

      Fuck me, I agree with geekoid. Shadowstats is worse than crap, it's marketing. Yes, true inflation is worse than reported inflation (and always will be as long as major govt programs are indexed to government-reported inflation), but the difference is small.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    5. Re:C language by angel'o'sphere · · Score: 1

      A senior C programmer does not make 200k or 400k because he knows C but because he knows the domain (like banking, finances, insurances, flight, energy, etc.)

      C is perhaps the second simplest language, after assembly ... how hard can that be?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    6. Re:C language by HeckRuler · · Score: 1

      A variable is a hunk of memory that stores values that vary depending on what you put in there.
      A const variable is variable that doesn't vary.
      A volatile variable is a variable that might vary behind your back when you're not looking.

      So what's is this?
      const volatile myVariable;

      If it takes you more than a minute you might not be a Sr. C programmer.

      It's an input pin, btw. Because const is really just a euphemism for "read-only". And volatile means something else can write to it. A big hurdle that keeps kids away from C is just the language barrier and the archaic terminology. Culture has moved on and has solidified the english language around some of these sort of things, but C is stuck back in the 70's. And if the term "pin" throws you for a loop, then you're probably out of your water and need to head back towards the island of abstraction which is a safe distance from the real world.

    7. Re:C language by david_thornley · · Score: 1

      Except that I don't observe anywhere near that. 25 years ago was 1989, and 25 years at 8.4% is a factor of 7.5. My wife and I make a little over double what we did back then, and we live better and save more.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  34. Java by bigsexyjoe · · Score: 1

    Python might have the higher average, but Java is more popular, and I would guess more people are making big money in Java. I think Java has a very high ceiling. Many of the people making big money in Python probably have significant non-software engineer skills.

  35. Embedded Systems by prefec2 · · Score: 1

    In Germany embedded systems make up 22 billion eur while information systems are only 8 billion. In embedded sys. you need c and that ISO language bundle.

    In both cases entry is 30 or 40 k eur. And real good figures normally involve an architectural or management role where only little programming is left.

    1. Re:Embedded Systems by Tough+Love · · Score: 1

      Most of the embedded projects I looked at recently seem to be in C++.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
  36. Job Satisfaction by slapout · · Score: 1

    I'd rather work with a language that paid a little less than one that I found hard to use.

    --
    Coder's Stone: The programming language quick ref for iPad
  37. Wrong - COBOL by WillAffleckUW · · Score: 1

    Everyone knows that.

    Note, I did take a COBOL class once, but I don't code in it, even if I have done code audits of it.

    --
    -- Tigger warning: This post may contain tiggers! --
  38. Re:Ada Engineer... but why? by WillAffleckUW · · Score: 2

    A lot of that is the Security Clearance and nature of the work you do with Ada. Not the language per se, but what you're doing code for.

    You can make a mint on certain embedded assembler coding for highly classified projects.

    --
    -- Tigger warning: This post may contain tiggers! --
  39. Keep Learning by EccentricAnomaly · · Score: 2

    Once you learn a certain number of programing languages it becomes really easy to pick up new ones in the same style. Python, C, C++, Perl, Java, Ruby, etc. are all very similar and there's a point where you'll know enough that you'll just have to google the 'if' and loop syntax and you're good to go. After that you can learn different programming paradigms like functional programming or how assemblers work. And once you're there, you can pretty much pick up any programming language or API you need to use in a couple of days. It doesn't really matter where you start so long as you are committed to lifelong learning that's how you make the big bucks.

    --
    There are 10 types of people in this world, those who can count in binary and those who can't.
    1. Re:Keep Learning by Jeremi · · Score: 1

      Python, C, C++, Perl, Java, Ruby, etc. are all very similar and there's a point where you'll know enough that you'll just have to google the 'if' and loop syntax and you're good to go.

      I'm reminded of this quote:

      "The determined Real Programmer can write FORTRAN programs in any language." -- Ed Post

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    2. Re:Keep Learning by bouldin · · Score: 1

      I agree, but good luck convincing HR departments and hiring managers. They all seem to think if you haven't been using that exact language for the past 5 years, you won't be able to do the job.

  40. Java/Javascript - why the slash. slashdot? by Anonymous Coward · · Score: 1

    Java and javascript are totally unrelated. So why join them with a slash as though they are somehow one and the same?

  41. Definitely COBOL by scsirob · · Score: 1

    A recent survey in the Dutch IT marketplace on Tweakers.net confirmed that COBOL is the highest paying programming language. Not because it is hot, but because the average age of programmers with COBOL skills is so much higher. There are no COBOL programmers on a starter salary, so obviously the average is higher

    --
    To Terminate, or not to Terminate, that's the question - SCSIROB
  42. High demand for few positions by barbariccow · · Score: 2

    Having many years in python, I am constantly being contacted from people across the country for python jobs. In all python jobs that I've worked, almost every other developer has very low skill, and little to no experience as well, so it's a very easy market to succeed in. When I am actively looking for work though, Java and PHP jobs way outnumber the python jobs, and Java always has the highest salary associated (this is Baltimore/DC area)

    1. Re:High demand for few positions by Shados · · Score: 1

      It will depend a lot on where you are. In the "hip" areas and start-up havens, SF, Seattles, Cambridge, NYC, the trendy (or college friendly) languages like Ruby, Python, and even javascript/node, are omnipresent. Stuff like Scala and whatsnot too.

      That jacks up demand and salaries. I looked at statistics recently showing Ruby/Rails as the language that pays highest in those specific areas. My personal guess is that a lot of them pay higher to compensate for lack of benefits (vacations and 401k matching as well as bonus structures, mainly), which skews numbers that don't look at the total compensation package.

      I'm actually working in one of those companies right now as a javascript dev, and ended up negotiating my salary to totally out of wack level because I was losing a lot in term of RSU, bonuses and 401k benefits compared to my previous role. So on paper, I'm making 30k more than i used to. In practice, I'm actually making less.

  43. Nag, Nag, Nag. by luis_a_espinal · · Score: 4, Insightful

    I'll bet it was easier than hunting down the invisible bugs from mixed tabs/spaces or introduced by your editor mangling indentation while moving bits of code around.

    Which is easily solvable by setting spaces-for-tabs in your editor (and which I do when working in Python, ... or Java... or C/C++... or pretty much everything because that really solves a whole bunch of issues.)

    And violations of spacing/indentation rules are trivially caught by with automated testing/CI, which I do with Jython... or Java... or even C/C++ .... or pretty much everything whenever possible because it is the sane thing to do.

    I've only been doing Python for 2 years, including C-to-Python bindings using Python 2.7x, Java-to-Jython/WLST integration (with Jython/WLST being based on Python 2.2), and a tiny bit of Windows automation with IronPython.

    Most of my background is Java for enterprise development and C/C++ for embedded/system-level development.

    As such, I initially I stumbled across some of the nuisances with Python, the spaces, the lack of a stack trace on exceptions, or the fact that exception hierarchies are slightly, but oh-so-different between Python 2.2 and 2.7. But past those stumbles, I simply use tool configs, procedures and coding standards to deal with them.

    And that is the same when I do Java or C++. Each has their own gotchas and effective Java/C++ developers simply do the same - use tool configs, procedures and coding standards to deal with them.

    Why would anyone mix tabs with spaces. Use one or the other, regardless of whether you do Python or not. If I see a code base in any language that has that shit mixed up, I know I'm bound to find some other stupid shit in the code.

    Why? Because mixing tabs with spaces all over the place, like spelling errors, lack of meaningful comments and/or deeply nested code (arrow anti-patterns), these are all proxies for bad coding practices.

    I originally found Python indentation rules to be annoying. After all, how hard is it to auto-indent from an IDE or a command line (or force an auto-indent of code before checking in, or en mass before merging back to the trunk)?

    But you know what, people are idiots, and I've learned IN GENERAL not to expect them to write clean code (nor tell clean code from apple pie.)

    It is still possible to write horrible Python code, but it is a lot harder to do so in it than in Java or C++ or C#. I would still have preferred to see Python having start and end markers for blocks (a-la begin/end or curly braces) on top of indentation rules.

    But it is still a good compromise. Hard to see where code blocks end? Increase indentation. Better yet, refactor that shit out. If I see I have a harder time telling the end of a block, chances are that block is already large (time to refactor out), or that there is a lot of code around it (time to split it into better levels of abstraction).

    You know, the kind of stuff we are supposed to do in any language anyways.

    Besides, accidental violations that render Python code invalid, those things are trivially solvable by doing shit we are supposed to be doing anyway (namely, avoiding mixing tabs and spaces, automated testing, keeping code small and at least dry-run your shit before committing it to source control.)

    I'm not saying programming in Python is Nirvana (for some things, it truly sucks.) But some of the things people complain about, they are just asinine complains for shit that broke because, on a fundamental level, they are not following good industrial practices IMO.

    1. Re:Nag, Nag, Nag. by devent · · Score: 1

      Im my opinion. any language that allows for "accidental violations that render [the] code invalid" is just garbage. I mean, really, somebody or something put or remove a whitespace randomly (a whitespace so called because it is invisible) will render your whole program invalid, and you defend such a language?

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    2. Re:Nag, Nag, Nag. by garyebickford · · Score: 1

      Yes. For one, the true value of having two different block begin and end tokens is similar to the value of double entry bookkeeping. In Python there is only one "token" denoting a change of block (in this case the token is just the change in number of indent spaces). As a result, ambiguities and outright errors can be impossible for the parser to recognize.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    3. Re:Nag, Nag, Nag. by luis_a_espinal · · Score: 1

      Im my opinion. any language that allows for "accidental violations that render [the] code invalid" is just garbage.

      Like... missing a semi colon.

      I mean, really, somebody or something put or remove a whitespace randomly (a whitespace so called because it is invisible)

      Depends on the IDE (I typically configure Eclipse and Notepad++ to show whitespace). Hell, even VIM can let you do that.

      Even without those settings, whitespace is not invisible either. And the rules are not that spacing must be neat and tidy, but simply that they are compatible within and among blocks.

      True that people can accidentally mess it up (hell, I've done it myself)... but shit man, unit tests? CI? Testing code snippets in a REPL when you have one? There is not a goddamned excuse NOT to do any of that regardless of the language that you are using.

      The only way for this rules to cause havoc is for people that are doing fire-and-forget programming. That is all.

      will render your whole program invalid, and you defend such a language?

      I'm not defending, I'm explaining and quantifying the problem, and I'm proposing, based on the evidence I've seen in real life, that continuous pain with indentation rules in Python have to do with people not doing shit they are supposed to do (continuous testing, coding small, testing small, refactoring, etc.) Shit that they are supposed to do in any language.

      So, indentation rules are simply compounding problems that are more fundamental and closer to that area between the keyboard and the chair. I'm not defending, I'm explaining.

    4. Re:Nag, Nag, Nag. by luis_a_espinal · · Score: 1

      Yes. For one, the true value of having two different block begin and end tokens is similar to the value of double entry bookkeeping. In Python there is only one "token" denoting a change of block (in this case the token is just the change in number of indent spaces). As a result, ambiguities and outright errors can be impossible for the parser to recognize.

      You are absolutely correct. That, a lack of begin/ending tokens, a lack of a ternary operator, and (pre Python 3.x), limited lambda expression support are my biggest gripes with the language.

    5. Re:Nag, Nag, Nag. by devent · · Score: 1

      You know what is the best tool for testing? The compiler. The compiler can test your code even before you run anything. But people throw away the best tool for testing for "unit tests? CI? Testing code snippets in a REPL" just so it looks pretty.

      Like... missing a semi colon.

      You mean JavaScript? Agree fully, it's idiotic, and there are many hard to spot errors in JS because of the "convenience".

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  44. Re:LOL! Are you smoking crank cocaine, Soulskill? by Tablizer · · Score: 1

    Corporations and programming languages are people too. --Rom Mittney

  45. In Soviet Russia, Language chooses YOU! by Thor+Ablestar · · Score: 1

    I think that the problem is not the choice of language but the presence of something that can be expressed with it. Persian language, for instance, is known to be the language of classical poetry, but if you think that you should study Persian to become a classical poet, you are clearly wrong.

    I am not a programmer, I am a scientist. I use some microprocessor and I program it with old good assembly language. I know what to express with this assembly. There are complex amplitudes, Fourier transforms, rotation of coordinate axes, PID regulators and other craziness. As a result, a diy 8-bit PIC18 device that costs about US$40 in parts gave the same 16 decimal digits of precision as a US$40'000 box made by famous German company. Really. I live in Russia and nobody will be able to pay me more than US$1000, but at least nobody will ever think about firing me.

    No knowledge of programming language will ever give the same results. Here are some professional programmers who write the professional programs which sometimes work after multiple kicks but they look so professional, with buttons, graphs, widgets and all that stuff.

    And the necessary Soviet joke:
    Q: Why is the Soviet food program named "complex"?
    A: Complex things consist of real and imaginary parts.

  46. Re:Ada Engineer... but why? by Hognoxious · · Score: 2

    You can make a mint on certain embedded assembler coding for highly classified projects.

    Should you be telling people that?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  47. Six figures isn't what it used to be by Tough+Love · · Score: 1

    Word.

    --
    When all you have is a hammer, every problem starts to look like a thumb.
  48. JavaJavaScript by hogger · · Score: 2

    Never take programming or programming-career advice from someone who doesn't know that Java and JavaScript are completely different languages.

  49. Re:Your baseline is wrong... by KayakFun · · Score: 1
    I went from a 90k EURO (~120k $) with 1 hour traffic jams both in the morning and afternoon, to a much lower paying job with only 14 minutes of empty motorway between my house and the job. I set my alarm clock 1 hour later, and I can do my shopping after work, cook/eat and still have a whole evening to myself.

    Once you earn more than your living expenses, more money is not attractive, more time (and an interesting job) is the real benefit.

    BTW, I was a Perl programmer/project leader, and am now a Drupal developer, which makes me a PHP programmer. Amazing similarities between Perl and PHP ;-)

  50. Does language matter? by LostMyBeaver · · Score: 1

    I programmed professionally for 20+ years and have written code installed on over a billion devices and used every day. I found that software engineers are either excellent programmers in every language or half assed if every language.

    The simple fact is, language is irrelevant. Computer science is computer science in any language

  51. Cost of living by cwsumner · · Score: 1

    Don't forget to take into account the cost of living, where they want you to move to. I can live better here on 60,000 than you can live in New York City on 150,000.

    Also, the best paying Computer Language is the one they use at the company you want to work for. Study how to learn computer systems and languages quickly. And learn more than one. 8-)

  52. The language is only a tool... by bakana · · Score: 1

    You will be the most important factor in getting that 6 figure salary, not the language you use. All decent programmers should be able to break down complex problems into smaller pieces and use whatever tools are at hand to solve the problem. It doesn't matter the tools you choose to use so long as you can adapt to the situations, learn how to use new tools, and get the job done well. I find the many people allow recruiters and HR departments to tell them what they are worth; based on prior budget meetings, market value, and what they feel the job is worth. A job interview is a sales presentation; you are selling yourself to them and they are selling you on their company. Plain and simple. Once they are sold on you, and you are sold on them, then its about negotiating a price that benefits both parties. Mind you that interviewing at these companies can be quite laborious task; some interviews can be hours in front of a white board writing code in response to questions, then answering a bunch of S.T.A.R. questions, multiple rounds of interviews, etc. By the time it is done and over with, as soon as they toss that old "market value" bit, i toss that out the window. The market isn't in this room writing code for you on the white board, answering silly college questions about algorithm run times, and self-evicting maps. Then start negotiating, if you have the experience, you showed them you have the knowledge, you can negotiate much higher salaries. The language is just a tool. You are what they are paying for, you have to be worth the money. For the record, I do make almost twice the salary you were asking about as a lead java developer, i know and have used many other languages, and the post someone made about quality of life should probably trump you want for a 6 figure salary. What good is it to make the salary you want, only to have to work 60 hour weeks and then your spouse leaves you and you paying them half your check plus child support anyways?

  53. Learn a lot of languages by s31523 · · Score: 1

    I do not think salary directly maps to the programming language a particular project at a particular company is using. Of course you should be aware of what languages the industry is using in your niche, and outside of your niche. You should hone your skills and learn a lot of different languages. All languages have unique capablities specific to their design and learning them will help you know what tool is best for a given job. A high-paying salary should come with expectations to do the job using the tools provided and expectations to have expertise to drive decisions on tools.

  54. What about Forth? by Mister+Null · · Score: 1

    Almost all the Forth programmers I know own their own companies. Heck that's got to count for something.