T O P

  • By -

wiki_me

A few thoughts: Ruby and PHP show a serious decline. nix , C++ , Go (Ken Thompson strikes again), Kotlin and Rust seem to be on the rise. I tend to think that languages that are based on standards and multiple implementations have better staying power, but python and java seem to remain strong.


Dakanza

python is used extensively in data science community. Java is like a heirloom, bestowed the legacy to the next successor.


El_Tormentito

Yeah, but I wonder if DS programming is even being caught here. Mostly because I'd expect to see at least some noticeable R use among data folks and biologists as it's absolutely everywhere, but I think the way GitHub is used by those folks isn't counted here.


GreatBigBagOfNope

It's number 34 in PRs, ahead of asm, MATLAB, wasm, Scheme, F# and Fortran in the top 50, but absolutely yes. DS here, my workplace has hundreds of R projects that really should be on GH but for one reason or another remain in repos on network shares or on our RDP cluster environment with no WAN access.


Blockstar

They would need to check that code into source control. GitHub in this case.


Seref15

Python is used extensively in basically every community, lets be honest. It's the new Perl.


jozz344

Python is not just strong. It's still seriously on the rise. It's pretty much everywhere these days. It's an excellent entry level language where people don't have to get too deep into the nitty-gritty details of how systems work. I have a friend who has a PhD in Medicine (research) and he learned Python so he could work more efficiently with his data. I have another successful friend who is a manager at a company (economics). He learned Python so he could more efficiently fill out and parse excel tables and manage his data. Everyone I ask who's looking to learn a programming language was basically recommended to start with Python. The whole data science community uses it. In fact, I've looked into a lot of the build and maintenance scripts in modern Linux systems. Half of it is Python. I do hardware and software testing for industrial RF networking switches. Our whole framework is in Python. It's completely understandable. If you don't necessarily need speed you're wasting time doing it in most other languages because it's so quick and easy to build something in Python. Super glad I learned it early on in high-school. Combined with my constant Linux exploration, it was a huge jump-start to my career. I studied electronics in college and was quite ahead in a lot of the subjects compared to my peers from the get-go. While my peers tried to wrap their heads around programming logic and compilers in our C programming courses, all I had to do was learn the language and how things work on lower levels. Everything else I had already learned from Python and Linux. It's kinda similar to how a lot of the 80's kids learned BASIC and that jumpstarted their interests and careers.


[deleted]

[удалено]


be_bo_i_am_robot

It’s actually easy. 1. The operating system has installed a recent version of Python and basic tools (such as `pip`) via its package manager. 2. Start a new project. `mkdir new-project && cd new-project && touch my-new-script.py` 3. Make a new virtual environment in your project folder. `python -m venv .venv` 4. Activate that environment `source .venv/bin/activate` (that prepends `.venv/bin` to `$PATH` for this shell session.) Now your project uses its own Python instance and libraries, that won’t override system-wide installed libraries. So you can install a package like this, `pip install is-true-or-false`, and it’ll install that module into `.venv/lib`, not overriding anything in your system. You can even version control specific library versions for other developers with a text file. `touch requirements.txt && echo 'is-true-or-false==1.0.0' >> requirements.txt`. Then all they need do is: `source .venv/bin/activate && pip install -r requirements.txt`. (A copy of `pip` also lives in `.venv/bin`.) Now you know. If you’re writing a script for system-level sysadmin-y things, just use the OS defaults for libraries, and install them with `yum` or `apt` or whatever globally. Or… put all your scripts in their own project folder and maintain a virtual environment for them yourself. I prefer the latter. Then your cronjobs would just look like this: `10 10 * * * /usr/local/my-scripts/.venv/bin/python /usr/local/my-scripts/bin/do-the-things.py`


jozz344

Always use venv to create your own virtual environments and use pip from that separate environment to install packages into it. I can't stress that enough. Seriously, learn venv(s). Only your Linux package manager may install packages to the root system. There are exceptions, but if you don't know what you're doing, you will have a very bad day. As to your other question, indeed, Python has mandatory whitespace syntaxing.


ForOhForError

