Slashdot Mirror


Python Is On the Rise, While PHP Falls (dice.com)

Nerval's Lobster writes: While this month's lists of the top programming languages uniformly put Java in the top spot, that's not the only detail of interest to developers. Which language has gained the most users over the past five years? And which are tottering on the edge of obsolescence? According to PYPL, which pulls its raw data for analysis from Google Trends, Python has grown the most over the past five years—up 5 percent since roughly 2010. Over the same period, PHP also declined by 5 percent. Since PYPL looks at how often language tutorials are searched on Google, its data is a good indicator of how many developers are (or aren't) learning a language, presumably because they see it as valuable to their careers. Just because PYPL shows PHP losing market-share over the long term doesn't mean that language is in danger of imminent collapse; over the past year or so, the PHP community has concentrated on making the language more pleasant to use, whether by improving features such as package management, or boosting overall performance. Plus, PHP is still used on hundreds of millions of websites, according to data from Netcraft. Indeed, if there's any language on these analysts' lists that risks doom, it's Objective-C, the primary language used for programming iOS and Mac OS X apps, and its growing obsolescence is by design.

38 of 232 comments (clear)

  1. Go away Dice by Anonymous Coward · · Score: 4, Informative

    We won't want this Dice shit here.

    Is there really no one at all willing to buy Slashdot?

  2. PYPL shows C language share @ only 7.5% by JoeyRox · · Score: 2

    Which seems highly questionable. Seems to me the methodology of using google search metrics for language popularity works to gauge popularity of a language with enthusiasts but not of actual commercial projects.

    1. Re:PYPL shows C language share @ only 7.5% by iggymanz · · Score: 5, Insightful

      this is Dice trying to churn their candidate pot, nothing more.

      Slashdot really circling the drain quickly now

    2. Re:PYPL shows C language share @ only 7.5% by Tablizer · · Score: 2

      Indeed. Lisp variants often rank high in Google searches, but are generally skipped for production applications.

      "Hobby" languages can be fun to write in and talk about because you can play with powerful abstractions, but such is not always readable by average developers in the field, limiting their industry selection.
         

    3. Re:PYPL shows C language share @ only 7.5% by Austerity+Empowers · · Score: 3, Insightful

      Even if it is accurate, it is irrelevant. It in theory would just show what has the most volume, but for the purposes of someone using Dice unhelpful. Why learn C if you're looking for a web job? Why learn javascript if you are doing device drivers?

    4. Re:PYPL shows C language share @ only 7.5% by jeffb+(2.718) · · Score: 2

      Because Google is so terribly helpful when you're searching for the elements of ($l=join("",))=~s/.*\n/index($`,$&)>=$[||print$&/ge;.

      I'm sure APL makes an even poorer showing in Google search statistics.

    5. Re:PYPL shows C language share @ only 7.5% by Anonymous Coward · · Score: 2, Interesting

      If you think Dice has any tangible input into Slashdot you're sadly mistaken. I'm an employee of another subsidiary of Dice and there's pretty much zero crosstalk. We're all pretty much separate companies with no idea what anyone else is doing. Dice is headless. Dice is an ok place to work but Dice is not just about the Dice website nor is it that desperate to draw in people.

    6. Re:PYPL shows C language share @ only 7.5% by Zontar+The+Mindless · · Score: 2

      You forgot to ask whether he'd like fries with that.

      --
      Il n'y a pas de Planet B.
    7. Re:PYPL shows C language share @ only 7.5% by Anonymous Coward · · Score: 2, Interesting

      When I was a Windows C then C++ then C# developer, I used Google all the time to solve platform issues and find API's that worked with each other. Now I am back to embedded C, and I never ever look for anything on Google. It's C. I look in K&R's ANSI C book when I have questions. All the API's and libraries are use are custom in house. All my docs are in house, it's an embedded C platform. There is a realtime OS but we don't hardly use it for much more than scheduling, all the code is writing to registers, etc. So that's why the search means nothing. I work with legions of C programmers, and we do not use Google to get it done. (thank god)

    8. Re:PYPL shows C language share @ only 7.5% by mwvdlee · · Score: 2

      They used the term "tutorial", which will by definition give higher scores to languages that were invented while the internet existed.
      Many active C developers will have learned their skill from tutorials in books.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    9. Re: PYPL shows C language share @ only 7.5% by arielCo · · Score: 2

      I use Perl everyday, and when I was learning I searched for what I recognized in the snippet. So 'perl join', 'perl special variables' and 'perl substitute operator' would've been my queries, because the first things you learn in Perl are to identify basic syntax and to match/substitute text.

      Perl code was never meant to be self-explanatory, not any more than regular expressions. You learn a bit of Perl *before* reading Perl code.

      --
      This post contains no rudeness or derision of any kind. All arguments are friendly. Terms and exclusions may apply.
  3. False metric by techno-vampire · · Score: 5, Insightful

    Counting the number of times tutorials are accessed tells you how many people are learning (or considering learning) a language, not how many are using it now. All this can do is tell you if people expect to need it in the future, because for the most part, if you're currently programming in a particular language, you shouldn't need to be going over tutorials.

    --
    Good, inexpensive web hosting
    1. Re:False metric by h33t+l4x0r · · Score: 5, Funny

      Right, so in other words we're comparing the number of people who *don't* know Python to the number of people who *don't* know PHP.

      I already know PHP, so if I search for a Python tutorial that's somehow a win for Python?

    2. Re:False metric by CQDX · · Score: 2

      More to the point above about C at on 7.5%, most software engineers already know C and those that don't aren't going to search the web for a tutorial. There are plenty of well written books on the language that are far beyond anything you would find in an online tutorial. I would assume that also applies for other older language like C++ and Perl.

    3. Re: False metric by Anonymous Coward · · Score: 5, Insightful

      I have been programming for 20+ years. I *still* look things up all the time. Why? Because I have not memorized the documentation on thousands of API calls or that one bit o language one of my fellow co-workers found and I now have to decipher again.

      I learned long ago. Even though I think I may know a function it is best to look up the docs and at least re-read them. For example take the well used C standard printf. I can think of the top of my head at least 5 different quirks with that little bad boy depending on which platform you are on. I program in no less than 3 different ones. So I look it up all the time.

      Then as you jump around thru different languages you need to remind yourself on the syntax for *this* one. Is it AND or and or And or && or & in this language. Some langs let you do them all some only one or a subset and they have different meanings.

      So even if you are fairly proficient sometimes the languages get muddled together. Take 2 seconds look it up and be done with it.

      Assumptions are the cause of more fuckups than I can count. Look it up. Once you have read it a few hundred times I may allow you to assume a few things.

    4. Re: False metric by darkain · · Score: 2

      #1 reason to look things up: are the function arguments in (needle, haystack) or (haystack, needle) order!

    5. Re:False metric by ShanghaiBill · · Score: 2

      All this can do is tell you if people expect to need it in the future

      It doesn't even tell you that. I use Python, but I have never looked at a Python tutorial. The language is simple and the syntax is obvious. But when I was learning Objective-C, I had to go thru 3 tutorials just to understand memory management.

  4. Swift by Noah+Haders · · Score: 3, Interesting

    What about Swift? Considering it's only 2 years old, surely it's grown by the most, percentage-wise. I suspect a company called PYPL has an interest in promoting Python...

  5. Har har har? by Anonymous Coward · · Score: 4, Insightful

    Python? Seriously? The language where I can't cut and paste anything without it seriously being broken because... whitespace matters?!

    Python is as dumbass does.

    1. Re:Har har har? by Shompol · · Score: 5, Funny

      Aliluâ! Panacea against copy-paste programmers is finally here!

  6. Wait, searches for language tutorials? by Ecuador · · Score: 3, Interesting

    Isn't it kind of a strange metric? It measures people who don't really know the language but want to learn it. But did they learn it in the end? Did they end up using it? Was it actual programmers trying to get into a new language / refreshing one for a new project, or was it complete beginners who heard "python is cool" or something like that and search for a tutorial thinking they will be great programmers?
    And not all languages have an equal basis in this metric. For example who would search google for a perl tutorial? I mean it doesn't even support regex for christ sake! Also it is well known that Perl either comes as an Epiphany, or you are taught by Monks, you don't read a tutorial...

    --
    Violence is the last refuge of the incompetent. Polar Scope Align for iOS
  7. Need more mature languages by iamacat · · Score: 3, Interesting

    Python provides no true concurrency due to global interpreter lock. Java is not suitable for realtime due to unpredictable GC, while C/C++ is not suitable for anything which should never crash or return random results due to memory corruption. None of mainstream languages make automatic use of multiple cores and GPU - explicit provisions must be made by programmer to parallelize part of the program, often with error prone semantics and a separate language like OpenCL.

    Yes, those are hard problems, but it's also 2015 and we can come up with powerful compilers and JIT virtual machines. Going back to less concurrency than plain old shell scripts where '&' starts a true separate process is not an answer.

    1. Re:Need more mature languages by Wrath0fb0b · · Score: 2

      Python provides no true concurrency due to global interpreter lock. Java is not suitable for realtime due to unpredictable GC, while C/C++ is not suitable for anything which should never crash or return random results due to memory corruption.

      Python has multiprocessing for 'true concurrency' if you need it
      Java is not actually used for anything real-time
      C/C++ can be written safely if you are willing to be careful and unit-test (also managed memory with C++11/14 constructs helps the drudgery) with tools like ASAN and Valgrind.

      Yes, those are hard problems, but it's also 2015 and we can come up with powerful compilers and JIT virtual machines. Going back to less concurrency than plain old shell scripts where '&' starts a true separate process is not an answer.

      Good thing no one proposed that.

    2. Re:Need more mature languages by El_Muerte_TDS · · Score: 2

      Interesting read by Andrei Alexandrescu, D Language Architect, on: D, Go, Rust, and C, C++:
      https://www.quora.com/Which-la...

    3. Re:Need more mature languages by BitZtream · · Score: 2, Interesting

      Lets see ...

      Python provides no true concurrency due to global interpreter lock.

      The interpreter you use has that flaw perhaps. Fortunately there are multiple interpreters, ask CCP games about that lock.

      Java is not suitable for realtime due to unpredictable GC

      Yet I work for a company and sit right next to the team that does real time Java without hitting the GC at all.

      C/C++ is not suitable for anything which should never crash or return random results due to memory corruption

      Yet it is what any industry uses that requires 100% reliability like aviation and medical use.

      None of mainstream languages make automatic use of multiple cores and GPU - explicit provisions must be made by programmer to parallelize part of the program

      This is just simply wrong for so many reasons. Most languages have helpers and utilities to explicitly thread but its really the runtime or compilers that you want changed to automatically do all the work for you. Which can be done and has been done in a various demonstrable examples. Turns out that a lot of times, its not good to implicitly do things, which you'd know if you understood the comment you made about Java not being real time, but I suspect you're just respewing things you've heard someone else say but you actually have zero understanding of.

      You want a language that magically reads your mind and always does the right thing. The problem is, if you read your post, you'll see that YOU DON'T KNOW WHAT YOU WANT TO DO and thats actually the problem, not the languages or the computer.

      Everything you've posted demonstrates a flaw in you and your understanding of the language or abilities. Not the tool. But hey, who am I to judge, you go right on ahead blaming the tool for your lack of ability, I'm sure you'll get promoted.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  8. Understand the Allure by Thunderf00t · · Score: 4, Interesting

    I know it's a matter of taste, but I understand why Python, aside from simply being popular, is used so often. Having spent time using several languages, I can say that brevity bordering on the obscure (often mistaken for elegance) is not something to encourage. Don't get me wrong, it's great if you can reduce the steps used to implement an algorithm (especially if you get big-O benefits as well), but simply reducing line counts isn't anything to brag about. I mean, who cares if you implemented something in a single line of Perl that took 5 lines of Python for me? Eighteen months later, when the code gets dug up for whatever reason, I know which will be far easier to follow and correct if needed.

    That, to me, is the real strength of Python: it enforces readability without requiring too many extra characters (Tcl being representative of the other extreme). If using an interpreted language isn't an issue, it almost always seems like the way to go for my tastes.

    --
    We will never be the change to the weather and the sea
  9. Re:Spare Us by invictusvoyd · · Score: 5, Insightful

    A real programmer does not care about languages. A real programmer does not attempt to write a kernel in perl. A real programmer does not attempt to write a glue script in C . A real programmer cares more about the optimum solution to the problem than which tools to use .

  10. Re:Spare Us by Anonymous Coward · · Score: 3, Interesting

    agree completely, as long as the solution involves Perl :-)

    That is one underrated language...

  11. Re:Spare Us by Anonymous Coward · · Score: 2, Interesting

    Haha. "A real programmer does not care about languages." "A real programmer would not use language x for task y." Perhaps you should think a bit before spouting contradictory inane platitudes.

  12. Re:Spare Us by TWX · · Score: 4, Interesting

    His statement is true if you consider it to mean that a real programmer does not care about any one language to the exclusion of others.

    I was at a Cisco event recently that had a discussion on Application Centric Infrastructure, basically using a master controller to do all kinds of fancy on-demand things to switchports at the access layer depending on factors like authentication of the device or user account. The presenter basically said there are two ways to go about it, the first is to use the somewhat crappy GUI/Web interface, and the second is to write stuff in Python that the controller makes use of. As someone that uses a lot of Bash right now the Python approach is definitely more my style than relying on a web page.

    --
    Do not look into laser with remaining eye.
  13. Re:Spare Us by mrsquid0 · · Score: 2

    > No real programmer uses these stupid script kiddie languages.

    No real programmer makes silly statements like that.

    --
    Just because you are paranoid does not mean that no-one is out to get you.
  14. But... but... by DaTroof · · Score: 4, Informative

    Didn't Slashdot just run a post about how WordPress (written in PHP!) powers 25% of the web?

    Why, yes. Yes, they did.

    Please stop the hyperbolic clickbait.

  15. Re:Spare Us by Zontar+The+Mindless · · Score: 2

    Busted. We're writers, not developers, so we wrote our XML processing toolchain with XSLT, Bash, Perl, Ruby, Python, and PHP. We only re-publish about 30,000 pages of documentation in about 20 different end-user formats every single day, so it's not like it's a *real* application or anything...

    *eyeroll*

    --
    Il n'y a pas de Planet B.
  16. ... and here on slashdot? by damn_registrars · · Score: 2

    Perl. Perl all the way through, and nothing but Perl. Apparently after they canned the guy who took credit for writing it, they didn't feel it was worth while to put any additional money into the code, ever again (and it seems that attitude has continued through subsequent acquisitions).

    --
    Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
  17. Duck typing and GIL by dremon · · Score: 2

    Because of the duck typing maintaining, extending and refactoring any non-trivial Python project is a fubar. Make a typo in the variable name and catch this bug 2 months later in the production deployment. Thank you very much, but no unit tests from the whole world will cover this.

    Because of the GIL it doesn't scale across the modern hardware so it forces programmer into process-level parallelism and 3rd-party http server with wsgi crap which gives deployment and maintenance headaches.

    Because of the interpreting nature it is too slow to be considered as good choice for any CPU-intensive tasks (not only math but anything outside of I/O and networking).

    I must admit though that it is great for scripting. So there should it stay forever and personally I'd run away from any job description which includes Python as a primary language.

    1. Re:Duck typing and GIL by gnupun · · Score: 2

      All valid points. Python's backend is not very powerful, unlike its elegant front-end (the language and APIs).

      Make a typo in the variable name and catch this bug 2 months later in the production deployment. Thank you very much, but no unit tests from the whole world will cover this.

      The typo problem is present in most scripting languages. Isn't Lua, which is similar to Python, used in many production games?

  18. Re:Spare Us by gweihir · · Score: 2

    Actually, they do. You do not qualify as "real programmer" though, big ego and small skills is not the qualification needed.

    For example, Python is very nice as glue and configuration language for c-modules that do the heavy lifting. I have been using that successfully in some pretty advanced projects.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  19. Re:Spare Us by Anonymous Coward · · Score: 3, Informative

    What kind of bullshit you are writing.

    You can write maintainable and well formated Perl programs if you want to. It all depends on the programmer. So crappy formatted programms are only a matter of a pebkac problem and not the problem of the programming language.

    If you had some cluse then you would know that you can write object oriented code with Perl. You either use Perl's internal object orientation model and class out all modules in sub packages with a nice packaging convention: e.g. package My::Cool::Package;

    You can also go more advanced and use Moose if you wish.

    I also recommend reading "Modern Perl" by chromatic (google for it).