RedMonk Identifies 2017's Most Popular Languages: JavaScript, Java, And Python (redmonk.com)
Twice a year the tech analysts at RedMonk attempt to gauge adoption trends for programing languages based on data from both GitHub and Stack Overflow. Here's their top 10 list for 2017: JavaScript, Java, Python, and PHP, followed by a two-way tie between C# and C++, a two-way tie between Ruby and CSS, and then C at #9, and Objective-C at #10. But their GitHub data now counts the number of pull requests rather than the number of repositories. An anonymous reader quotes their report:
Swift was a major beneficiary of the new GitHub process, jumping eight spots from 24 to 16 on our GitHub rankings. While the language appears to be entering something of a trough of disillusionment from a market perception standpoint, with major hype giving way to skepticism in many quarters, its statistical performance according to the observable metrics we track remains strong. Swift has reached a Top 15 ranking faster than any other language we have tracked since we've been performing these rankings. Its strong performance from a GitHub perspective suggests that the wider, multi-platform approach taken by the language is paying benefits...
Of all of the top tier languages, none jumped more than TypeScript on our GitHub rankings, as the JavaScript superset moved up 17 points.... PowerShell moved from 36 within the GitHub rankings to 19 to match TypeScript's 17 point jump, and that was enough to nudge it into the Top 20 overall from its prior ranking of 25... One of the biggest overall gainers of any of the measured languages, Rust leaped from 47 on our board to 26 â" one spot behind Visual Basic.
Swift and Scala and Shell all just missed out on the top 10, clustering in a three-way tie at the #11 spot.
Of all of the top tier languages, none jumped more than TypeScript on our GitHub rankings, as the JavaScript superset moved up 17 points.... PowerShell moved from 36 within the GitHub rankings to 19 to match TypeScript's 17 point jump, and that was enough to nudge it into the Top 20 overall from its prior ranking of 25... One of the biggest overall gainers of any of the measured languages, Rust leaped from 47 on our board to 26 â" one spot behind Visual Basic.
Swift and Scala and Shell all just missed out on the top 10, clustering in a three-way tie at the #11 spot.
Given all of the hype I read about Rust on Hacker News and Reddit, I thought it would have been the top language by a long shot. They make it sound like it's the only language that exists these days.
And we all know the difference between elevator/rap/kiddie-pop music and Mozart/Beethoven/Strauss/Sousa...
Assembly, C, C++, Pascal, and Fortran still live!
Reading this, perhaps we should keep in mind it is based on pull requests on public Github repositories; that's counting how much these languages are *shared*, not how much they are *used*.
Since the full source code most Javascript is generally distributed to the public anyway, it's not the language of choice for proprietary applications. You may as well put it on Github, since you're already putting the source code on your web site. Proprietary software is most commonly written for Windows, and therefore written in C#. Github pull requests will over represent Javascript, and under represent C# in terms of actual usage.
Github also very much over represents new projects that were started in only the last few years, after Github became popular. You won't find Linux or Apache on Github, for example, or most other software that has been around a long time. A lot of software had their development processes in place before Github even existed. Along the same lines, Github is used more by people who choose to newer, "trendier" options versus time-tested methods.
This survey will therefore under represent older languages and over represent newer, trendier languages.
Measuring Github pull requests might be a better measure of which languages are popular in recent open source packages, vs overall usage.
Modula 2 was Nicklaus Wirth's entry into the object oriented language sweepstakes in the '80s, following the early success of Smalltalk. It competed for buzz against C++, Ada, and Objective C; Modula 2 probably did the worst of the four, vanishing from sight.
IWBNI we could get Modula 2 on the next hot programming languages chart.
javascript rides on the distribution model of the web, which is especially good.
But C will be back, especially as developments like WebAssembly move forward they are bringing native back to the browser.
No this does not mean the underlying source will remain veiled in mystery, we still have to *debug* whatever code we write.
Since when?
Slashdot, fix the reply notifications... You won't get away with it...
Most serious JS is definitely NOT open to the public. Common libraries certainly are (and the JS community is very aggressive about pushing the programming envelope), but most significant projects are closed source. You could argue that you can see the source anyway, but between babel transformations and minification, the output is obfuscated (to say differently would be similar to arguing that C projects are open because you can disassemble them).
The most popular hamburgers worldwide are Mac Donald's. Does that make them better?
Slashdot, fix the reply notifications... You won't get away with it...
Comment removed based on user account deletion
Maybe JavaScript is not "popular", just used a lot because it is necessary to use it.
I would believe the vast majority of C code is not publicly shared. That was my experience throughout my career.
Excuse me nice gentlemen. I don't mean to interrupt but, I've been searching news articles trying to find my cat. Have you seen my cat?
Most popular among "being used in development" are Javascript, Java, C# and PHP according to stackoverflow tags.
Slashdot, fix the reply notifications... You won't get away with it...
Well, if you're writing a big app on linux (cloud or not) that's multi-threaded, forks processes, etc...there is no other option other than Java. JavaScript/Node.js will fucking choke quickly with it's async bullshit running on a single thread. Being strongly typed helps a lot so you don't get surprises at runtime.
Much better for bigger projects. Much easier refactoring and code navigation. The loud crowd works eithe on small projects that are made and abandoned quickly or on heavy fronted projects.
Java is not sexy, but get the work done. It has pretty powerful libraries and frameworks which is something I like, but loud crowd hates as they require a little bit of learning before you understand them.
Are you trying to argue that the clusterfuck of javascript and PHP are "easier" than Java ?
> why are they better?
*Why*, the *reason* they are better, is that the creators had more than 10 days to design, plan, implement, integrate, and test them. Several years, in most cases.
Netscape very much wanted a client-side programming language built into the browser for their big 2.0 release. The original plan (Scheme) didn't work out, so with just ten days left before the public beta release, Brendan Eich designed and implemented, and integrated Javascript.
It was a pretty amazing accomplishment - I rather doubt I could do that in ten days. Also, there are many areas where the ten-day schedule is apparent, such as inconsistencies in the naming and format of Javascript functions. In ten days there was no time to have a full complement of types, in fact Javascript can't handle integers. That's a problem because, for example it means 9999999999999999 is equal to 10000000000000000. Floating point comes with all kinds of errors. You're actually not supposed to ever compare to floating point numbers for equality, you're supposed to check whether the difference between them is small. Since JavaScript only HAS floating point numbers, it can't tell whether or not two numbers are equal, in the general case.
JavaScript generally ignores errors and carries on. If you're driving somewhere and you realize you're going the wrong direction, you'd stop and turn around, right? Not JavaScript. When JavaScript notices it's doing something wrong, it continues full speed ahead, intentionally continuing to screw more and more things up.
Type coercion in Javascript is nuts. In Javascript, 1 + 2 = 12, sometimes.
One of the four useable types Javascript does have is Number. But 1 is not a Number.
Number has properties MIN_VALUE and MAX_VALUE.
Keep in mind, though, -1 is less than Number.MIN_VALUE, and MAX_VALUE is less than MIN_VALUE.
Again, I couldn't write a better language in 10 days. Give me 60 days, though, and I might have built something better than Javascript.
Any "measure" of language use that doesn't take into account Spring, Hibernate or Apache Commons jar downloads (among others) is not even close to representative of real world "use".
Java has a robust and widely used and robust frameworks for applications so in many cases the developer can focus on the business code; several mature development environments which hook into the reflection capabilities of the language to make coding quite pleasant; a rich set of tools useful for program qa and developer support; a massive developer pool. As a language it's OK, but language wars are so 90s.
For a business that needs to get stuff done that's pretty important. For projects with lifetimes potentially in decades Java is an easy choice. A good programmer is a good programmer in any language; Java can make mediocre programmers productive. That might sound deeply unsexy to the slashdot crowd, but I think that's the reality of an awful lot of SW development, which is internal or contracted development for businesses.
Please remain calm, there is no reason to pani... wait, where are you all going?
You won't find Linux or Apache on Github, for example...
Linux kernel
Apache HTTPD Server
I'm not saying you're wrong, but your examples are wrong.
Anons need not reply. Questions end with a question mark.
https://blog.nondon.net/
Every couple of days some random guy who measured programming language popularity by pissing against the wind while spelling the name of the language backwards pretends to have figured out how he future of software development will look like. And every damn time this garbage is getting posted on /.
Currently Python is most popular language as it is very easy to learn. The reason is we don't need to have much experience of coding to learn this language.
No. What do you think Linux is written in?
Whenever there's a "language popularity" thing online they always do their research by looking at what people are doing online. Either what they are talking about, what they are sharing, etc. Somehow none of them ever consider how horribly skewed this is.
The simplest counterexample to something like this is embedded software. It is unarguable that there's a lot of development of that going on. Everything today gets controlled with a micro-controller or small CPU. Actual custom designed ASICs/circuits are reserved for only a few applications, most things get a more general purpose device and do it in code. Your car, your cable modem, your microwave, your TV, etc all of them run code.
Well guess what? That embedded code isn't done in Javascript or Ruby or any of these other trendy languages. Often as not it is done in C/C++ (and sometimes partially or all assembly). It just isn't the sort of things that gets posted about online. First the code is almost always proprietary, so the project itself isn't going to get posted as it is property of the company that paid to have it written and second it is professionals working in teams doing it, not people who are getting started out or playing around. They are likely to get help internally, not talk about it on the Internet.
So if you want to look at Github to see what is popular on Github, that's cool, but when people try to generalize that to development overall, it is false. To get a feeling for what is really popular in software development you'd have to poll programmers working at a variety of big companies since that's where a lot of the code is being generated.
I do JavaScript development. That does not necessarily mean I like JavaScript
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
Welcome to the Kingdom of Nouns!
Most popular among people who are inexperienced enough with the language that they cannot find a solution to their problem themselves.
Or Chez Scheme. Or Common Lisp. Or Go. I'm pretty sure there's at least two dozen different options, anyway.
Ezekiel 23:20
Yes because Java is only used by inexperienced people.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
I just want to say. Good for Python. I know a lot of people hate it but once you get past the static indents there is a lot to like about the language.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
I work in a lot of different languages and it changes from week to week. Maybe what makes a language simple also makes it efficient to change. Unless you can point to something that Python cannot do with simpler source code, why would you want to use the more complex one? I can appreciate the use of objective-c for speed or, well, it took Android awhile to get 'smooth' on Java but it's there now and it has a full complement of libraries. But for the part that needs to be extended and tweaked and retweaked, I think Python is a valid choice. You get a lot done in a simple way.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
Yes because Java is only used by inexperienced people.
Not exclusively, but to a large extent, yes.
You could use Python, Scala, Erlang. You could probably even do it in Fortran and MPI if you wanted to, but it wouldn't be the most natural fit.
I think he meant the thousands of Java projects hosted by http://apache.org/
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
I have an impression that SO is flooded with people who cannot code their way out of a paper bag, proverbially speaking. Which is what I was referring to with my GP post.
C++11/14 allows you to do some of the things that needed a fair bit of boilerplate with somewhat fewer lines of, and more readable boilerplate.
They are counting pull requests, development. You won't find the kernel and Apache httpd pull requests on Github.
Yes somebody uploaded a copy of the code to Github. That's not where development is done, so this survey wouldn't count Apache httpd or kernel httpd development (except for a few people who didn't know the devel process and clicked pull request on Github).
A perfect example of how "popular" does not necessarily mean "good".
Just cruising through this digital world at 33 1/3 rpm...
Per the TIOBE index http://www.theregister.co.uk/2017/03/10/swift_pops_top_10/ & it never usually goes outta the top 11 iirc there...
* I used it to build this so users get more speed, security, reliability & anonymity online for less (less resource use & security issues combined vs. other "so-called 'solutions'" that are security issue riddled & slow you (DNS/antivirus/addons) or are 'souled-out' to NOT work anymore (like AdBlock) by default) APK Hosts File Engine 9.0++ SR-7 32/64-bit https://www.google.com/search?hl=en&source=hp&biw=&bih=&q=%22APK+Hosts+File+Engine%22+and+%22start64%22&btnG=Google+Search&gbv=1/
I chose Delphi over my past favs in MSVC++ & VB in 1997 when I saw in VBPJ (a competing language trade rag) that it nearly TRIPLED C++ in Math & String work (& every program does those).
APK
P.S.=> Accept NO substitutes for hosts files OR Delphi people - otherwise, you're shorting yourselves... apk
There are two things that make Java more difficult and verbose than many other languages:
1. Java was designed to be run in environments where security (applets in a web browser) and robustness (embedded devices) were of paramount concern.
2. The designers of Java were heavily influenced by GoF design patterns, which are all about large programming projects with dozens of developers (at least) on multiple programming teams. In fact, the Sun folks came up with new patterns on their own (see the book Effective Java).
So yeah, simple tasks such as reading text from a file and filtering using a regular expression can involve a profusion of library classes and try/catch blocks, which look ridiculous to a Perl or Python dev. But #1 and #2 are basically the reason. When you write Java code, you have to keep application architecture, security, and run-time robustness in the back of your head at all times, and lose the idea of trying to do something in the least amount of code possible.
Currently Python is most popular language as it is very easy to learn. The reason is we don't need to have much experience of coding to learn this language.
I'm not sure that's true in a general. Python is at heart just another generic C-alike.
Python's strength lies in the fact that it was designed with iterables at its core, and for k in keys: is a lot easier to deal with than for (i=0; i . In a sense, this makes it easier to learn -- iterables just make for more accessible and readily understandable learning tasks -- but at the end of the day, a heck of a lot of teaching syllabuses still assume C-style programming, whether simply because that's the way it was before or because the course organisers want to teach a generic paradigm and want their students to be able to transfer to C easily.
As I understand it, Python is the most common language used in high school computing classes in Scotland; however, the national curriculum mandates teaching of arrays and the number-controlled for loop. Python doesn't have arrays (the CS curriculum talks about fixed length and all data being of the same type, and kids can quickly find out for themselves that that's not true in Python) and everyone ends up teaching kids to write for i in range(0,len(listname)): and then immediately item=listname[i] rather than for item in listname .
This sort of contortion hides the logic behind Python and makes programming seem even more arcane and arbitrary.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
Lol. Python is great because I can write something that works on a 15 year old computer or a brand new one.
You are going get your ass chewed on /.!
To be fair, it's a tiny, tiny little finger ;-)
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
Yes. I have something to say that is good about it. It scares away incompetent people like you according to you ;-)
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
I started writing C in the late 80s and Python the last 10 years. C is like Python in the same way that dick is like pussy. There are similarities, but it is the differences that make them each have their own place in the world.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
That suggests to me that you've had a very narrow experience of programming languages, and have stuck to the C-alikes.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
Reading this, perhaps we should keep in mind it is based on pull requests on public Github repositories; that's counting how much these languages are *shared*, not how much they are *used*.
Oh... so you're saying the several squillion single-function dependencies that are pulled any time you try to do anything nontrivial in node.js are counted separately every time you deploy it on a new machine? Yeah, that would explain it.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Comment removed based on user account deletion
> First off, the main alternative in the scripting world is the union of monotypes model, where a number could be a float, integer, or string depending on context,
True, in languages designed for writing quickie scripts, as opposed to significant applications such as a word processor, typing is sometimes an issue. It doesn't have to be so - even VBScript has a proper type system, as does Python as I recall.
Anyway, JavaScript is now being used to write office suites, and it's not well suited to such tasks.
C is a subset of C++. To get a true indication of popularity, add the numbers for those two together, and nothing else is even close.
Contribute to civilization: ari.aynrand.org/donate
Haha, you think multithreaded programming in Python scales.
I have heard plenty of bad things, but does anyone have anything good to say about Java?
Absolutely! Off the top of my head:
Java broke the logjam in the open source world (though it wasn't called "open source" at the time). Before Java, pretty much everything was in C (and maybe a little Tcl). The Java hype opened up the open source world to all languages. (Note that Perl 5 dates from around the same time as Java 1, and I don't want to discount its relevance, but while Perl and CPAN would have gone on to influence other languages like Perl, it didn't step into C's space like Java did.)
Java broke a significant logjam in programming language research. Almost every single piece of research that has happened in managed execution environments, modern concurrent garbage collection, JIT compilation, reflective virtual machines, and so on are largely thanks to Java.
On that note, in 20+ years, there has never (to my knowledge) ever been a security hole in the Java platform which was caused by the JVM or the Classloader. Plenty in the SecurityManager library, but none in the JVM infrastructure.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Java has a robust and widely used and robust frameworks for applications so in many cases the developer can focus on the business code; several mature development environments which hook into the reflection capabilities of the language to make coding quite pleasant; a rich set of tools useful for program qa and developer support; a massive developer pool. As a language it's OK, but language wars are so 90s.
"Robust", huh?
The worst misuse and overuse of design patterns I have ever seen have all come from people who write, or learned to code writing Java.
Those "robust frameworks" you talk about are a scourge. At best they're cargo-cult engineering, and at worst, deliberate overiengineering make-work to craete job security.
Java can make mediocre programmers productive
I'm guessing you and I have very different ideas about what productivity is.