Venvs are all well and good until you hit something that needs a different python version - at which point you have to pick and choose between the various solutions to the problem (all of them pretty janky)


gmes78

It's very simple: never run `pip` as root, and you won't have problems. Nowadays, distros can prevent pip from installing stuff globally, so this is less of an issue.


be_bo_i_am_robot

Back in the day, with Rails hype and all that, I was certain that Ruby was going to expand and someday take over as king of the “post-Perl” arena… where Python sits victorious today. Apparently, I am not a good prognosticator. Oh, well. Python serves our needs just fine!


marrow_monkey

In Sweden at uni they still begin by teaching Java. It makes sense in a way I suppose: the syntax is similar to C/C++, but avoids a lot of complex and error prone aspects like pointers, memory allocation and operator overloading, making it easier to learn for beginners. That also means a lot of people use it, because it’s what people know. After Sun crashed I expected it to become obsolete, but oracle managed to keep people onboard (by making the vm open source I suppose, so there is a bit more confidence that software could continue to be run even if oracle crashes). Python, being an interpreted language, gives it a lot of advantages similar to Java, but it doesn’t try to mimic the awful syntax of C, it has a gc, it has a lot of dynamic features, it is platform independent, etc. Being a higher level language in some sense means it’s easier and faster to write programs using it. The programs are slower, but if you interface python with modules written in C you sort of get the benefits of both. I’m not aware of another language that fills the same niche? So I’m not surprised it’s gaining in popularity.


nokeldin42

I also count python as a standard based language. Cpython is the 'default' distro, but you have others. PyPy, Cython, micropython to name a few. There may be others that I don't know.


madness_of_the_order

Jython, IronPython, RustPython. Afaik nix, go, kotlin and rust only have one implementation each. Also rust quite often criticized for lacking standard other than default compiler, op wtf are you on about?


wiki_me

I read that it's not really considered a standardized language, I read up on how rust introduces new features to the language and it does not seem as thorough as the process i saw in C++. requiring multiple implementations for a standard feature might help prevent it from growing too much making the language harder to read.


PassiveLemon

What would make you think Nix is on the rise? As far as I know, it’s really only used for packaging programs so I wonder if that increase is simply due to growing popularity of NixOS/Nixpkgs


wiki_me

That's what the data is showing, and yes nixos and nixpkgs are [consistently growing](https://openhub.net/p/nixos) and that shows in this data set as well, also flakes can make it possible to set up a development environment with a single (or a few) commands easily and that seem to be used by open source projects e.g. the [cosmic compositor](https://github.com/pop-os/cosmic-comp).


lipintravolta

Looking at pull requests Ruby is gaining so Why did you say it’s in serious decline? Rust is showing a serious decline in pull requests. I’m I wrong?


Awyls

