RedMonk Identifies 2017's Most Popular Languages: JavaScript, Java, And Python (redmonk.com) 125
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.
Re: I thought it was Rust. (Score:3)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
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!!!
Re: (Score:2)
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.
Re: I thought it was Rust. (Score:2)
Re: (Score:2)
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.
Re:I thought it was Rust. (Score:4, Insightful)
Re: (Score:3)
You should tell that to the mozilla foundation ...
Re: I thought it was Rust. (Score:3)
Re: (Score:3)
Can you elaborate? Not that I doubt you, rather, I'm very curious as to what problems, how, and why.
Re: (Score:2)
So that's what driving the use of Rust. The Rust compiler prevents data rac
Re: (Score:2)
Honestly, the only place I hear about Rust is people complaining about it on /..
Re: (Score:2)
Re: (Score:2)
get a new one asap. a rusty chain wears down sprockets much faster and they are usually more expensive and more difficult to replace.
Re: (Score:2)
Maybe Sprockets should use Logo or something friendlier than Rust?
http://www.learnwithsprockets.... [learnwithsprockets.com]
Re: (Score:2)
most popular (Score:1)
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!
Re: (Score:1)
Re: (Score:2)
I am not a BASIC hater by any stretch, but library calls should use a unified syntax.
Not requiring ()'s for procedure calls (functions that return no value) is fine, and as far as I am concerned is actually quite beneficial, but it should also apply to the users own procedures because it is also beneficial there for all the same reasons.
SCREEN 0
LOCATE 25, 1
PRINT SIGNATURE$
Counts sharing, not use. Javascript always shared (Score:5, Informative)
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.
Re: (Score:3)
Good point. And also: (Score:2)
Because they weren't written in just ten days (Score:5, Insightful)
> 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.
Re: (Score:2)
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.
To be fair, in most other languages, 99999999999999999999 == 7766279631452241919, or maybe even == 1661992959. No matter what language you're using, you have to be aware of when and how your results may overflow.
Also, if you do calculations using exact integer values as inputs, assuming you avoid overflow, you can directly compare floating point representations as long as you use operations that stay strictly in the integer subset (such as +, -, *, but not /).
Re:Because they weren't written in just ten days (Score:4, Informative)
Which other language, exactly?
Let's see : ...
Not in Ruby.
Not in Python.
Not in Java (compiler would complain, needs to be BigInteger).
Not in C# (same)
Sorry, JS is all alone on the shittyness podium.
Re: (Score:2)
Java would only complain if you used integer literals that big, but such literals are usually unrealistic. Most often, problems like this happen because of results of calculations.
The fact is, Java would silently overflow computing an integer value of 99999999999999999999 unless you use BigIntegers or the equally awkward new APIs such as Math.addExact().
C# would also overflow unless you compiled with non-default settings.
JavaScript is actually superior in those cases because the floating point result would
Re: (Score:3)
For quickie scripts, vs applications (Score:2)
> 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 task
Re: (Score:2)
Re: (Score:2)
Re:Counts sharing, not use. Javascript always shar (Score:4, Insightful)
You won't find Linux or Apache on Github, for example...
Linux kernel [github.com]
Apache HTTPD Server [github.com]
I'm not saying you're wrong, but your examples are wrong.
Re: (Score:2)
I think he meant the thousands of Java projects hosted by http://apache.org/ [apache.org]
Counting pull requests, developent. A copy yes (Score:2)
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).
That's how these things always go (Score:5, Insightful)
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:3)
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
Re: (Score:3)
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 pr
Re: This calls for ballot stuffing (Score:1)
Re: (Score:2)
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
CSS is a language? (Score:2)
Re: (Score:2)
Re: (Score:3)
If CSS counts as a programming language, then I'm pretty sure Markdown is the most popular programming language on Github.
And the most Popular Hamburgers Worldwide (Score:5, Interesting)
Re: And the most Popular Hamburgers Worldwide (Score:2)
Yes it does, because better is an overall rating, taste is a singular attribute so is cost, ease, speed, consistency
Re: And the most Popular Hamburgers Worldwide (Score:1)
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
Re:java (Score:5, Insightful)
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.
Re: (Score:2)
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? [blogspot.com]
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.
Re: java (Score:1)
Re: (Score:1)
Re: (Score:2)
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 brok
Re: (Score:2)
This is getting old (Score:3)
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 /.
Re: (Score:3)
Re: (Score:2)
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 wa
Re: (Score:1)
Re: (Score:2)
Popular?? (Score:2, Insightful)
I do JavaScript development. That does not necessarily mean I like JavaScript
Re: (Score:2)
I do JavaScript development. That does not necessarily mean I like JavaScript
Who said it means folks like you like it?
This is what it means:
It means folks like you help make it more popular. Do you deny this?
Python (Score:5, Insightful)
Re: (Score:2)
+1.
Coming from Ruby, I have a few WTF moments with Python, but mostly, the syntax is acceptable and it's really easy to get shit done with Python.
There are so many cool libraries for everything, programming often feels like cheating now.
Re: (Score:2)
There is a lot to like about pretty much any language.
Err, have you ever worked with PICK Basic?
Re: Python (Score:1)
Perfect example (Score:2)
A perfect example of how "popular" does not necessarily mean "good".
Nonsense (Score:2)
Re: Trump (Score:1)