GitHub's Four Most Popular Programming Languages Remain: JavaScript, Java, Python, and PHP (thenewstack.io)
A recent TechCrunch article claimed to have identified the best indicator of programming language popularity: GitHub's annual "State of the Octoverse" reports. So Austin-based technology reporter Mike Melanson explored the new verdict in GitHub's 2018 report:
It felt to me like the overarching theme of the numbers was one of quiet stasis for the year past, at least when it comes to those languages deemed the cream of the crop. One of the first graphics offered in the post shows the top languages according to the number of repositories created and we see that everything seems to be flowing along, just as it has for the last decade. While GitHub points to a "steady uptick" for JavaScript after 2011, it looks like this list of languages hasn't changed much over time. [The graphic shows the four most popular languages -- every year since early 2014 -- have been JavaScript, Java, Python, and PHP.]
When we look at the top languages according to the number of contributors, we see a similar story, with the top four languages mirrored. In this chart, of course, we see that Ruby is on a steady decline, while Typescript is on a steady rise. The only surprise to be seen here is that C, after a brief uptick in popularity, has taken a bit of a nosedive over the past year. Either way, seven of 10 languages have the same exact ranking....
Finally, beyond the language rankings themselves, GitHub offers a wonderful analysis of just what it is that makes a particular language popular in 2018, boiling it down to three key characteristics: thread safety, interoperability, and being open source.
GitHub's report also identifies its fastest growing languages over the last year -- including Kotin, TypeScript, Rust, Python, and Go. "This year, TypeScript shot up to #7 among top languages used on the platform overall, after making its way in the top 10 for the first time last year," the report notes.
"TypeScript is now in the top 10 most used languages across all regions GitHub contributors come from -- and across private, public, and open source repositories."
When we look at the top languages according to the number of contributors, we see a similar story, with the top four languages mirrored. In this chart, of course, we see that Ruby is on a steady decline, while Typescript is on a steady rise. The only surprise to be seen here is that C, after a brief uptick in popularity, has taken a bit of a nosedive over the past year. Either way, seven of 10 languages have the same exact ranking....
Finally, beyond the language rankings themselves, GitHub offers a wonderful analysis of just what it is that makes a particular language popular in 2018, boiling it down to three key characteristics: thread safety, interoperability, and being open source.
GitHub's report also identifies its fastest growing languages over the last year -- including Kotin, TypeScript, Rust, Python, and Go. "This year, TypeScript shot up to #7 among top languages used on the platform overall, after making its way in the top 10 for the first time last year," the report notes.
"TypeScript is now in the top 10 most used languages across all regions GitHub contributors come from -- and across private, public, and open source repositories."
So, a website with programming tools is primarily used by people who use web technologies. Shocking. Meanwhile, most C++ people are probably just all self-hosting repos.
Your ad here. Ask me how!
It's kotlin.
Taking bets on how long /. will take to fix the typo. My bet is "after the heat death of the universe".
I feel left out. First there was darkness. Then there was C. Then there was the kernel. Then there was Linux. Then there was Android. Then, finally, there was light. Through the gift of C, the world can now see!
Most Respectfully Yours Mark Allyn Bellingham, Washington
not because it's such a great language - it's good alright, but no better than a lot of others - but because when you need to do something, you can be almost certain there's an easy-to-use module to do exactly what you need out there.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
Nah... Since they turned it into a script, it's gotten much better. Get with the times man!
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
PHP7 caught my attention, looking like a Python wannabe with generators and anonymous functions. Can't find a decent reference guide to get myself up to speed. Where is O'Reilly when you need them?
By this retarded logic McDonalds is gourmet food with the *billions* it serves. Hint: It isn't.
Likewise, shit languages like Javascript and PHP, are popular because any code monkey can use them. But ignoring a problem doesn't make it go away. i.e. Memory management. To paraphrase JWZ, "Now you have two problems." This attitude of just throw more hardware at it is naive and non-scalable for certain problems.
Almost no one cares about performance, minimal code libraries, and non-bloated apps. The lower the bar for programming the worst this is going to get.
It's no surprise that "Worse is Better" W.R.T. programming languages has taken off. This has been happening for 30+ years.
... solutions and methods of development within hours.
I'm a relatively conservative developer in the web camp and it amazes me day in and day out how the web folks just automate away truckloads of menial tasks with some new tool that came along last week. A first look into npm has everyone joking but a second look reveals how they use their tools at hand to automate just about everything and get to go home early every other day. Example: many web centric repos on GitHub are actually used as distribution servers with a completely automated process for end-user software updates attached. And while many would think "OMG, how could you?"this is actually pretty smart. Another thing is this newfangled NoSQL fad which should better be called "We don't do relations and normalization". However, think about how often one-to-many is resolved outside of its original relational trail (almost never) and suddenly these super flat high speed data dumps aren't that stupid an idea.
Conclusion: That the web camp basically owns and drives development methodologies and PLs these days doesn't surprise me the least and if you're some C++ snob I'd be careful to judge too quickly.
My 2 eurocents.
We suffer more in our imagination than in reality. - Seneca
C++ is typically used to program important software that is mission critical for businesses. This kind of software is almost never made open source. That explains why there's so little C++ on GitHub. People who toy with open source software prefer programming languages that are quicker and dirtier since they don't care about maintenance.
Just scripting shit for code my keys to spit out some bug filled slow as molasses shit and call themselves a hacker
The problem with these sorts of studies is that the definition of what a "language" is has changed radically over the past 10 years.
React, Angular, Vue and other frameworks may have their roots in Javascript, but the programming experience can be radically different and the code may look alien and indecipherable to those unfamiliar with each flavor. If we're going to use the linguistic metaphor of "languages" to describe code, then we must consider these to be new languages as they are not understandable by all "speakers".
... assuming other languages aren't made out of C++
You're claiming that they've taken shitty software (javascript interpreter) and fixed it in its own scripting language to be less shitty.
Yes yes the "framework" is full of even more obscure shit. That doesn't mean it's a good idea to use it, or that it fixes anything. You might claim that papering over the problems works a jiffy, but that only works if you ignore the room getting smaller. And that room wasn't very big to start with.
> the top languages according to the number of repositories created
In the web and mobile days you will obviously see more and more stuff in PHP, Python, Java and the likes.
And fewer in C, C++.
IMHO you'd not even just count *all* projects.
Because a project like Linux (99.999% C) cannot count the same as a python-based or java-based toy project.
You'd better count the overall number lines of code. Or, better, the overall number of modified lines of code at any time.
Then you'd discover the real truth.
Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
We have completely fucked software.
Have an Android device? YOu know, the smartphone owned by over 80% of the world? Over 90% of the apps on there are written in Java.
Work with servers? A large amount of backend webservices are still written in Java. Especially large scale ones.
It isn't used much for desktop apps, but its used pretty much everywhere else.
I still have more fans than freaks. WTF is wrong with you people?
I want more Java. Itâ(TM)s an impressive language. I have this on good authority from at least one other person.
Java is dead? Companies wont buy java software? Fake news! Java powers most Android apps. Java is the most popular OS on mobile devices. But hey, don't let reality get in the way of your little Java rant.
We 'the common' programmers have moved on since Y2K.
(a) GitHub is not the only place developers host their build trees - very far from it. Most projects I work on are very serious, are coded in various mixes of C, C++, and assembler, and are hosted on company servers internal to the companies involved - they would never show up in such surveys/summaries.
(b) It does not consider the size, nature, and deployment scopes. They could be comparing lots of junky little Javascript applications to a much smaller of large complex and important applications. Many of the projects could be amateurish experimental goofball projects yet they are in the same bin with everything else.
Nice try, but neither the title nor the article state that those languages were the best.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
The language is now so large and complicated because the ISO committee just won't leave well alone, that its a virtual cliff face for newcomers to climb in order to learn it. So thats the next generation lost. And even the current generation of C++ coders such as myself have given up learning the latest drafts of esoteric garbage that have been shoe-horned into it by people who clearly have too much time on their hands. I stopped at the 2011 iteration of the language, 2014 and 2017 have passed me by because it appears to be a law of dimishing returns leaning the new stuff and frankly I have better things to do with my free time.
Work with servers? A large amount of backend webservices are still written in Java. Especially large scale ones.
If they are not written in Java then in Groovy, Scala or Kotlin, running on the JVM, using the Java infrastructure like web serves such as Tomcat or Jetty, running big data frameworks/tools like Hadoop, Spark or Cassandra.
The snobs out there simply don't realize that 90% of their daily computer interaction that involves something else than their own computer or tablet reaches out to backends written (partly or completely) in Java, may it be FB, Amazon, Twitter, or their bank, booking a ticket for a plane or a theatre.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
So the programming language for people who dont know how to code isn't doing well. Who would have thought?
//TODO: Insert catchy phrase
Want to learn C? You need a compiler
There are plenty of C interpreters ... no need for a compiler.
Let me try to guess what grandparent is really getting at: Neither a C compiler nor a C interpreter ships with the operating system included with most desktop and laptop computers. You typically must install Visual Studio or Xcode.
Python is not compiled, it is either run by an interpreter or in an REPL environment.
A Python interpreter does not with the operating system included with most desktop and laptop computers. You typically must download and install Python at Python.org, and a stand-alone executable created by bundling the interpreter, standard library, required third-party modules, and your program was in the tens of megabytes last I checked.
Javascript easily runs standalone ... just use Rhino or Node or any other JavaScript interpreter.
Node has the same disadvantage as C and Python: you have to install the interpreter. Both Edge and Safari can run script embedded in a web page, and they are included with the operating system. Besides, what UI library can Node use other than Electron, which is a separate copy of Chromium (Chrome with the proprietary parts stripped out) just for your application?
It is a nightmare to upgrade and 80% the upgrade breaks the software and you have to work with the developer for a week to fix it.
My company used to be all PHP and we made the switch to mostly Java a few years ago (we still maintain some php stuff on the admin side). In our experience your statement applies more to PHP then Java. We started at Java 1.6 and are now on 11. It was slightly rocky going from 8->10 but it just involved adding libraries that were split out of the JDK (it took all of a few minutes on Google to figure this out, no where near a week of fixing). Even targeting the latest version was basically just updating the version number in our pom files and rebuilding. Sure some libraries had to be updated but that's pretty normal for any language. The biggest thing slowing us down was switching the GC from CMS to G1GC, and even that wasn't so bad. Just involved a bunch of testing to make sure performance wasn't hit.
I can understand the issue with purchasing software that may not get updated often and then not being able to update. We haven't purchased much, but of what we have, they all come bundled with their own JRE's which get updated as the software is updated, so that also hasn't been a problem.
In a web browser? What can you use that isn't JavaScript?
HTML and CSS. And if you absolutely need interaction beyond link navigation, form submission, and checkbox collapse/radio tabs, you can use any language that isn't JavaScript but transpiles to JavaScript or compiles to WebAssembly. Or you can skip a web browser and provide a set of native applications for the end user to download, optionally audit, optionally compile, and install.
On an ISP-hosted web server? What do they give you except PHP?
I wasn't aware that home ISPs were still bundling web hosting now that most subscribers were putting their work in silos such as Blogspot, Tumblr, Facebook, Gab, Twitter, deviantART, and the like. Otherwise you might as well get a $10/mo virtual private server (VPS) from Amazon or any of several other providers and install whatever language you want. Buy your domain and hosting, configure your VPS to run a webserver and get its TLS certificate from Let's Encrypt, and you're set. And if you can't afford that much, third-party shared hosting providers such as DreamHost and WebFaction offer Python and other languages.
There is a huge amount of server-side application and server code written in Java. Consider all the Java application servers available on the market (e.g. from IBM, Oracle, Red Hat, etc.) in addition to more lightweight servlet containers (e.g. like Apache Tomcat). There's also a huge community around Spring. Java is not dead. Even if all new development on Java stopped now the existing code-base would keep Java relevant for years.
If you think Java is dead and no one programs in it, then you must have an extremely small circle of programmers.
The world's burning. Moped Jesus spotted on I50. Details at 11.
There are many ways of measuring popularity.
Would a thousand copies of a change directory utility be one project or a thousand?
Would a thousand line tightly-written program that has a million users be considered equal to a thousand line badly-written program with five users including the programmer's mother?
Does a verbose language get counted the same way as a clean language?
Does a language that inspires errors and thus fixes count as being as active as a language that inspires trust?
How would you differentiate fixes from upgrades?
These are serious questions. You could develop an AI to examine language characteristics, type of use,and unique addresses of downloads, but I see no obvious way to use any such metric and no serious possibility of such a metric being accepted. You'd get just as many arguments.
We all look at metrics to tell us something profound. In truth, you're going to get a better answer from CowboyNeil.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
If you're developing a web application, use Java if you want people to know what you're doing. It'll be slow but it'll generally work and it'll be portable.
For faster web apps, you might want to use Wt and C++, but expect it to be hell to maintain.
For robotics, Java was specifically created with that application in mind.
So there are domains where you should use it.
Upgrading us a pain, yes. That's why you put unstable features into a support library. Then you never update the app, you only update the support code.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Each problem space is likely to settle on its own most popular tool. Java fills the role of megalithic system design suitable for huge teams and projects. PHP dominates at generating web pages. Python has several niches in academia, control systems, and online news media. JavaScript runs the web front end, and also is the goto for writing network code to tie together web services et al.
New languages need to fill a niche better than the current crop in order to become dominant.
Wonder what this bot was coded in.
Please stand clear of the doors, por favor mantenganse alejado de las puertas
Well, uhm, the java language is used for android. But on device, that's not JVM.
I think MacOS ships with some scripts that require that older version of Python, so it's really there to support the system, not user development.
Then it's an implementation detail of macOS, much as msvcrt.dll is on Windows. In any case, it weakens the claim that Apple ships an environment for running downloadable applications written in mainstream Python.
I still don't get why they didn't make the Python 3 interpreter backward-compatible with a switch at the top of the script.
Currently #!/usr/bin/env python launches the legacy (Python 2) interpreter if installed, and #!/usr/bin/env python3 launches the modern Python interpreter if installed. On Windows, the .py extension is associated with py.exe, a short program that reads the shebang line and execs the appropriate interpreter as defined in PEP 397.
I'm just posting to thank the submitter and/or EditorDavid for using the Oxford comma.