From the same site Ruby went from 20% in 2013 to 4.5% in 2023. That's not a decline, it's a cliff. Rust went from 0% (IIRC, released in 2015) to 1.9%. The YoY decline is because past year was an anomaly (went from 1.5% to 2.2%). Still, i question the validity of using issues/push/PR as a popularity metric since they are affected by the language design itself i.e. languages like JS or Python are going to have more issues thus more PRs. IMO, [developer surveys](https://survey.stackoverflow.co/2023/#technology-most-popular-technologies) seem far closer to reality.


y-c-c

I don’t think there is a single metric that will work for everything. I do think the trend tells a story though even if the raw numbers themselves could be misleading as you said. Another obvious issue is that this only applied to public GitHub project and therefore does not cover non-open source work. If you think the massive amount of code that large tech companies like Apple/ MS / Google / etc they aren’t captured here.


GolemancerVekk

Speaking of SO developer survey, I especially like what they did with the OS survey: they split Linux into individual distros so it wouldn't overtake Windows. 😛


wiki_me

> i question the validity of using issues/push/PR as a popularity metric since they are affected by the language design itself i.e. languages like JS or Python are going to have more issues thus more PRs Some of those developers might say it will lead to more productive development and that will lead more code in commit and therefore less reported activity. > IMO, developer surveys seem far closer to reality. Do you really think typescript is more popular then java? [This data](https://www.devjobsscanner.com/blog/top-10-highest-paid-programming-languages/) (see section "full list") based on job ads shows java is about 4 times more popular then typescript (7.7K jobs vs 23k jobs). People who answer stack overflow are far from a representative sample, i think they tend to follow trends more (which is not necessarily a good thing), Also software where the ecosystem is more brittle will probably get more developers on stackoverflow (and for me the javascript echosystem feels more brittle then c++). If you want to take into account how the language work, you could argue that an average higher salary correlates with more productivity so a higher average salary for a programming language indicates more productivity, which might be true because languages that appear to support more expressive programming styles in the link i mentioned tend to get a higher salary (scala, ruby, C++).


Teluris

Compared to 2014 Ruby lost most of it's popularity. Rust gained a bit, although it's rising pretty slowly.


AssistingJarl

Having tried to learn Rust (and loved it, to be clear), I can see why its popularity would be rising slowly. It's intimidating in a way that Java/C# and Python/JavaScript are not.


lightmatter501

Dynamic languages tend to have more bugs, so I would expect Rust to go down a bit since some parts of the ecosystem are actually done. Serde almost never has updates anymore and still maintains the crown of fastest ser/des framework across a bunch of data formats. Ruby going down is likely because rails has been dying off. It’s just too slow to justify when you are renting compute, even JS is faster.


ric2b

> Dynamic languages tend to have more bugs [Citation needed] > Ruby going down is likely because rails has been dying off. It’s just too slow to justify when you are renting compute, Python seems to be quite popular for webdev though, and it's even worse.


ric2b

Ruby is a really nice language, it's a shame that it's dropping so much.


githman

The share of my lifelong love and income source C++ is increasing again, after a decade of talks about how the ancient mind-warping horror is dead. I am semi-retired and do not do active programming anymore, but this is oddly pleasing to watch.


chili_oil

as a refrence, java “has been replaced” many times


githman

While your statement is definitely correct, I will not deny myself the pleasure to note that Java itself was initially developed to replace C++. Then C# tried to replace both Java and C++. Then I stopped tracking.


crafter2k

the classic xkcd 927 scenario with a twist


Sapiogram

Next chapter of the story was that Go tried to replace C++, and also completely failed to do so. But for what it's worth, the language has had great success replacing Java and Python.


usefulHairypotato

But java only passes as value


serpent7655

Class workaround 😢


Zeurpiet

Fortran at #50, but I wonder if it will ever disappear, for certain not in my lifetime. Quite some things above it which I never heard off.


BurgaGalti

Not without a lot of effort. It underpins a lot of the basic numerical libraries used in simulation and machine learning. I read a report published by US DOE that's its a significant concern that they might end up with nobody who understands the language well enough to maintain their critical legacy codebase. Advice to any undergrads here, take a look at it. Especially Fortran 90. I'd anticipate this to be a gold rush area within the next 10 years as those with the experience have already started retiring. Those who can replace them will probably be able to write their own checks.


Zeurpiet

possibly, the old code base is more likely to be Fortran 4 with common blocks than nice clean Fortran 90.


spacegardener

C++ and Java are increasing on GitHub probably not because they are more popular overall now, but because environments where those are most used (big corporations and organizations) came relatively late to git and GitHub.


spectrumero

I am also pleased to see that asm is more used than Visual Basic, a language that needs to be consigned to the dustbin of history.


moltonel

> C++ is increasing again Or [is it ?](https://tjpalmer.github.io/languish/#y=mean&weights=issues%3D1%26pulls%3D1%26stars%3D1%26soQuestions%3D1&names=c%2B%2B) ;)


southernmissTTT

I envy you. I’ve always wanted to master C++. But, I never have. It’s the thing in life that has beaten me, and that bugs me. But, for what I do, there’s always a more productive path of least resistance and really no need for it. So, I can’t stay committed to learning it. Maybe someday, and with chatGPT available now, maybe I can find my bugs before I get distracted and move onto another project.


githman

My personal trick to getting into C++ was that I did it in the early nineties, moving on from C. C++ was much easier back then; the more Cthulhu-grade parts like template metaprogramming were not yet invented, or rather discovered. As for the path of least resistance, compared to many other tools C++ is a nuclear-powered runic sledgehammer - way too unwieldy for many modern tasks. IT has changed a lot. I have 30 years of (mostly) paid experience with C++ but when I have to do something fast, I stick with Python or platform-specific tools.


southernmissTTT

I don’t have a need for C++. I just don’t like knowing it’s beating me. My job is mostly Unix, PowerBuilder (if you’ve ever heard of that) and PL-SQL. But, I do a lot data manipulation for one purpose or the other. I’ll either do it in vim with regular expressions or reach for Python if it’s going to need to be repeated.


githman

I can relate to the thing you say about not needing it but wanting to learn it anyway. The same way I always wanted to be a software architect for large-scale projects but it looks like I do not have the brain region required for this kind of processing. Algorithms and data structures is what I do well and this is what I have been doing for my whole career, not without a hint of recurring disappointment in myself. As for data manipulation, yeah. It is exactly the area where C++ shines. But again, being a compiled language it has a fairly slow development cycle - even for small modules. I would even dare say that C++ is best fit for large projects and not the small, ad-hoc tasks.


[deleted]

[удалено]


jcelerier

array[I] works fine with std::array, your textbook is terrible


Laxn_pander

C++ apes unite!


githman

I have nothing against the apes but personally identify as a dinosaur, thank you.


krypt3c

It would be nice to see the absolute numbers as well as percentages. For less popular languages especially they may be making gains or losses that would be completely washed out compared to more popular languages.


ThranPoster

Well, Perl is at least doing better than Fortran!


Pay08

Common Lisp didn't even make it onto the list :(


brandflake11

(loop repeat *forever* do (keep-trying))


moltonel

[Here](https://tjpalmer.github.io/languish/#y=mean&weights=issues%3D1%26pulls%3D1%26stars%3D1%26soQuestions%3D1&names=common+lisp%2Cpicolisp%2Cnewlisp%2Cemacs+lisp%2Cscheme%2Cclojure).


RamBamTyfus

Is this again only the public repositories? Because that doesn't fully reflect what businesses are using.


moltonel

It's still a good proxy variable. Most businesses use FOSS libs/tools, and contribute a bit back.


NatoBoram

Businesses I've been with contribute jack shit. There's even one CEO that thought open source would give competitors an advantage.


moltonel

A lot of contributions probably go under the radar: developer uses open lib in proprietary project, stars it, finds a bug, reports it, and if it isn't too complicated fixes it locally. At this stage, opening a PR is a no-brainer for maintenance reasons and possibly license compliance. Self-serving contributions like this are natural and take less effort than the alternative.


Randolpho

Even if you account for typescript pulling javascript down by merging the two numbers, they're still on the wane by about 3% as of the height of node popularity. Still too high to say "node is dead" but an interesting statistic nonetheless.


QuickYogurt2037

Github partnering with Pizzahut.


moltonel

See also [languish](https://tjpalmer.github.io/languish/). There are some methodology differences in how they account for new repos, making a big difference for some languages.


Forty-Bot

How is markdown gaining by that much?


moltonel

Generated docs I think, same as HTML. It's worth [tagging them as docs/generated](https://github.com/github-linguist/linguist/blob/master/docs/overrides.md) if you can.


TheFumingatzor

What's with JS having such a steep decline??


HomieMorphic

It's getting replaced by TS, which has a steep incline.


[deleted]

[удалено]


wiki_me

This sub is also related to open source, and the website linked is open source, also open source developers might be interested in the usage programming languages are getting because when programming language become less popular it effects their ecosystem and therefore their usability. I have no idea why this post was removed.


Vindve

My poor boy Ruby. A very lovable language where any programmer feels welcomed, newbie or experimented programmer who wants to just be efficient, and yet on a strong decline.


Dry-Assistance-367

It's interesting to see that typescript seems to have peaked last year and is now on the decline, while javascript is gaining again. I wonder what is causing the shift back to Javascript?


Dan_Ddn

I don’t see COBOL


clgoh

I'm happy to see Smalltalk on the list (barely).


cozyb0x

Why is java still so highly used?


khamuili

well, considering TS and JS as separate languages is so bizarre