unofficial mirror of 
 help / color / mirror / code / Atom feed
From: Timothy <>
Subject: Emacs Survey 2022 - design
Date: Tue, 17 May 2022 22:51:14 +0800	[thread overview]
Message-ID: <> (raw)

[-- Attachment #1.1: Type: text/plain, Size: 1527 bytes --]


I’ve recently been chatting with Adrien Brochard (who ran the 2020 Emacs
survey), and I’m pushing for a 2022 Emacs survey.

Even with detailed telemetry (urgh) it can be hard to understand the range of
experiences and opinions users have. As such, particularly once we have past
surveys to reference and some consistent questions, I see quite a bit of value
in helping:
1. Emacs developers,
2. Emacs package developers/maintainers,
3. The Emacs community itself
better understand the Emacs community.

Of course, this being a fiercely FOSS community, the situation with survey
platforms leaves quite a bit to be desired. To resolve this issue, I spent some
time last year writing a 100% FOSS, [survey framework] which is completely
functional without any JS. I have attached some screenshots of it to this email.

It would be good to maximise the utility of the survey to the three groups
mentioned earlier. In this vein I hope some of you, emacs-devel, would be
willing to provide some feedback on the survey :)

Attached you may find the current draft survey questions, both as
`' file and the configuration file used by my survey
framework, `survey.jl'. If you’d like, you can even try running the survey

Lastly, if any of you would like to chat about this over IRC you can find me as
“tecosaur” on, and over on Matrix.

All the best,

[survey framework] <>

