My Notes On Emacs & Lisp In The Stack Overflow Developers Survey 2024 (August, 2024)

So there's this super hacky makeshift collection of Julia[1] scripts I once wrote for work to generate reports on the whereabouts of European PHP and Perl developers based on the annual Stack Overflow Developers Survey. I sometimes use these numbers to justify business decisions when it comes to tooling and framework choices: "$thing is known by a lot of developers in our target group for many years" is usually a great point to make to convince management to buy something nice[2]. I'd also like to be in the known what hyped "next big thing" I deliberately choose to ignore this year (while feeling relieved that the PHP and Perl crowd usually matches this sentiment as well!).

Having this loose collection of scripts laying around, I thought it'd be fun to modify some of them so they spew out numbers on what the Emacs and Lisp crowd is up to according to this survey. This post will be a collection of tables with a few sparse remarks of things I found interesting.

With a total of

wc -l survey_results_public.csv
65438 survey_results_public.csv

65438 respondents we've had

xsv search -s NEWCollabToolsHaveWorkedWith 'Emacs' survey_results_public.csv | sed -n '1d;p' | wc -l
2446

2446 (not counting the header row xsv outputs hence the sed part) respondents that stated that they have worked with Emacs, and:

xsv search -s LanguageHaveWorkedWith 'Lisp' survey_results_public.csv | sed -n '1d;p' | wc -l
889

889 parenthesis-enjoyers, that have stated they have worked with Lisp.

Disclaimer: Stack Overflow seems to purge write-in answers from the dataset; I would've assumed at least some write-in mentioned of Guix or Org-Mode to occur in the dataset.

In What Fields is Emacs Used?

According to this survey Emacs is most popular in academia and science, with Scientist being the only occupation where Emacs scores two-digits. I personally belong to groups (something along the lines of "fullstack developer" and "engineering manager" would fit the bill) where Emacs is seemingly not too popular:

xsv search -s DevType "Developer, full-stack" survey_results_public.csv | xsv search -s LanguageHaveWorkedWith "PHP" | xsv search -s NEWCollabToolsHaveWorkedWith "Emacs" | sed -n '1d;p' | wc -l
151

as there are only 151 other respondents in this survey who are full-stack developers that work with PHP and use Emacs to do that. This matches my experience at work, where I am the sole Emacs user.

DevType Emacs Users All Respondents Emacs/All (%)
Engineer, site reliability 16 310 5.16%
Data scientist or machine learning specialist 48 1024 4.69%
Engineering manager 50 1275 3.92%
Developer, game or graphics 32 706 4.53%
Developer, AI 30 543 5.52%
Cloud infrastructure engineer 31 634 4.89%
Developer, front-end 38 3349 1.13%
Hardware Engineer 12 200 6.0%
Research and Development role 80 943 8.48%
Data or business analyst 18 523 3.44%
Developer, mobile 36 2021 1.78%
Developer, back-end 453 9928 4.56%
Designer 5 182 2.75%
Developer, embedded applications or devices 101 1623 6.22%
Blockchain 14 235 5.96%
Developer Advocate 3 105 2.86%
Data engineer 42 1118 3.76%
Academic researcher 106 1238 8.56%
Scientist 50 332 15.06%
Project manager 17 418 4.07%
Student 228 5102 4.47%
DevOps specialist 44 1019 4.32%
Developer, full-stack 528 18260 2.89%
Developer Experience 11 224 4.91%
Other (please specify): 156 2458 6.35%
Security professional 15 356 4.21%
System administrator 31 552 5.62%
Database administrator 7 171 4.09%
Marketing or sales professional 3 96 3.12%
Developer, QA or test 12 525 2.29%
Product manager 13 290 4.48%
Educator 28 355 7.89%
Senior Executive (C-Suite, VP, etc.) 50 837 5.97%
Developer, desktop or enterprise applications 104 2493 4.17%

Don't blink

Even in these three fields where Emacs has a decent share, Visual Studio Code is leading the charts as well. It's not by the same margin the general survey results suggest, having almost 74% of VSCode usage for all respondents[3] where we're at a range from 50-60% here.. With Chrome (as in the web browser) having a >60% market share[4] and VSCode (which uses Electron, which itself embeds Chromium) having as big of a marketshare in the developers survey, we've been heading towards a Blink monoculture throughout the last few years.

