Python Is On the Rise, While PHP Falls (dice.com) 232
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.
Go away Dice (Score:4, Informative)
We won't want this Dice shit here.
Is there really no one at all willing to buy Slashdot?
Re:Spare Us (Score:5, Insightful)
Re: (Score:3, Interesting)
agree completely, as long as the solution involves Perl :-)
That is one underrated language...
Re: (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::P
Re: (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.
Re:Spare Us (Score:5, Interesting)
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.
Re: (Score:2)
Re: (Score:2)
This is the problem with PHP. PHP used to stand for Personal Home Page [wikipedia.org]. That's exactly the level of programming it was originally designed to do. Making simple pages for personal use, maintained by yourself.
Since then, it has grown, but many of the things that make it great for small personal home pages make it quite unweildly for larger projects.
Personally, I don't like PHP or Python. PHP is just terrible for reasons I won't get into here. The only thing that really bothers me about Python is that it use
Re: (Score:2)
> A real programmer does not care about languages.
A real programmer certainly _does_ care. The available modules, version dependencies, and API's can vary tremendously. Even simple features like "regexp" have subtly different syntax with different tools, string parsing and processing functions differ fundamentally in the handling of "end-of-line" characters, and even whether a "true" value is "0" or a positive number can differ profoundly and affect binary logic.
To say "a real programmer does not care" i
Re: (Score:2)
I believe the poster meant to say "...does not care about languages subjectively." as in "tools in a toolbox - pick the right one for the job."
Of course, that statement always has to be bounded by the skillset of the engineers involved (e.g. picking C for a *nix systems application/daemon is a clear choice unless no one on your team knows C.)
Re: (Score:2)
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 .
Your first sentence contradicts the rest of your statement where you very clearly show that a 'REAL' programmer most certainly does care about the language, which is why he isn't writing glue script in C or a kernel in Perl.
And 'REAL' programmers most certainly do avoid shitty languages, of which PHP is one as is Perl (sorry if you still think leaning toothpicks and a language where everyone writes the same one line operation in a different way is a good thing, but that just makes you stupid ;)
So you go ahe
Re: (Score:2)
You ain't Mel.
Re: (Score:2)
Disagree. Real programmers care a lot about what languages they use.
Meh (Score:2)
Some languages are better than others for certain tasks, and some languages, like PHP, are crap. While there are things that PHP will do better than C++, there's basically nothing that PHP will do better than Python.
Likewise, I can think of no case for staring a new project in COBOL.
Re: (Score:3)
> No real programmer uses these stupid script kiddie languages.
No real programmer makes silly statements like that.
Re: (Score:3)
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*
Re: (Score:2)
Pffft... Luxury. We write code in a shoebox.
Re: (Score:3)
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.
Re: (Score:2)
Nice to see the "real programmers don't use [insert language here]" troll still has some life in it.
Must be pushing at least 40 by now, and still pulling in the responses.
Re: (Score:2)
Actually they do.
These modern interpreted languages offer many key benefits over the compiled languages such as C/C++, <whatever>.NET, Java.
1. No compiled code: Sucks if you are trying to offer a closed source solution. But often in a business environment having your source as your running code, means decades after you leave you will still have the source available, even after they lost the original project. How many pros had came to a work environment where there was at least one legacy (Usually VB
Re: (Score:2)
No, with butterflies...
Obligatory XKCD:
https://xkcd.com/378/ [xkcd.com]
PYPL shows C language share @ only 7.5% (Score:3)
Re:PYPL shows C language share @ only 7.5% (Score:5, Insightful)
this is Dice trying to churn their candidate pot, nothing more.
Slashdot really circling the drain quickly now
Re: (Score:2)
this is Dice trying to churn their candidate pot, nothing more.
Yes, there isn't much of a story here. Over five years Python has risen five percent while PHP has slid five percent.
Re: (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.
Re: (Score:2)
well aren't you a good little brown-star tongue-punch for your corporate overlords. Are you under your boss's right now, you'll find his nutsac will need particular attention today
Re: (Score:3)
You forgot to ask whether he'd like fries with that.
Re: (Score:2)
You forgot to check your fail.
Re: (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.
Re:PYPL shows C language share @ only 7.5% (Score:4, 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?
Re: (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 r
Re: (Score:2)
ANSI C is C89. Get a clue.
Re: (Score:2)
Are you also guessing that he thinks a quarter of a century are 15 years?
Re: (Score:3)
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.
Re: (Score:3)
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.
Re: (Score:2)
....except you've pretty much just shown us why Perl isn't gaining any popularity - stuff exactly like that gets written in it a lot, and most programmers would prefer not to have their code look like someone threw up on the screen.
Re: PYPL shows C language share @ only 7.5% (Score:2)
I only had trouble with the $-somethings, but here you go, in order of appearance:
http://perldoc.perl.org/functi... [perl.org]
http://perldoc.perl.org/perlop... [perl.org]
http://perldoc.perl.org/perlva... [perl.org]
You're not supposed to understand that intermediate-level mess just by looking before having learned a bit of Perl, anyway. Like regular expressions, Perl code was never designed to be self-explanatory.
Re: (Score:2)
I already understand and can read perl and regex quite well. That doesn't stop people from writing code that honestly looks like dogshit.
Re: PYPL shows C language share @ only 7.5% (Score:2)
Heh. Some experimentation may be required, but the same happens with regexes and C/C++ declarations and casts.
Re: (Score:2)
Maybe if you'd written better Perl then you'd be less tired of reading it? I've shared my Perl story, so I'll spare you AND I'll spare you the snarky response. The question was, indeed, a question. It is even a legitimate question.
See, is the problem Perl or is the problem that you're now older, wiser, and able to look back on your old code and realize how much better the code could have been? What if, say, your old code were written in Python and now you were using C or Java? Would you not, probably, look
Re: PYPL shows C language share @ only 7.5% (Score:3)
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.
Re: (Score:2)
Re: (Score:2)
False metric (Score:5, Insightful)
Re:False metric (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?
Re: (Score:2)
Re: False metric (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.
Re: (Score:3)
#1 reason to look things up: are the function arguments in (needle, haystack) or (haystack, needle) order!
Re: (Score:2)
Why not both!? Writing programs to farm gold in WoW all day!!
Re: (Score:2)
I know C really well so I very rarely look anything up online on it. If I do need to remind myself of an API (and printf is a good example, i can never remember the format specifiers), I'll probably use the man pages installed on my computer rather than going to the Web. The same for any language I use regularly, even Java. I'l download the API documentation onto my laptop so I can still use it when offline.
However, I recently had to write some enhancements for a web site written in classic ASP and, pretty
Re: (Score:2)
It could also be an indication of how hard it is to find vital information on a particular language. Search for anything in the Win32 API, and the MSDN will be the top result pretty much every time. Search for anything in the PHP language and php.net will be the top result pretty much every time. Other languages are not even remotely as lucky. I personally find that finding even basics of other languages takes a few Google searches and several posts in various StackOverflow boards to get decent answers.
Re: (Score:2)
There are other languages with good documentation. Java is a good example that you didn't mention. You mentioned the Win32 API and MSDN, but didn't mention .Net or any of the languages that use it such as C# or VB.Net.
Re: (Score:3)
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.
Re: (Score:3)
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.
Re: (Score:2)
"I use Python, but I have never looked at a Python tutorial. The language is simple and the syntax is obvious."
That's how I started as well, but it resulted in horrible C-like constructs, like literal translations of
for (i=m; i<n; ++i) {}
with while and if. And it took a while to figure out how the lack of pointers and the murable/immutable object distinction work in practice.
Swift (Score:4, 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...
Har har har? (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.
Re:Har har har? (Score:5, Funny)
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
I too hate formatting my stuff the way my coworkers / teachers / project maintainers / colleagues expect to find it.
Are you suggesting that There should be one-- and preferably only one --obvious way to do it? [python.org] Geeze, I'm not sure my coworkers / teachers / project maintainers / colleagues can accept that...
Re: (Score:2)
Yes, but you save time by not indenting
I'm asking this seriously: what text editor do you use that you can easily not indent? I use Emacs (and Vim and Sublime Text and Atom) and automatically get thr correct indentation just by writing code like I normally would. If I type if foo: and hit enter, the cursor will be placed correctly for the next thing I type. This isn't Python-specific, either. I get the same behavior when writing C, Go, JS, shell scripts, and so on.
I love dealing with a language that's explicit about what I mean. Consider how inc [imperialviolet.org]
Re: (Score:2)
Sometimes you want to test something, then you might need to add an if or so. With braces, you just add it, and you can immediately execute it. With python, you have to get indentation right. And you never know where a block ends, unless you look at the indentation level.
And to GP: the next time you have to write something in python for whatever reason (unfortunately python is almost unavoidable), try kate block mode [kate-editor.org].
Re: (Score:2)
And sometimes you actually just want to move some inline code out to a new function to fix the code that wasn't done well in the first place. If the language has problems that stops you from refactoring your code in order to improve the code base, then there are serious problems with the language.
Python on the Rise (Score:2)
I got your Python, right here.
Wait, searches for language tutorials? (Score:4, 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...
Need more mature languages (Score:4, 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.
Re: (Score:2)
Assembly code, man. All the rest are just obscuring what you really want the processor to do anyway. At least with asm, you can fix any of these problems given enough effort.
Re: (Score:3)
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
Re: (Score:2)
Re: (Score:3)
Interesting read by Andrei Alexandrescu, D Language Architect, on: D, Go, Rust, and C, C++:
https://www.quora.com/Which-la... [quora.com]
Re: (Score:2)
Python provides no ... Java is not ... C/C++ is not ...
Programming languages are tools, and all good tools tend to be suited for just a few tasks. If you are going to hang picture on a wall, you'll probably use a hammer and a nail (well, depending on the waill, of course), because that is the simple and efficient way of doing the job. I doubt anybody would ever seriously contemplate making a supertool, that could hammer nails, drill holes, mix cement, lift bricks up to third floor, place roofing tiles etc etc etc, as well as cook your dinner, do the accounting
Re: (Score:2)
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.
Automatic parallelization for CPUs has been around for a good while (e.g. Fortran 90), so the parallelization per se should not be a huge issue. You need sensible semantics for these concepts, such as vector types, so the compiler can assume things about parallelism.
Re: (Score:3, 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
Ever heard of Java HFT? (Score:2)
Java has been doing realtime for over a decade now. In fact the very first JSR [wikipedia.org] was JSR 1: Real-time Specification for Java [jcp.org] which began in 1998.
Saying Java is not suitable for realtime due to "unpredictable GC" shows you haven't read much on the topic. Many Java open-source projects guarantee millions of operations per second on the right hardware. Java has a huge HFT community footprint.
Take a look at what http://chronicle.software/ [chronicle.software] and OpenHFT is doing for instance.
Re: (Score:2)
C/C++ is not suitable for anything which should never crash or return random results due to memory corruption.
Yes, it's 2015 and so it would be appropriate to realize that C and C++ are two totally different languages (where one of those is just capable to seamlessly compile most of the code written for the other).
* ducks head * (Score:1, Informative)
It's all those googling to figure out how to fix their white-space messes
Understand the Allure (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.
Re: (Score:1)
I especially agree with your point in today's world where compilers are able to do a decent job optimizing. When that brevity does not buy you anything more than a few saved keystrokes, I tend to focus on writing the most readable yet not overly verbose code. There are ways to do that in PERL just as there are in Python. Sometimes with languages with more exotic features and "more than one way to do everything" it is tempting to be as clever as possible.
Then I remember: "clever is not a compliment" and I wa
Re: (Score:2)
it enforces readability without requiring too many extra characters
I agree... over the past five years or so I've migrated to python, both in web development and a lot of scrips I wrote for use in house for special case "things." It's a great combination of brief (as little as 1/10 or less the size of equivalent Java) and yet structured and readable.
Re: (Score:2)
Whoopdee fucking doo (Score:1)
I repeat, "Whoopdee fucking doo", which means, "Who fucking cares?"
But... but... (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. [slashdot.org]
Please stop the hyperbolic clickbait.
Re: (Score:2)
Aside from the top dog Wordpress, the next two popular CMS are Joomla and Drupal. Which also use.... php
It's like that in ecommerce also. The #1 ecommerce software is Magento (php). #2 is Woocommerce (php). #3 is Prestashop (php). #5 and #7 and #8 are also in php. Something like 60 to 70% of all ecommerce sites on the internet are in php. 2015 ecommerce platform rankings [aheadworks.com]
... and here on slashdot? (Score:3)
Re: (Score:2)
they didn't feel it was worth while to put any additional money into the code, ever again
Not true. Just recently they came dangerously close to completely ruining this site with an investment in new code. Thankfully, they backed down.
The truth of the matter is, there is no reason to upgrade the code. In fact, I'd prefer if they reverted to one of the older versions from earlier years that has fewer "Web 2.0" stunts and just serves up the damned text.
Re: (Score:2)
"no reason to upgrade the code. In fact, I'd prefer if they reverted to one of the older versions from earlier years that has fewer "Web 2.0" stunts and just serves up the damned text."
Here are som reasons to upgrade:
* support unicode,
* get workable access to preferences (if you enable "classic mode?, all kind of stuff breaks, including getting back to default D2 mode.).
* Get a decent mobile view (Can't access it when logged in and it's unworkable anyway on my quad-core, 2 GB RAM phone). That's why I mainta
Re: (Score:2)
+1 to those. Also:
* make a decent comment entry editor that makes quoting, numbering, bullet points, tables, etc. less of a pain in the ass.
You would get some better comments on here if you could post data in an organized way, IMHO. It feels insane to be asking for these minor things in 2015.
Re: (Score:2)
Re: (Score:2)
I agree, don't let it go crazy.
Just a few options for formatting plain old text and you can paste a few cells of data into a textbox and not lose all alignment.
Re: (Score:2)
> Perl. Perl all the way through, and nothing but Perl.
Python has been suffering from module dependencies lately, where the "pip install" tool for installing 3rd-party modules deploys a rats' nest of potentially incompatible latest releases of all the dependencies from python.pi.org. This is similar to what happened with CPAN over time, except that CPAN for perl was much, much worse about individual modules introducing incompatible upgrades, and other modules being long unmaintained so they would never b
Re: (Score:2)
> The problem with mod_perl was one of perception:
The problem with the mod_perl update was one of naming and numbering. The version that supported httpd, sometimes called "Apache 2", was _among_ the mod_perl 1.9xxx releases, and it was very difficult to tell which "1.9xxx" release was compatible with what. Older perl modules that were only compatible with the older releases had to all be updated to require a release _less than_ 1.9xxx, or they would break when installed with "cpan install". And if you
Duck typing and GIL (Score:2)
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 in
Re: (Score:3)
All valid points. Python's backend is not very powerful, unlike its elegant front-end (the language and APIs).
The typo problem is present in most scripting languages. Isn't Lua, which is similar to Python, used in many production games?
Re: (Score:2)
So they throw away all the code for the game and start afresh when they release version N+1?
You make me laugh! (Score:2)
Index is created by analyzing how often language tutorials are searched on Google
And how should this be related to rise and fall of a programming language popularity?
I would instead say that it shows how hard a programming language is to be learnt or mastered.
This study is completely flawed and aimed to religion wars among programmers!
Every one actually knows that C is the king of all languages, you insensitive statistical clod!
The power of Prime Time! (Score:2)
Re: (Score:2)
Re: (Score:2)
Isn't PHP Lesson #1 that you can find $anything you need to know about it by typing "php.net/anything" into your location bar?
Re: (Score:2)