
The State of the Octoverse: top programming languages of 2018 - sahin-boydas
https://blog.github.com/2018-11-15-state-of-the-octoverse-top-programming-languages/
======
irrational
As long as JavaScript is the only language that runs in the browser, I expect
it to stay at the top. Not necessarily because its the best or the favorite
language, but because it is the only language. It is like having a chart of
how many women versus men give birth. Shockingly women are still at the top.

~~~
mepian
Are you aware that one language can be compiled to another?

~~~
krapp
When a language is compiled to javascript, it's still javascript that's
running in the browser.

~~~
mepian
Yes, but that's not the point: you don't have to write JavaScript yourself.

~~~
coldtea
No, but you still have to suffer the fact that the language you do write in is
translated to JS, and doesn't have first class browser support.

~~~
mepian
This doesn't seem to deter the users of TypeScript, one of the languages that
made it to this top 10 ranking.

~~~
coldtea
That's because it was created to keep all the semantics and underlying
behavior the same.

So this is not like using Python to JS, or Haskell to JS, or whatever, where
there are even types (e.g. any not float numerical type) that are not
supported directly by the underlying engine.

------
habitue
I wonder if something got lost in translation and the "thread safety" section
should have been called "type safety"? It seems to be what the paragraph is
talking about (though in the case of rust you could say the static typing
lends it a measure of thread safety)

~~~
tyingq
I agree. That paragraph is odd. They seem to be trying to use the concepts
interchangeably.

------
ken
> Python’s versatility and interoperability are also impressive; for example,
> developers can directly call Python APIs from Swift.

Well, AFAICT, there's a branch of the compiler/stdlib with an "early stage
research project" that lets you call Python from Swift. It's "hard-coded" to
use an 8-year-old version of Python, and they say supporting anything newer
would be "non-trivial".

It's a pet peeve of mine to see people exaggerate the capabilities of software
systems, especially already-popular ones that don't need free PR.

~~~
ramenmeal
And that seems like a feature of Swift, not Python.

------
cronix
I think some of these stats are a bit misleading when it comes to js, and how
GH calculates it. For instance, my project is mostly php (Laravel). It uses
webpack to compile a few assets, really... a FEW (Vue + a few vue components +
my custom code). However, those few dependencies pull in hundreds of other
dependencies, which pull in a ton more and on it goes. When all is said and
done and the js (my actual code) gets compiled, it's only like 50k of js, yet
github classifies my project as "javascript" purely due to the number of
dependencies, when in reality it's probably more like 3-5% of the entire
codebase in terms of what is actually getting executed. It would be nice if
you could tell GH which dir to look at to judge. For instance (with laravel)
the compiled assets are placed in /public while the uncompiled assets are in
/resources. I'd like it to only count JS located in /public, as that's
accurate for my app in terms of js usage.

~~~
kibwen
Last I checked this should be possible with some contortions on your end;
Linguist (the tool GitHub uses to detect repo language) has some hardcoded
paths which it will ignore for the purpose of counting lines of code. See this
issue where Servo managed to convince GitHub to count it as a Rust project
rather than an HTML project:
[https://github.com/servo/servo/issues/6332](https://github.com/servo/servo/issues/6332)

------
sixhobbits
Interesting data but why did they show the breakdown of popularity by
geographic area as a line graph and label it as a trend? It makes it look like
eg python is losing popularity at first glance but the lines are actually
meaningless

------
empath75
Every time I see something like this I’m reminded how easy it is to get into a
bubble in this industry. If you were going by hacker news, you’d think Go and
Rust would be way higher ranked.

~~~
cmyr
Well they're both on the 'fastest growing'[1] list, which is about what I'd
expect.

1: [https://blog.github.com/2018-11-15-state-of-the-octoverse-
to...](https://blog.github.com/2018-11-15-state-of-the-octoverse-top-
programming-languages/#fastest-growing-languages-by-contributors-as-of-
september-30-2018)

------
brian_spiering
The chosen visualizations are not helpful. They look like slides from a slide
deck for executives. The green blobs in the corners are not related to to the
data. Geographic data should be shown on a map.

~~~
greggyb
I actually would object that geographic data should rarely be shown on a map.

A data visualization should be chosen such that it helps the viewer to better
understand the information contained within.

Maps are great at showing some very specific types of information, namely
boundaries around areas and the positions of those bounded areas relative to
one another. If you have information that is intimately related to those
boundaries and areas, then by all means plot the information on a picture of
those.

The geographical regions in the article serve only as categories. There is no
intent to educate or present the relative positions of those regions to one
another.

You criticize the extraneous green blobs. What benefit and clarity is gained
by adding other blobs (shapes on a map) and divorcing the relative ranking
from an easy-to-interpret linear scale? How does that aid in understanding the
relative popularity of languages?

~~~
vharuck
Maps can serve as a chart of data relations _and /or_ a listing for easy
lookup. But, yeah, it's disappointing most people dislike non-map charts with
geographic categories.

------
Illniyar
"Rust and Kotlin are also on the rise, both of which find built-in audiences
in JavaScript and Java, respectively."

Is this a typo? Why is rust drawing an audience from javascript programmers? I
would imagine c and c++ to have more synergy here.

~~~
steveklabnik
We're seeing a lot of interest for two reasons:

* WebAssembly

* "I've always wanted to try something lower-level"

That said, this reads like a typo to me, I think it should be TypeScript.

~~~
zebraflask
Maybe add TS into the mix, but I doubt it's a typo. TS is just a subset of JS.

I'm a JS developer and learning Rust is one of my side projects. I've built a
few hobby projects that combine both. They work well together and Rust is a
much friendlier language to work with than C/C++ (IMHO).

~~~
steveklabnik
The reason that it would have an “in-built audience” is due to the superset
relationship, that’s why I think it is.

~~~
zebraflask
For TS? I actually wonder how much of the TS stat is due to Angular. I only
picked up TS because it's required to use Angular. Otherwise, I probably
wouldn't have bothered. TS is fine, but I have yet to see any real benefit
compared to plain JS.

Rust going up in popularity is pretty cool, though. I can think of production
cases I'd use it for on the server side.

~~~
steveklabnik
Since all JS is TS, it's very easy to transition to. Similar to how Kotlin
runs on the JVM, and is sort of, if you squint, just a nicer syntax for Java.

Anyway, who knows, it's not really _that_ important.

Glad you have some use-cases in mind for Rust :). If you ever need anything,
feel free to reach out!

