Programming languages ranked by popularity in privacy software
I was bored, so I compiled a list of 77 of my favorite open-source privacy-focused software. This ranges from Android apps to desktop apps to websites to operating systems. I scraped the programming languages used for each one from their respective repositories, and created a simple scoring system to score each programming language.
Obviously there is some bias, since Kotlin is very popular for Android apps and not much else, and it's not an exhaustive list, so some data might be off, but it was still fun to make! Just wanted to share it with all of you, in case anyone else finds it interesting.
The full ranking
Full ranking
C++
C
Kotlin
Java
JavaScript
TypeScript
Python
Shell
C#
Dart
PHP
Ruby
HTML
Makefile
Go
QML
Pascal
CSS
Clojure
Blade
Crystal
Batchfile
Swift
Emacs Lisp
Svelte
Rust
CMake
Haskell
Lua
Vue
Roff
XSLT
Assembly
NSIS
Objective-C
SCSS
Less
PLpgSQL
Objective-C++
Inno Setup
Meson
WebAssembly
ASL
PowerShell
Rich Text Format
GLSL
Common Lisp
Haml
Scheme
Dockerfile
Perl
AIDL
M4
Mustache
D
MDX
SourcePawn
M
Pug
Lex
EJS
Scores for each programming language
Language scores
C++: 13070
C: 11734
Kotlin: 7195
Java: 6727
JavaScript: 5356
TypeScript: 5002
Python: 4250
Shell: 1903
C#: 1873
Dart: 1872
PHP: 1844
Ruby: 1499
HTML: 1389
Makefile: 990
Go: 975
QML: 955
Pascal: 917
CSS: 888
Clojure: 878
Blade: 832
Crystal: 738
Batchfile: 708
Swift: 577
Emacs Lisp: 556
Svelte: 366
Rust: 351
CMake: 342
Haskell: 326
Lua: 300
Vue: 288
Roff: 268
XSLT: 176
Assembly: 167
NSIS: 130
Objective-C: 128
SCSS: 90
Less: 77
PLpgSQL: 66
Objective-C++: 61
Inno Setup: 59
Meson: 41
WebAssembly: 25
ASL: 22
PowerShell: 21
Rich Text Format: 21
GLSL: 18
Common Lisp: 16
Haml: 14
Scheme: 13
Dockerfile: 12
Perl: 12
AIDL: 11
M4: 7
Mustache: 7
D: 5
MDX: 5
SourcePawn: 2
M: 2
Pug: 2
Lex: 1
EJS: 1
The original data
(NOTE: I am NOT looking for criticism on any choices made here)
The only program here I know is SearXNG. My experience with GUI Python apps was pretty bad but I guess it makes it easier for devs to make new apps so it has the right to exist as long as it's not invasive or used in OS components.
python makes solid backends - especially ones that deal with things like 3rd party APIs and data munging, which makes it a pretty good choice for a lot of web-based privacy apps like alternative front-ends
performance is basically irrelevant… when you’re a professional software engineer, ease of maintenance - adding new features, bug fixes, keeping bugs out of the code base - is paramount… you can always throw more servers at it, because they’re cheap compared to labour and mistakes
performance of the underlying programming language is basically the least of our concerns
we don’t get new computers because things become less efficient - we get new computers because we demand new features and software gets more complex… e-waste isn’t created because software is using python - e-waste is created because consumers demand fancy animations and gestures and things that programmers have to add, and it’s inefficient to pay a human to write those things in a low level language
This is 100% not true. Most users don't care about fancy animations and stuff like that. I hope you will understand it at some point and if not, I just hope you stop creating software and spreading these ridiculous Big Tech inspired ideas.
To be honest, I've seen a lot of code in my line of work, and my experience says that if the speed of a language is your concern, you're either in high-frequency trading or working on some real-time use case, or you're wrong.
Most time you perceive as lag as a user comes from either atrocious programming, or network lag, or a combination of the two. A decently, not even well, but decently written Python vs Assembly subroutine will have differences in execution time measured in nanoseconds. Network calls usually measure in milliseconds, and something like a badly written DB query that reads a ton of data from a disk will do seconds or worse.
My point is, I'll take a not-badly written Python program over someone claiming to have chosen C/C++ for the blazing fast speed in a user facing application, when half of CVEs ever have been submitted over memory safety problems in C/C++.