# OCaml Users Survey 2026 - Complete Question List with Answer Choices
## OCAML USAGE
**Q1. How long have you been using OCaml?**
- I do not use OCaml
- Less than 1 year
- 1-2 years
- 3-5 years
- 6-10 years
- More than 10 years
- Not sure
**Q2. How do you rate your OCaml proficiency?**
- Beginner
- Intermediate
- Advanced
- Expert
**Q3. In which context do you use OCaml?** (Check all that apply)
- As a student
- As a hobbyist
- For work, in industry
- For work, in a research job
- For teaching
- Other
**Q4. OCaml usage at your workplace:**
- Most (> 50%) software projects use OCaml
- Many (> 20%) software projects use OCaml
- Some (> 5%) software projects use OCaml
- I am—or suspect that I am— the only OCaml user
- I don't use OCaml at work
- I don't know
**Q5. OCaml trend at your workplace:**
- OCaml usage is increasing
- OCaml usage is decreasing
- OCaml usage is stable
- Unsure/I don't know
**Q6. How did you learn OCaml?** (Check all that apply)
- Self-taught
- Via an online course
- In high school
- University, undergraduate level
- University, graduate level
- At Work
- Other
**Q7. If you learned in school or University, which one (optional, you may enter the name of your school/University or simply the country).**
[Text field - optional]
**Q8. Which of these other programming languages are you fluent in?** (Check all that apply)
- C
- C++
- C#
- Clojure
- Coq, Lean, Agda, or Idris
- Dart
- Elm/Purescript
- Erlang or Elixir
- F#
- Fortran
- Go
- Haskell
- Java
- JavaScript/TypeScript
- Julia
- Kotlin
- Lua
- Perl
- PHP
- Python
- R
- Ruby
- Rust
- Scala
- Scheme or a LISP dialect
- Swift
- Zig
- Other
**Q9. Which types of software have you or do you currently develop with OCaml?** (Check all that apply)
- Command-line tools/utilities
- Data processing applications
- Data analysis or machine learning
- Developer tooling
- Distributed applications (including blockchain)
- Formal methods tools
- Games
- Numerical programs
- Programming language implementations
- Systems programming
- Web back end
- Web front end
- Other
**Q10. In which domains is the software you develop used?** (Check all that apply)
- Academia / research
- Banking / finance
- Blockchain / cryptocurrency
- Commerce / retail
- Education
- Embedded
- Gaming
- Healthcare / medical
- Mobile
- Security
- Web
- Other
**Q11. How did you first hear about OCaml?**
[Text field]
**Q12. What is a pain point when learning the OCaml language?**
[Text field]
## THE OCAML SOFTWARE FOUNDATION
**Q13. Did you know about the OCaml Software Foundation (OCSF) before this survey?**
- Yes
- No
**Q14. What topics or actions would you like the OCSF to work on?** (Check all that apply, at most 4)
- Support the development and evolution of the OCaml language, compiler and core tools
- Support the development and evolution of the wider OCaml library and tooling ecosystem
- Animate the OCaml community (conferences & events organization and sponsorship)
- Encourage & support OCaml courses for students (Universities, schools etc.)
- Encourage & support OCaml training for professional developers
- Increase the diversity of the OCaml community
- Promote the language in the industrial world (through conferences and events sponsorship)
- Fund better support across OSes and architectures
- Other
## COMMUNITY
**Q15. Where do you interact with other members of the OCaml community?** (Check all that apply)
- Bluesky
- Caml-list
- Conferences (Academic)
- Conferences (Industrial)
- Discord
- discuss.ocaml.org
- GitHub
- IRC
- Local meetups / user groups
- Mastodon
- matrix.org
- r/ocaml/
- Slack
- Telegram
- X / Twitter
- Zulip
- Other
**Q16. Which of the following topics would you like to see more content about?** (Check all that apply)
- Beginner fundamentals
- Best practices
- Case studies
- Comparisons with other languages
- Debugging how-tos
- Library walkthroughs
- Tooling choices
- Performance analysis
- Machine learning
- Web development
- GUIs
- Other
**Q17. Regarding the size of the OCaml community, I wish the community was...**
- Smaller
- The current size is about right
- Bigger
- A lot bigger
- I have no opinion
## AI/LLM USAGE
*Note: This section can be made conditional in Google Forms. If Q18 = "No, and no plans to use", questions Q19-Q21 can be skipped.*
**Q18. Do you use AI/LLM tools for OCaml development?**
- Yes, regularly (daily)
- Yes, occasionally (weekly)
- Rarely (monthly)
- Tried but stopped using
- Planning to try
- No, but interested
- No, and no plans to use
**Q19. Which AI/LLM tools do you use with OCaml?** (Check all that apply)
- GitHub Copilot
- ChatGPT/GPT-4
- Claude
- Cursor
- Local LLMs (Ollama, etc.)
- Company internal AI tools
- opencode
- None
- Other
**Q20. What do you use AI/LLM tools for in OCaml development?** (Check all that apply)
- Code completion/generation
- Explaining OCaml code
- Learning OCaml concepts
- Debugging assistance
- Writing tests
- Documentation generation
- Code review
- Translating from other languages
- I don't use AI for OCaml
- Other
**Q21. Anything else you want to say on AI/LLM tools or their use for OCaml development?**
[Text field]
## PROJECTS & CONTRIBUTIONS
**Q22. About how many OCaml Projects did you contribute to in the past year?**
- 0
- 1
- 2-3
- 4-10
- 11+
**Q23. In the past year, which platform did you use to write OCaml code?** (Check all that apply)
- Linux
- BSD
- Mac OS
- Windows
- WebAssembly
- Other
**Q24. In the past year, which platform(s) did you target?** (Check all that apply)
- Linux
- BSD
- Mac OS
- Windows
- iOS
- Android
- Web/Browser (via js_of_ocaml)
- WebAssembly
- Unikernels (MirageOS)
- Other
## COMPILER
**Q25. Which of these language implementations are you currently using?** (Check all that apply)
- Vanilla OCaml
- OCaml with js_of_ocaml
- Melange
- Reason
- A public fork of the OCaml compiler
- OxCaml
- A private fork of the OCaml compiler
- Other
**Q26. Which version of the OCaml compiler do you currently use most?**
- ≤4.07
- 4.08
- 4.09
- 4.10
- 4.11
- 4.12
- 4.13
- 4.14
- 5.0
- 5.1
- 5.2
- 5.3
- 5.4
- trunk
- I don't know
**Q27. What is the oldest version that you try to support in the software you develop?**
- Only the latest release
- Debian stable
- ≤4.07
- 4.08
- 4.09
- 4.10
- 4.11
- 4.12
- 4.13
- 4.14
- 5.0
- 5.1
- 5.2
- 5.3
- 5.4
- N/A
**Q28. Which installation methods do you use for your development environment?** (Check all that apply)
- opam (using the public repository)
- opam (using a private repository)
- dune package management
- esy
- npm/yarn/pnpm
- Distribution's package manager
- DkML installer
- External package manager (e.g. Homebrew, MacPorts, Cygwin)
- Manual compilation and installation of source code
- Manual installation of pre-compiled binaries
- Monorepo
- Nix packages
- Other
**Q29. How long do you typically wait after an OCaml release to test your codebase with the new version?**
- Less than a week
- Less than a month
- Less than three months
- One release late (~6 months)
- More than one release late (more than 6 months)
**Q30. Once you test your code base to the new OCaml version, what is painful and requires adapting your project?**
- It's perfectly smooth each time!
- Compiler bugs
- Breaking changes
- Working around incompatible dependencies
- New compiler warnings
- Reliance on compiler-internal APIs (compiler-libs)
- Reliance on the Foreign Function Interface
- Other
## TOOLING
**Q31. Which build tools do you use in your current projects?** (Check all that apply)
- bazel
- buck 2
- dune
- makefiles
- ninja
- Nix-based builds
- ocamlbuild
- omake
- Other
**Q32. What kind of preprocessors do you use in your current projects?** (Check all that apply)
- cpp-style conditional-compilation directives
- ppx extensions created by others
- ppx created by yourself or for the project you're contributing to
- camlp4/camlp5 default preprocessors
- Custom camlp4/camlp5 extensions
- None
- Other
**Q33. Which editors do you use in your current projects?** (Check all that apply)
- Emacs (or emacs-based such as Aquamacs)
- Helix
- IntelliJ
- Kakoune
- Sublime Text
- Vim (or vim-based such as Neovim)
- VSCode or VSCodium
- Zed
- Other
**Q34. Which tools do you use to test OCaml code in your current projects?** (Check all that apply)
- Separate unit tests (unit tests in a separate module, incl. using a custom testing framework)
- Inline unit tests (unit tests within the tested code, incl. using a custom testing framework)
- Expect-style tests (recording the expected test output along with the test, incl. using a custom testing framework)
- QuickCheck-style property-based tests (random testing, incl. using a custom testing framework)
- AFL/Crowbar (whitebox fuzzing)
- Other
**Q35. Which tools do you use to benchmark OCaml code in your current projects?** (Check all that apply)
- core_bench
- benchmark
- bechamel
- perf
- Landmarks
- memtrace
- magic-trace
- Whole-program timing (time, hyperfine)
- Custom project-specific tools
- None
- Other
**Q36. Which documentation tools do you use?** (Check all that apply)
- odoc
- ocamldoc
- None
- Other
**Q37. What would you change about OCaml tooling?**
[Text field]
## DEBUGGING & PROFILING
**Q38. What debugging approach do you primarily use?**
- Printf/print debugging
- Interactive debugger (ocamldebug, earlybird)
- Native debugger (gdb, lldb)
- Logging libraries
- PPX-based tracing (ppx_minidebug, etc.)
- REPL/toplevel exploration
- Other
**Q39. Which debugging and profiling tools do you use?** (Check all that apply)
- ocamldebug
- earlybird (DAP/VS Code)
- gdb/lldb
- ppx_minidebug
- Logs library
- perf
- eBPF (Linux)
- DTrace (FreeBSD/macOS)
- memtrace
- Landmarks
- magic-trace
- None
- Other
**Q40. What are your biggest challenges with debugging/profiling?** (Select up to 3)
- Setting up debugging environment
- IDE/editor integration
- Lack of native code debugging
- Documentation for debugging tools
- OCaml 5 multicore debugging
- Memory profiling complexity
- No significant challenges
- Other
## INFRASTRUCTURE
**Q41. How do you deploy OCaml applications?** (Check all that apply)
- As docker images
- As dynamically-linked binaries
- As source code in an archive file
- As source code via a forge clone URL
- As static binaries
- As WebAssembly modules
- Through the web (meaning the project is a Web App running in the user's browser)
- Via an application store (such as Google Play Store, Apple App Store, Flathub, Snap store, ...)
- Via OPAM
- Via the distribution's packaging systems
- Via Nix packages (outside of NixOS)
- With 0install
- Other
## FEELINGS
**Q42. I feel welcome in the OCaml community**
- Strongly agree
- Agree
- Neutral
- Disagree
- Strongly disagree
- I don't know
**Q43. I am satisfied with OCaml as a language**
- Strongly agree
- Agree
- Neutral
- Disagree
- Strongly disagree
- I don't know
**Q44. OCaml tooling is confusing to newcomers**
- Strongly agree
- Agree
- Neutral
- Disagree
- Strongly disagree
- I don't know
**Q45. I am satisfied with OCaml's package repositories**
- Strongly agree
- Agree
- Neutral
- Disagree
- Strongly disagree
- I don't know
**Q46. What would you change about OCaml's package repositories?**
[Text field]
**Q47. I can find OCaml libraries for my needs**
- Strongly agree
- Agree
- Neutral
- Disagree
- Strongly disagree
- I don't know
- I don't need libraries
**Q48. If you are not satisfied, which libraries are missing?**
[Text field]
**Q49. OCaml libraries are well documented**
- Strongly agree
- Agree
- Neutral
- Disagree
- Strongly disagree
- I don't know
- I don't need libraries
**Q50. I have a good understanding of OCaml best practices**
- Strongly agree
- Agree
- Neutral
- Disagree
- Strongly disagree
- I don't know
**Q51. As a candidate, I can easily find OCaml jobs**
- Strongly agree
- Agree
- Neutral
- Disagree
- Strongly disagree
- I don't know
**Q52. As a hiring manager, I can easily find qualified OCaml candidates**
- Strongly agree
- Agree
- Neutral
- Disagree
- Strongly disagree
- I don't know
## BURNING DESIRES
**Q53. If one piece of the ecosystem could magically be made state-of-the-art, I would ask for:**
- A package manager
- A build tool
- A language website
- A compiler
- A support community
- Documentation for the core language
- Documentation for user libraries
- Communication to outsiders (blog posts, conferences...)
- AI/LLM tooling for OCaml
- My domain-specific library ecosystem
**Q54. What do you think are the main pain points that prevent OCaml adoption for new projects?** (Select at most 3)
- Too hard to find and hire OCaml developers
- Too hard to learn
- OCaml does not fit your environment constraints (hardware support, OS support, ...)
- Lack of performance
- Lack of critical libraries
- Lack of critical developer tools
- Lack of backward compatibility
- Poor AI/LLM tool support compared to other languages
**Q55. Anything to add?**
[Text field]
## DEMOGRAPHICS, DIVERSITY AND INCLUSION
**Q56. Which country do you live in?**
[Country dropdown]
**Q57. Do you consider yourself a member of an underrepresented or marginalized group in technology?** (Check all that apply)
- Racial or ethnic minority
- Language
- Educational background
- Lesbian, gay, bisexual, queer or otherwise non-heterosexual
- Trans
- Non-binary gender
- Older or younger than the average developers I know
- Woman or perceived as a woman
- Political beliefs
- Religious beliefs
- Cultural beliefs
- Disabled or person with disability (including physical, mental, and other)
- Yes, but I prefer not to say which
- I don't consider myself part of an underrepresented or marginalized group in technology
- Other
**Q58. Do you feel your belonging to an underrepresented or marginalized group in technology makes it difficult for you to participate in the OCaml community?**
- Never
- Sometimes
- Often
- N/A
**Total: 58 Questions**