Editor Academic researcher Scientist Educator
Android Studio 117 (9.45%) 23 (6.93%) 61 (17.18%)
BBEdit 10 (0.81%) 8 (2.41%) 6 (1.69%)
CLion 93 (7.51%) 18 (5.42%) 18 (5.07%)
Code::Blocks 30 (2.42%) 14 (4.22%) 19 (5.35%)
DataGrip 26 (2.1%) 6 (1.81%) 8 (2.25%)
Eclipse 93 (7.51%) 24 (7.23%) 46 (12.96%)
Emacs 106 (8.56%) 50 (15.06%) 28 (7.89%)
Fleet 17 (1.37%) 1 (0.3%) 7 (1.97%)
Geany 17 (1.37%) 6 (1.81%) 11 (3.1%)
Goland 15 (1.21%) 1 (0.3%) 3 (0.85%)
Helix 28 (2.26%) 8 (2.41%) 8 (2.25%)
IPython 195 (15.75%) 71 (21.39%) 25 (7.04%)
IntelliJ IDEA 179 (14.46%) 29 (8.73%) 73 (20.56%)
Jupyter Notebook/JupyterLab 438 (35.38%) 118 (35.54%) 68 (19.15%)
Kate 41 (3.31%) 13 (3.92%) 11 (3.1%)
NA 88 (7.11%) 23 (6.93%) 27 (7.61%)
Nano 125 (10.1%) 32 (9.64%) 41 (11.55%)
Neovim 202 (16.32%) 42 (12.65%) 44 (12.39%)
Netbeans 23 (1.86%) 12 (3.61%) 22 (6.2%)
Notepad++ 205 (16.56%) 62 (18.67%) 80 (22.54%)
PhpStorm 30 (2.42%) 5 (1.51%) 16 (4.51%)
PyCharm 233 (18.82%) 47 (14.16%) 55 (15.49%)
Qt Creator 49 (3.96%) 13 (3.92%) 10 (2.82%)
RStudio 201 (16.24%) 65 (19.58%) 28 (7.89%)
Rad Studio (Delphi, C++ Builder) 10 (0.81%) 4 (1.2%) 6 (1.69%)
Rider 25 (2.02%) 2 (0.6%) 17 (4.79%)
RubyMine 11 (0.89%) 1 (0.3%) 1 (0.28%)
Spacemacs 5 (0.4%) 2 (0.6%) 3 (0.85%)
Spyder 70 (5.65%) 34 (10.24%) 10 (2.82%)
Sublime Text 123 (9.94%) 24 (7.23%) 33 (9.3%)
VSCodium 79 (6.38%) 16 (4.82%) 20 (5.63%)
Vim 352 (28.43%) 86 (25.9%) 69 (19.44%)
Visual Studio 179 (14.46%) 47 (14.16%) 74 (20.85%)
Visual Studio Code 759 (61.31%) 174 (52.41%) 235 (66.2%)
WebStorm 39 (3.15%) 6 (1.81%) 15 (4.23%)
Xcode 51 (4.12%) 11 (3.31%) 24 (6.76%)

How Many People Use Emacs Alongside VSCode?

As the survey offered multiple choice selections, we may want to crunch numbers on how many Emacs users also use VSCode:

xsv search -s NEWCollabToolsHaveWorkedWith "Emacs" survey_results_public.csv | xsv search -s NEWCollabToolsHaveWorkedWith "Visual Studio Code" | sed -n '1d;p' | wc -l
1341
xsv search -s NEWCollabToolsHaveWorkedWith "Emacs" survey_results_public.csv | sed -n '1d;p' | wc -l
2446

1341 out of 2446 respondents, which should be around 54% if I did the right math in my head.

Popular Editors Amongst Lisp And Clojure Developers

Let's' aggregate the Editor choices for developers who either write Lisp or Clojure amongst other languages. Surprisingly here, VSCode leads, but by a unsurpisingly (way) smaller margin:

Editor Count Percentage
Visual Studio Code 781 12.26%
Emacs 661 10.38%
Vim 487 7.65%
IntelliJ IDEA 460 7.22%
Neovim 389 6.11%
Visual Studio 274 4.3%
Jupyter Notebook/JupyterLab 257 4.04%
Notepad++ 244 3.83%
Android Studio 221 3.47%
PyCharm 191 3.0%
Nano 184 2.89%
Eclipse 182 2.86%
Xcode 181 2.84%
Sublime Text 161 2.53%
IPython 143 2.25%
VSCodium 131 2.06%
CLion 116 1.82%
DataGrip 98 1.54%
WebStorm 95 1.49%
Qt Creator 91 1.43%
RStudio 85 1.33%
Helix 84 1.32%
Spacemacs 78 1.22%
Rider 75 1.18%
PhpStorm 75 1.18%
Netbeans 75 1.18%
Goland 71 1.11%
Kate 71 1.11%
Code::Blocks 62 0.97%
Fleet 55 0.86%
NA 51 0.8%
BBEdit 50 0.79%
RubyMine 49 0.77%
Rad Studio (Delphi, C++ Builder) 49 0.77%
Spyder 47 0.74%
Geany 45 0.71%

Popular Editors Amongst Developers Mentioning $Language

Which lets me assume that the reason for VSCode leading even for lisp-ish developers is to be found on the Clojure side of things:

xsv search -s LanguageHaveWorkedWith "Clojure" survey_results_public.csv | xsv search -s NEWCollabToolsHaveWorkedWith "Emacs" | sed -n '1d;p' | wc -l
274
xsv search -s LanguageHaveWorkedWith "Clojure" survey_results_public.csv | xsv search -s NEWCollabToolsHaveWorkedWith "Visual Studio Code" | sed -n '1d;p' | wc -l
416
xsv search -s LanguageHaveWorkedWith "Lisp" survey_results_public.csv | xsv search -s NEWCollabToolsHaveWorkedWith "Visual Studio Code" | sed -n '1d;p' | wc -l
454
xsv search -s LanguageHaveWorkedWith "Lisp" survey_results_public.csv | xsv search -s NEWCollabToolsHaveWorkedWith "Emacs" | sed -n '1d;p' | wc -l
500

This is seemingly the right guess: If we only look at developers metioning they're writing Lisp regardless of our aggregating with Clojure Emacs leads again. This makes me want to construct a ranking of preferred editors of developers of other languages. Speaking of language: I have to be careful here when it comes to interpret the results, because the survey is per respondent not per editor; so we can't deduce what editor is the most popular per language; we can only say "for developers mentioning they write $language, $editor is popular as its mentioned often". So let's do this for a subset of languages I personally do work with (and some others I find interesting but where I don't have any experience in, such as Fortran, Prolog and Elixir). We get the following ranking:

Programming Language Most Popular Second Most Popular Third Most Popular
Lisp Emacs Visual Studio Code Vim
Clojure Visual Studio Code IntelliJ IDEA Emacs
PHP Visual Studio Code Notepad++ Visual Studio
Julia Visual Studio Code Jupyter Notebook/JupyterLab Vim
Haskell Visual Studio Code Vim IntelliJ IDEA
Perl Visual Studio Code Vim Notepad++
C Visual Studio Code Visual Studio Notepad++
Fortran Visual Studio Code Notepad++ Visual Studio
Prolog Visual Studio Code IntelliJ IDEA Visual Studio
Elixir Visual Studio Code Neovim Vim
Erlang Visual Studio Code Vim IntelliJ IDEA

This raises the question for which developers of which languages VSCode also doesn't lead:

julia top_ides_that_are_not_vsc.jl
Programming languages where Visual Studio Code is not the leading IDE:
["Scala", "NA", "Objective-C", "Lisp", "Swift", "Visual Basic (.Net)"]

So we're at Scala, Objective-C, Lisp, Swift and Visual Basic. Let's see what people prefer here (leaving out Lisp as we *obviously* do already know the answer):

Developers of... Most Popular Second Most Popular Third Most Popular
Scala IntelliJ IDEA Visual Studio Code Vim
Objective-C Xcode Visual Studio Code Android Studio
Swift Xcode Visual Studio Code Android Studio
Visual Basic (.Net) Visual Studio Visual Studio Code Notepad++