------
tines
> Rust and Kotlin are also on the rise, both of which find built-in audiences
> in JavaScript and Java, respectively.

I would have said C and C++ for Rust. Are Java developers actually even in the
same universe as Rust?

~~~
klez
Rust -> JavaScript

Kotlin -> Java

Which is still somewhat weird and they were probably thinking about
TypeScript, not Rust

~~~
ShamelessC
I believe there was a typo responsible for this confusion.

------
sridca
What about languages like Haskell, which are also growing nowadays?

~~~
3rdAccount
Growing sure, but still extremely niche. I think a recent report showed ~15
open jobs worldwide. A lot of Haskell users learn it for intellectual
curiosity rather than any expectation of actually using it at work.

~~~
bcherny
I get what you mean, but I bet it’s more than 15 :) Hell, I bet just FB has
more Haskell openings than that.

------
keldaris
Anyone have any insight on the relative popularity of C in Asia?

------
cortesi
I find the rank graphs in this post a bit unsatisfying - I keep wanting to see
what the relative magnitudes are. I've been experimenting with a visualisation
that combines rank and magnitude. It needs another few iterations but I think
the direction is promising:

[https://netograph.io/data/stats/connections?q=all](https://netograph.io/data/stats/connections?q=all)

------
luord
> Type Safety (?) [Used as a reason for current popularity]

This is odd, specially coming from GitHub. Not only does static typing not
always guarantee type safety nor dynamic typing always ensures a lack of it
(python, for instance, is strongly typed) but both of them have existed for
over fifty years.

------
tyingq
The PHP plateau, then decline in just the last 2 years in interesting.

~~~
toyg
tbh I'm surprised it took this long, PHP has been unfashionable for a _very_
long time now. I suspect some of it might be because Django has become "the
new wordpress" in many ways, and some because a lot of PHP users are one-man-
bands who could already do JS and so find it natural to move onto Node.

~~~
pjmlp
The large majority of ISPs still only does Perl and PHP on their classical
offerings, and I know which of the two I would rather use.

------
Illniyar
CMake is on the rise? Anyone has an explanation for that?

Edit: I mean it's an old build system for C. Is there some new developments
that would cause it to rise in popularity?

~~~
chubot
It seems like the most popular option for portable C and C+++ builds. It seems
to have solved the nasty Windows build problem the best, as far as I can tell.

Autoconf is another option, but it doesn't support windows. I think people
perceive CMake is old and gross, but autoconf is older and grosser as far as I
can tell.

For example, LLVM now uses CMake. It used to use autoconf.

I don't know of any new developments, but I think people do want to get off of
autoconf.

------
mcnichol
Top Programming Languages.....bit of a title there eh

------
sifoobar
I know for sure without looking that there's less C than could have been and
no Snigl [0] in there, since I recently packed up my stuff and moved to
GitLab. For my needs, the platform is fine; and they embrace remote workers,
which I think is great; the only thing it's missing is users. As it stands, 1
star on GitLab is worth a thousand on the hub.

[https://gitlab.com/sifoo/snigl](https://gitlab.com/sifoo/snigl)

Edit: Down voting without commenting obviously makes this a worse place for
discussions. May I suggest stopping for a second and reflecting on your
motivations?

~~~
smudgymcscmudge
GitHub also embraces remote work. About 2/3 of GitHub is remote.

I'm not saying move back to GitHub because of that, but it's one of the many
things that GitHub and GitLab share in common.

~~~
sifoobar
That's cool, didn't know. We need more of that, some people just don't
function very well in office environments and the talent is often somewhere
else.

Right now though, everything is up in the air when it comes to GitHub. I would
be very surprised if it just keeps humming along under Microsoft's weight.

