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.
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.
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...
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.
If CSS counts as a programming language, then I'm pretty sure Markdown is the most popular programming language on Github.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
> 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.
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 /.
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.
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.
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.
Can you elaborate? Not that I doubt you, rather, I'm very curious as to what problems, how, and why.
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.