Concluding: it is *mostly* a preference for parenthesis[5] or good old vendor lock-in (in case of Swift and Objective-Cs X-Code lead on Apples Side and VB.NET on Microsofts side, which for the latter makes Visual Studio, minus Code, the preferred Editor).

Language Popularity

This is also difficult to word, basically I want to see what languages are mentioned the most frequent for developers mentioning that they're using a specific editor. I want to do so for developers mentioning Emacs, VSCode, (Neo)Vim and Helix (which I only have added out of curiosity if Rust is mentioned often as I *mainly* know Rust folks using it):

Developers using... 1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th
Visual Studio Code JavaScript (29163) HTML/CSS (24725) Python (23076) SQL (22847) TypeScript (18946) Bash/Shell (all shells) (14693) C# (13353) Java (12909) C++ (10289) C (8697)
Emacs Python (1634) Bash/Shell (all shells) (1439) JavaScript (1340) SQL (1174) HTML/CSS (1145) C (1077) C++ (957) Java (833) TypeScript (755) Rust (624)
Vim Python (8429) JavaScript (7982) Bash/Shell (all shells) (7239) SQL (7014) HTML/CSS (6775) TypeScript (4900) Java (4472) C (4166) C++ (4040) Go (2786)
Neovim Python (4714) JavaScript (4625) HTML/CSS (3899) Bash/Shell (all shells) (3889) SQL (3481) TypeScript (3414) Rust (2633) C (2553) C++ (2325) Java (2249)
Helix Rust (641) Python (604) JavaScript (579) Bash/Shell (all shells) (511) HTML/CSS (493) SQL (432) TypeScript (423) C (408) C++ (361) Go (321)

My assumption regarding Helix was correct, others than that the results are unsurprising as they're close to what's generally popular according to the survey.

Does Editor Popularity Differ With YoE?

Not as much as I would've suspected, Emacs only makes it into the Top 10 for brackets with >=30 YoE, and VSCode is popular throughout the brackets.

Years of Experience 1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th
5-10 Visual Studio Code (9290) IntelliJ IDEA (3435) Visual Studio (3154) Notepad++ (2858) Vim (2646) Android Studio (1890) PyCharm (1859) Jupyter Notebook/JupyterLab (1526) Sublime Text (1517) Neovim (1460)
50+ Visual Studio Code (24) Notepad++ (22) Visual Studio (20) Vim (16) Emacs (13) Eclipse (13) Xcode (12) IntelliJ IDEA (10) Jupyter Notebook/JupyterLab (10) PyCharm (9)
15-20 Visual Studio Code (3172) Visual Studio (1378) Notepad++ (1279) IntelliJ IDEA (1231) Vim (1134) Android Studio (614) Sublime Text (568) PyCharm (498) Xcode (481) Eclipse (453)
40-45 Visual Studio Code (180) Visual Studio (136) Notepad++ (111) Vim (76) Eclipse (61) IntelliJ IDEA (60) Jupyter Notebook/JupyterLab (44) Android Studio (40) PyCharm (33) Emacs (32)
0-5 Visual Studio Code (12818) Visual Studio (4752) IntelliJ IDEA (4666) Notepad++ (3299) Vim (3187) Android Studio (3046) PyCharm (2899) Jupyter Notebook/JupyterLab (2782) Neovim (2568) Nano (1611)
45-50 Visual Studio Code (56) Visual Studio (40) Notepad++ (37) Vim (33) Xcode (19) Eclipse (18) PyCharm (15) IntelliJ IDEA (13) Jupyter Notebook/JupyterLab (12) Emacs (10)
25-30 Visual Studio Code (1507) Visual Studio (881) Notepad++ (697) Vim (558) IntelliJ IDEA (515) Eclipse (267) Android Studio (264) PyCharm (263) Xcode (251) Jupyter Notebook/JupyterLab (220)
10-15 Visual Studio Code (5777) IntelliJ IDEA (2229) Visual Studio (2219) Notepad++ (2146) Vim (1936) Android Studio (1236) Sublime Text (1060) PyCharm (1037) Neovim (845) Xcode (829)
20-25 Visual Studio Code (2375) Visual Studio (1135) Notepad++ (1002) Vim (853) IntelliJ IDEA (836) Android Studio (429) Sublime Text (358) PyCharm (355) Eclipse (350) Jupyter Notebook/JupyterLab (329)
30-35 Visual Studio Code (787) Visual Studio (485) Notepad++ (393) Vim (313) IntelliJ IDEA (228) Eclipse (160) Xcode (160) Android Studio (146) PyCharm (140) Emacs (126)
35-40 Visual Studio Code (381) Visual Studio (250) Notepad++ (203) Vim (159) IntelliJ IDEA (124) Eclipse (106) PyCharm (90) Xcode (85) Jupyter Notebook/JupyterLab (69) Emacs (62)

