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.
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.
It's a very cool and enjoyable language but it's obviously not being used in a ton of major projects right now. Who would have thought that the biggest commercial languages would actually be the most used languages in general?
Rust is being used in production though. Check out Rust's site. There's a page listing off a good amount of serious projects. SmartThings is even using it, I don't know in what capacity though. Doubtful that it's in an embedded capacity. Probably backend shit.
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.
A good programmer can program Fortran in any language.
A republic cannot succeed till it contains a certain body of men imbued with the principles of justice and honour.
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...
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.
Found it.
Slashdot, fix the reply notifications... You won't get away with it...
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.
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 /.
Honestly, the only place I hear about Rust is people complaining about it on /..
Only crack the nuts that crack. You don't put the ones that don't crack in the sack.
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
Exactly. Java, C++ and C are not going to go anywhere for a long time. Even if Rust is better for a whole raft of systems programming tasks it's not like anyone is going to go out and rewrite code that already works. More likely usage for Rust will grow with IoT since code needs to be performant, reliable and secure and C / C++ really aren't suitable for that task.
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.
Can a good programmer program Fortran in Fortran? Is it self-hosting?
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
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.
Yeah, this winter it's been utterly wrecking my bike chain.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
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.
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.
You should tell that to the mozilla foundation ...
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
The Mozilla Foundation are trying to solve problems that would be nigh impossible in c++. Not reimplementation for the sake of it.
With all the complaining about "Rust propaganda" I thought someone was advertising steel corrosion products.
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).
I'm not sure about a good programmer, but I could do it in FORTRAN II.
A perfect example of how "popular" does not necessarily mean "good".
Just cruising through this digital world at 33 1/3 rpm...
I don't know anyone using Ada but Ada begat VHDL. Lots of people use VHDL, but I doubt many people post their VHDL on github.
I should use this sig to advertise my book ISBN-13 : 978-1501515132.
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'
Can you elaborate? Not that I doubt you, rather, I'm very curious as to what problems, how, and why.
ADA is used by anyone that likes to have a long list of provable things about the code, like that a function never fails.
"His name was James Damore."
ADA is used by anyone that likes to have a long list of provable things about the code, like that a function never fails.
If you can prove that for any algorithm written in Ada, you've got a Fields medal in your future.
I should use this sig to advertise my book ISBN-13 : 978-1501515132.
You might not have heard it, and I can't speak to Modula 2 but Pascal was absolutely intended to be a "teaching language"
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
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
get a new one asap. a rusty chain wears down sprockets much faster and they are usually more expensive and more difficult to replace.
"It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
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});
Modula 2 probably did the worst of the four, vanishing from sight.
That's not entirely fair, given that Modula 3 is in the top three. Sure, it was given a curly-braces syntax and renamed "Java", but it was basically Modula 3 with a new skin.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Comment removed based on user account deletion
APL. Why settle for a write-only programming language when you can have a write-only programming language that reads like terse mathematical expressions using special characters. That can be overstruck!!!
> 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.
One of the first things that they teach you in Calculus I is the concept of Domain and Range. Actually, if you had the "function machine" concept of New Math, I think it originally gets introduced there.
Most programming languages have only a limited concept of domain and range. Especially domain. Usually, in fact, it's limited to throwing an exception when you do something that violates the range like divide by zero or get a register arithmetic overflow error.
Ada allows you to precisely define datatypes and to give them domains and ranges. So A), you cannot pass a value in meters to a function that operates in inches (the best you can do is input a raw number that the function assumes is in inches). And you cannot pass in a value that is outside of the domain. So if I define a POSITIVE_INTEGER as having a vaue of 1..infinity, then passing zero to a function that takes a POSITIVE_INTEGER is a compile-time error.
As they say, make a system that's idiot-proof and some idiot will prove that it isn't, but Ada puts a lot more protections in at both compile and run times than most languages. It's the opposite extreme from some of the scripting languages where you could spill beer over the keyboard while sneezing and the resulting collection of random characters wouldn't fail until maybe the module got called next Leap Year.
Ada as a practical language suffered from 2 problems, First, it came out too soon. At a rough guess, a really competent Ada machine requires as much horsepower as Java, and when I studied Ada, merely running the compiler could bring an IBM mainframe of the day to its knees. Secondly, as with Java, any language that pushes most of the development cycle into the design and coding phases because until that part's right, absolutely nothing runs has a hard battle going up against the "instant gratification" of today's popular scripting languages, where the bulk of the work tends to be done chasing the run-time errors slowly emerging because the interpreter couldn't catch them in advance and the program "runs" almost as soon as you start coding.
Those the the reasons I like Ada, or rather Ada written in VHDL, what with VHDL being pretty much a superset. It's a superb modeling language. You can easily constrain all state to be what the thing being modeled. But it's a fugly language and only the hard nosed people building chips had the stomach to take it. Which is why we are here today. Pity the people trying to build test benches in Verilog and having to investing in expensive test languages after finding how useless it is. The irony is VHDL is a pretty sucky HDL full of verbosity and boilerplate when you just want to describe binary logic.
I should use this sig to advertise my book ISBN-13 : 978-1501515132.
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
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});
I think there's a Gödel theorem that applies to this scenario.
A republic cannot succeed till it contains a certain body of men imbued with the principles of justice and honour.
A colleague recently told me he wrote APL for a financial services company a long time ago. When they got acquired, it all had to be rewritten, presumably in a more readable language.
Pain is merely failure leaving the body
Maybe Sprockets should use Logo or something friendlier than Rust?
http://www.learnwithsprockets....
Pain is merely failure leaving the body
You might not have heard it, and I can't speak to Modula 2 but Pascal was absolutely intended to be a "teaching language"
Modula-2 was intended to be a systems programming language and Wirth didn't stop there, nor did others.
There was Modula-2+ which was extended to be Modula-3 by some people from DEC; also Wirth developed Oberon, Oberon-2 and from that came Object Pascal and Component Pascal and derivatives like Zonnon.
A lot of that stuff seems to have made its way into Delphi
Pain is merely failure leaving the body
While introducing twenty times the original amount of bugs, I'm sure.
Ezekiel 23:20
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.
So that's what driving the use of Rust. The Rust compiler prevents data races so the design can be far more aggressively concurrent without risking corruption. The compiler also whacks issues like dangling pointers, buffer overflows, null pointer calls etc. by design so it stops a whole raft of common programmer errors. It wouldn't stop a layout engine from suffering application level bugs, like rendering a page badly, getting stuck in a loop, adding stuff to a list without bounds checks etc. so it's not a panacea, but its still better than C/C++.