[-- Attachment #1.2: Type: text/html, Size: 5579 bytes --]

[-- Attachment #2: --]
[-- Type: application/vnd.lotus-organizer, Size: 10770 bytes --]

[-- Attachment #3: survey.jl --]
[-- Type: application/octet-stream, Size: 14386 bytes --]

    "Emacs User Survey — 2022",
    "Help the community have a better understanding of itself and its
        own diversity in Emacs usage. Discover and show how people are using
        this versatile tool for everything, from software engineering to
        academia and journalism.
This takes most people ?–? minutes to complete.
<b>Disclaimer:</b> This is currently just a draft based on the 2020 survey,
the questions you see now will not neccesarily be in the final survey.",
    SurveyPart("Emacs Usage",
            "Which of the following activities do you use Emacs for?",
            ["Work", "Hobby projects", :other]),
            "How many years have you been using Emacs for?",
            validators = v -> if v < 0
                "Seriously? Are we supposed to believe you're just planning ahead?"
            elseif v > 45
                "Oh really? 🤨"
            "Which version/fork of Emacs do you use?",
            ["29 (master)" => "29",
            "28", "27", "26", :other]),
            "Which operating system to you use Emacs on?",
            ["GNU/Linux", "Windows", "MacOS", "BSD", :other]),
            "How do you run Emacs?",
            ["Graphical Application (GUI)" => "GUI",
             "Terminal (TUI)" => "TUI",
             "Daemon/Client" => "daemon"]),
            "Which keybindings do you use?",
            ["Default (Emacs)" => "Emacs", "Vim", "CUA", :other]),
            "Do you use a starter kit/configuration framework?",
            ["No, I have lightly configured vanilla Emacs" => "minimal vanilla",
             "No, I have an extensive, fully-custom configuration" => "maximal vanilla",
             "Doom Emacs", "Spacemacs", "Prelude",
            "What is your level of elisp proficiency?",
            ["No knowledge" => "none",
             "I can copy-paste and tweak some code" => "copy-paste",
             "I can write simple functions" => "simple functions",
             "Fairly proficient, I can/have written my own package." => "write package",
             "I maintain multiple packages" => "many packages"]),
            "Which languages do you program (in Emacs) in?",
            ["Assembly", "C++", "C", "C#", "Clojure",
             "Erlang", "Go", "HTML/CSS", "Haskell", "Javascript",
             "Julia", "Java", "Lisp", "Python", "PHP", "Perl",
             "R", "Rust", "Ruby", "Shell scripting" => "Shell",
             "SQL", "Typescript", :other])),
    SurveyPart("First time questions",
        "All of these questions are <i>optional</i>. Answer these if you're doing the survey for the first time.",
            "Which editor did you use before you started using Emacs?",
            ["None", "Vim", "VS Code", "IntelliJ", "Atom",
             "Eclipse", "Nodepad++", :other],
            "What do you think are Emacs' greatest strengths?",
            validators=[wordlimit(400), charlimit(6*400)],
            "Can you recall any difficulties you faced when initially learning Emacs?<br/>Please be as specific and concrete as your memories permit.",
            validators=[wordlimit(400), charlimit(6*400)],
            "How were you introduced to Emacs?",
            ["Friend", "University", "Some part of the internet" => "Internet", :other],
            "What features motivated you to initially try Emacs?",
            ["Extensibility", "Package/ecosystem",
             "Community", "Part of the GNU project / FSF"],
            "How do you manage third-party packages?",
            ["My framework/starter kit's default" => "framework default",
             "package.el (built-in)" => "package.el",
             "straight.el" => "straight.el",
             "use-package" => "use-package.el",
             "manual (git clone/download)" => "manual",
             "not sure", :other]),
            "Which package repositories do you use?",
            ["My framework/starter kit's default" => "framework default",
             "GNU ELPA" => "ELPA", "Melpa", "Melpa Stable",
             "Built from source (e.g. using straight)" => "Source",
             "not sure", :other]),
            "Could you list some of your favourite packages? (comma-seperated)";
            validators = [t -> if length(split(t, ',')) < 2
                    "Come on, surely you like at least two packages?"
                elseif length(split(t, ',')) > 10
                    "That's a lot of packages. Surely you can cut that down to a top 10?"
                end, wordlimit(30), charlimit(200)]),
        MultiSelect(:theme, # people can use a light and dark theme
            "Which theme do you use?",
            ["The default theme" => "default",
             "my own custom theme",
             "doom-one", "dracula", "gruvbox",
             "modus-operandi", "modus-vivendi", "nord",
             "solarized", "solarized-dark", "zenburn",
            "Which use cases of Org Mode apply to your usage (if any)?",
            ["Note taking", "General document writing",
             "Task management", "Agenda", "Time tracking",
             "Personal knowledge database (org-roam)" => "org-roam",
             "Literate programing / notebooks (babel)" => "babel"],
            "How often do you use Magit?",
            ["Frequently", "Rarely", "Never"]),
            "How often do you use TRAMP?",
            ["Frequently", "Rarely", "Never"]),
            "Do you use a terminal emulator in Emacs?",
            ["No", "eshell", "shell", "term", "ansi-term", "vterm", :other]),
            "Do you use an Email client in Emacs?",
            ["No", "Gnus", "Mu4e", "notmuch", "Wanderlust", :other]),
            "Do you use a spell checker in Emacs?",
            ["No", "My framework/starter kit's default" => "framework default",
             "flyspell", "spell-fu", :other]),
            "Do you use an undo package in Emacs?",
            ["No", "My framework/starter kit's default" => "framework default",
             "undo-tree", "undo-fu", :other]),
            "Do you use an project management package in Emacs?",
            ["No", "My framework/starter kit's default" => "framework default",
             "project.el", "projectile", :other]),
            "Do you use any selection packages?",
            ["No", "My framework/starter kit's default" => "framework default",
             "Helm", "Ivy", "Ido", "Icomplete",
             "Vertico", "Selectrum", "Marginalia", "Consult",
            "Have you ever contributed to Emacs or an ELPA package?",
            ["No", "Occasionaly", "Frequently"]),
            "Have you got any feedback on the Emacs/ELPA contribution process?",
            validators=[wordlimit(400), charlimit(6*400)],
            "Have you ever contributed to a Melpa package?",
            ["No", "Occasionaly", "Frequently"]),
            "Do you maintain any Emacs packages?",
            ["Yes", "No"]),
            "Have you ever contributed financially to Emacs development (via the FSF)",
             "I would if I could donate to Emacs directly" => "Would directly",
             "I would like to, but cannot" => "Cannot"])),
    SurveyPart("Demographics (all questions are optional)",
            "How old are you?",
            validators = n -> if n < 8
                "My, you're advanced for you're age. <i>Suspisiously</i> advanced…"
            elseif n > 100
                "Congratulations on becoming a centernarian! How about you get one of your grandchildren to do this survey instead?"
            "What is your gender?",
            ["Male", "Female", "Other"],
            "What is the highest level of education you have completed?",
            ["High school" => "School",
             "Asosociate's Degree" => "Asosociates",
             "Bachelor's Degree" => "Bachelors",
             "Master's Degree" => "Masters",
             "PhD or equivalent" => "PhD"],
            "What is your nationality?",
            # taken from
            ["Afghan", "Albanian", "Algerian", "American", "Andorran", "Angolan", "Anguillan", "Antigua and Barbuda",
             "Argentine", "Armenian", "Australian", "Austrian", "Azerbaijani", "Bahamian", "Bahraini", "Bangladeshi",
             "Barbadian", "Belarusian", "Belgian", "Belizean", "Beninese", "Bermudian", "Bhutanese", "Bolivian",
             "Bosnia and Herzegovina", "Botswanan", "Brazilian", "British", "British Virgin Islander", "Bruneian",
             "Bulgarian", "Burkinan", "Burmese", "Burundian", "Cambodian", "Cameroonian", "Canadian", "Cape", "Verdean",
             "Cayman Islander", "Central", "African", "Chadian", "Chilean", "Chinese", "Colombian", "Comoran",
             "Congolese (Congo)", "Congolese (DRC)", "Cook Islander", "Costa", "Rican", "Croatian", "Cuban", "Cymraes",
             "Cymro", "Cypriot", "Czech", "Danish", "Djiboutian", "Dominican", "Dominican Republic citizen", "Dutch",
             "East Timorese", "Ecuadorean", "Egyptian", "Emirati", "English", "Equatorial", "Guinean", "Eritrean", "Estonian",
             "Ethiopian", "Faroese", "Fijian", "Filipino", "Finnish", "French", "Gabonese", "Gambian", "Georgian",
             "German", "Ghanaian", "Gibraltarian", "Greek", "Greenlandic", "Grenadian", "Guamanian", "Guatemalan",
             "Guinea-Bissau citizen", "Guinean", "Guyanese", "Haitian", "Honduran", "Hong", "Konger", "Hungarian", "Icelandic",
             "Indian", "Indonesian", "Iranian", "Iraqi", "Irish", "Israeli", "Italian", "Ivorian", "Jamaican", "Japanese",
             "Jordanian", "Kazakh", "Kenyan", "Kittitian", "Kiribati citizen", "Kosovan", "Kuwaiti", "Kyrgyz", "Lao",
             "Latvian", "Lebanese", "Liberian", "Libyan", "Liechtenstein citizen", "Lithuanian", "Luxembourger",
             "Macanese", "Macedonian", "Malagasy", "Malawian", "Malaysian", "Maldivian", "Malian", "Maltese",
             "Marshallese", "Martiniquais", "Mauritanian", "Mauritian", "Mexican", "Micronesian", "Moldovan", "Monegasque",
             "Mongolian", "Montenegrin", "Montserratian", "Moroccan", "Mosotho", "Mozambican", "Namibian", "Nauruan",
             "Nepalese", "New Zealander", "Nicaraguan", "Nigerian", "Nigerien", "Niuean", "North Korean", "Northern",
             "Irish", "Norwegian", "Omani", "Pakistani", "Palauan", "Palestinian", "Panamanian", "Papua", "New", "Guinean",
             "Paraguayan", "Peruvian", "Pitcairn Islander", "Polish", "Portuguese", "Prydeinig", "Puerto", "Rican",
             "Qatari", "Romanian", "Russian", "Rwandan", "Salvadorean", "Sammarinese", "Samoan", "Sao", "Tomean",
             "Saudi Arabian", "Scottish", "Senegalese", "Serbian", "Seychelles citizen", "Sierra", "Leonean",
             "Singaporean", "Slovak", "Slovenian", "Solomon Islander", "Somali", "South African", "South Korean",
             "South Sudanese", "Spanish", "Sri", "Lankan", "St Helenian", "St Lucian", "Stateless", "Sudanese",
             "Surinamese", "Swazi", "Swedish", "Swiss", "Syrian", "Taiwanese", "Tajik", "Tanzanian", "Thai", "Togolese",
             "Tongan", "Trinidadian", "Tristanian", "Tunisian", "Turkish", "Turkmen", "Turks and Caicos Islander",
             "Tuvaluan", "Ugandan", "Ukrainian", "Uruguayan", "Uzbek", "Vatican citizen", "Vanuatu citizen",
             "Venezuelan", "Vietnamese", "Vincentian", "Wallisian", "Welsh", "Yemeni", "Zambian", "Zimbabwean"],
            "Which industry do you work in?",
            ["Academia (Student)" => "Student",
             "Academia/Research" => "Research",
             "Education", "FinTech",
             "Healthcare", "Legal", "Manufacturing",
             "Software Development", "Telecom",
    SurveyPart("Survey bookeeping",
            "Did you respond to the 2020 Emacs survey?",
            ["Yes", "No"]),
            "How did you find out about this survey?",
            ["r/emacs", "Hacker News", "Direct message",
             "Discord", "Twitter", "Blog post", "Mailing list",
             "", "Telegram", "Emacs China", "IRC",
            "How well do you think this survey platform works?",
            ["Great", "Ok", "Not great"]),
            "Do you have any general feedback on the survey?",
            validators=[wordlimit(200), charlimit(6*200)],

[-- Attachment #4: emacs-survey-questions-start.png --]
[-- Type: image/png, Size: 48826 bytes --]

[-- Attachment #5: emacs-survey-landing-page.png --]
[-- Type: image/png, Size: 77341 bytes --]

[-- Attachment #6: emacs-survey-end-of-section.png --]
[-- Type: image/png, Size: 51723 bytes --]

             reply	other threads:[~2022-05-17 14:51 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-17 14:51 Timothy [this message]
2022-05-17 15:38 ` Emacs Survey 2022 - design Visuwesh
2022-05-19 14:36   ` Timothy
2022-05-17 18:20 ` Stefan Monnier
2022-05-17 19:52   ` Tassilo Horn
2022-05-17 22:21     ` Stefan Monnier
2022-05-18  4:49       ` Tassilo Horn
2022-05-18 12:43         ` Stefan Monnier
2022-05-18 18:47           ` Philip Kaludercic
2022-05-19 14:39   ` Timothy
2022-05-17 18:59 ` Philip Kaludercic
2022-05-19 14:54   ` Timothy
2022-05-19 16:11     ` Philip Kaludercic
2022-05-20  8:11   ` sr
2022-05-20 23:53     ` Philip Kaludercic
2022-05-17 19:43 ` Juri Linkov
2022-05-19 15:13   ` Timothy
2022-05-17 22:16 ` Howard Melman
2022-05-17 22:21 ` Howard Melman
2022-05-17 22:44 ` Will Mengarini
2022-05-17 23:00   ` Stefan Monnier
2022-05-18  0:15     ` Corwin Brust
2022-05-18  7:13       ` Philip Kaludercic
2022-05-19 15:51         ` Timothy
2022-05-19 15:54     ` Timothy
2022-05-19 17:37       ` Stefan Monnier
2022-10-10 17:48         ` Gregor Zattler
2022-05-18  4:39   ` Visuwesh
2022-05-19 15:48     ` Timothy
2022-05-19 15:18   ` Timothy
2022-05-18 11:19 ` Jonas Bernoulli
2022-05-18 18:46   ` Philip Kaludercic
2022-05-19 15:30   ` Timothy
2022-05-18 12:47 ` Jostein Kjønigsen
2022-05-19 15:26   ` Timothy
2022-05-18 22:19 ` Richard Stallman
2022-05-19 15:38   ` Timothy
2022-05-21 22:46     ` Richard Stallman
2022-05-18 22:20 ` Richard Stallman
2022-05-19 15:41   ` Timothy
2022-05-21 22:46     ` Richard Stallman
2022-05-22 11:32       ` Akib Azmain Turja
2022-05-22 12:03         ` Philip Kaludercic
2022-05-19  5:22 ` Mike Kupfer
2022-05-19 15:44   ` Timothy
2022-05-19 16:17     ` Mike Kupfer
2022-05-19 16:01 ` Benjamin Riefenstahl
2022-05-23  7:16 ` Emacs Survey 2022 - 1st question Jean Louis
2022-05-23 17:14   ` Timothy
2022-05-23  7:18 ` Emacs Survey 2022 - 2nd question Jean Louis
2022-05-23 17:17   ` Timothy
2022-05-24  0:21     ` Richard Stallman
2022-05-23  7:19 ` Emacs Survey 2022 - 3rd question Jean Louis
2022-05-23  7:24 ` Emacs Survey 2022 - which editor question Jean Louis
2022-05-23  8:04   ` Philip Kaludercic
2022-05-23  8:14     ` Jean Louis
2022-05-23 17:29   ` Timothy
2022-05-23  7:27 ` Emacs Survey 2022 - how you were introduced to Emacs Jean Louis
2022-05-23 17:18   ` Timothy
2022-05-23 18:43     ` Philip Kaludercic
2022-05-23 18:54       ` Timothy
2022-05-23  7:31 ` Emacs Survey 2022 - what features? Jean Louis
2022-05-23 17:19   ` Timothy
2022-05-23  7:36 ` Emacs Survey 2022 - email client Jean Louis
2022-05-23 17:23   ` Timothy
2022-05-23  7:40 ` Emacs Survey 2022 - nationality Jean Louis
2022-05-23  8:35   ` Ihor Radchenko
2022-05-23  7:43 ` Emacs Survey 2022 - industry Jean Louis
2022-05-23 17:25   ` Timothy
2022-05-23 20:36     ` John ff
2022-05-23  7:45 ` Emacs Survey 2022 - how did you fid out about survey Jean Louis
2022-05-23 17:28   ` Timothy
2022-05-23 18:40     ` Philip Kaludercic
2022-05-23  8:46 ` Emacs Survey 2022 - design Lars Ingebrigtsen
2022-10-02  8:30 ` Timothy
2022-10-02 16:06   ` Philip Kaludercic
2022-10-04  1:00     ` Richard Stallman
2022-10-04  7:00       ` Philip Kaludercic
2022-10-04  7:53         ` Richard Stallman
2022-10-04  8:00   ` Akib Azmain Turja
2022-10-04  8:38     ` Po Lu
2022-10-04  9:37     ` Philip Kaludercic
2022-10-05 16:48   ` Philip Kaludercic
2022-05-22  8:38 Johan Myréen
2022-05-22 13:03 ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

  List information:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).