Most Common Other Languages for Lisp Developers

My last question to answer is what the most common other languages for people working with Lisp are (I added where the languages are placed in the general popularity ranking).

Language Count
Python (3rd in General) 639
Bash/Shell (all shells) (6th in General) 587
JavaScript (1st in General) 577
HTML/CSS (2nd in General) 549
C (10th in General) 541
SQL (4th in General) 512
C++ (9th in General) 459
Java (7th in General) 402
TypeScript (5th in General) 334
Rust (14th in General) 315
Assembly (19th in General) 274
C# (8th in General) 257
Lua (17th in General) 253
Go (13th in General) 248
PHP (11th in General) 241
PowerShell (12th in General) 194
Haskell (32th in General) 185
Clojure (36th in General) 172
Ruby (20th in General) 170
Perl (28th in General) 164
Kotlin (16th in General) 145
R (22th in General) 135
MATLAB (24th in General) 133
Prolog (45th in General) 124
VBA (25th in General) 123
Scala (27th in General) 113
Fortran (39th in General) 113
Visual Basic (.Net) (23th in General) 112
Dart (18th in General) 112
Swift (21th in General) 110
Groovy (26th in General) 101
OCaml (46th in General) 98
Elixir (31th in General) 98
Delphi (33th in General) 98
Objective-C (30th in General) 96
Erlang (42th in General) 94
MicroPython (34th in General) 92
Zig (38th in General) 87
GDScript (29th in General) 85
Cobol (47th in General) 85
Julia (37th in General) 79
F# (43th in General) 76
Ada (41th in General) 74
Nim (49th in General) 59
Crystal (48th in General) 59
Solidity (40th in General) 57
Apex (44th in General) 50
Zephyr (50th in General) 48

Summary

I mostly did this analysis for the fun of it as I genuinly was interested in seeing what the developers survey says about Lisp and Emacs respondents. I'm not too surprised by the results, as most findings are in accord with my gut instinct and the assumptions I've made before running the scripts. It would've been cool to be able to process the write-in answers as well, but as they're not part of the publically available dataset, that's not going to happen. The most outstanding finding, regardless of the focus on Emacs and Lisp, to me was, that Visual Studio Code as an Editor is leading throughout all YoE brackets and being a popular choice for developers of all languages. I think this isn't a favorable development as a monocultural computing landscape isn't something I am in favor of. Most popular browsers are chromium/blink based, and so is appearantly the most popular editor by far. This doesn't mean you shouldn't use blink-based software if it's the right tool for you, that wouldn't be my choice to be made anyways, but the blink lock-in that happens in many areas is something one shouldn't ignore either.

Footnotes

[1] julia --lisp is probably one of my all time favorite eastereggs.

[2] Except when something nice equals something lispy and schemey, there are good technical arguments to make, unfortunately popularity isn't *quite* the point one can make here. (but we're working on it, right?)

[3] "Most Popular Technologies" Stack Overflow Developer Survey 2024, Stack Overflow, 2024, https://survey.stackoverflow.co/2024/technology#most-popular-technologies-new-collab-tools. Accessed 11 Aug. 2024.

[4] "Usage Share of Web Browsers." Wikipedia, https://en.wikipedia.org/wiki/Usage_share_of_web_browsers. Accessed 11 Aug. 2024.

[5] https://xkcd.com/297