Products · Product
OCaml
Raised as a usability problem by 84 people on Hacker News over 18 years (2008–2025), in 74 threads.
No issue was raised by at least 3 people in 3 threads this year.
Every issue, all time, most people first
Type inference errors point to locations where no error appearsUnreviewed
20082026- Syntax error points to an empty last line, leaving newcomers to find the mistake themselves2024-11-25
- Students struggle to find their syntax errors, the most common problem TAs see2024-11-25
- Missing 'in' causes syntax errors far away, making the cause hard to find2024-11-25
Compiler error messages too primitive to find problemsUnreviewed
20082026- Compiler error messages are too primitive, making it hard to find what's wrong2020-08-03
- Compiler type checking messages are hard to make sense of2019-03-03
- Compiler errors are hard to read, worse than C++ template errors2013-08-02
Unreviewed issues were grouped by machine: Claude Haiku labelled each comment as a usability complaint, named what it's about and summed up the problem in a line, and a small model grouped similar problems. Nobody has checked them by hand. Expect mistakes.
The newest 50 complaints
- Type errors jump across global functions when their types are left unannotated2025-11-30
- Something always made it less pleasant to solve problems than other languages2025-11-07
- Syntax is hard for humans to parse, reads as word soup2025-11-07
- Module system and generics feel clumsy and unintuitive to use2025-11-07
- Syntax inconsistencies create constant friction while writing code2025-11-05
- Error messages make no sense, so learning requires repeated documentation lookups2025-11-04
- Debugging tools feel clunky and are not integrated into VS Code's debugging UI2025-08-14
- OPAM is buggy and extremely confusing to use2025-08-14
- Installing on Linux required an unusual tool nobody explained how to get2025-08-13
- Documentation and user experience are horrible for newcomers learning the language2025-06-28
- Links in exercise details are broken and the referenced pages can't be found2025-06-28
- Installing utop via the official docs fails with a path separator error needing manual fixes2025-06-27
- No clear PostgreSQL library choice and latest version won't install due to obscure tool2025-04-01
- Syntax without brackets or semicolons is very hard to visually parse2024-12-09
- Nested match statements need an end marker and are hard to read2024-11-25
- Syntax error points to an empty last line, leaving newcomers to find the mistake themselves2024-11-25
- Nested matches have no terminator, so people mess them up frequently2024-11-25
- Spends excessive time getting semicolons and begin/end right; hard to parse and fix mismatches2024-11-25
- Typing the backtick on European dead-key keyboards is awkward, and it combines with the next letter2024-11-25
- Hard to read and navigate code due to sparse punctuation2024-11-25
- Students struggle to find their syntax errors, the most common problem TAs see2024-11-25
- Matches lack a terminator, so people frequently mess up nested matches, and parser errors are poor2024-11-25
- Must navigate left and right to add brackets and commas; confusing errors when wrong2024-11-25
- Searches mix results from two competing libraries, making it confusing to find the right one2024-11-25
- Missing 'in' causes syntax errors far away, making the cause hard to find2024-11-25
- Library names in dune config don't match Opam package names, which is confusing2024-09-12
- Took a whole weekend to compile a simple project with dune and esy2024-01-30
- Signatures can't guide users to fix type errors in their functions2023-11-12
- Over-generic functions hide the author's intent and produce confusing type errors2023-11-12
- Finds it a chore to figure out how to use OCaml well2023-08-07
- Using OCaml on Windows is so painful it is effectively not possible2023-05-02
- Simple things like printing or checking equality are rather difficult2023-03-20
- Docs link is broken and the new constructs have no usable guide2022-12-16
- Sparse intermediate docs make practical questions hard to figure out after basics2022-12-09
- Parser errors point to where it got stuck, not the real mistake, so they're unhelpful2022-09-27
- Easy-to-confuse ;; versus ; causes confusing type errors that are hard to diagnose2022-08-29
- Confusing syntax: ;; terminators, odd comments, optional parentheses cause confusion2022-06-24
- Long-form options use a single dash, which is confusing and infuriating2022-04-12
- Type errors say a type was provided but give no location for the expected type2022-01-07
- Short programs fail with error messages the author cannot understand2021-10-20
- Confusing when to use ~foo, ?foo, or plain foo for arguments2021-10-08
- Having to choose between multiple standard libraries is a pain2021-10-07
- Library documentation is awful, hard to learn from2021-05-14
- Can't determine variable types by reading code, must constantly consult a language server2021-05-07
- Library docs are just function signatures without explanations or usage examples2020-11-16
- Too many Windows ports and install options, confusing to choose between at first2020-11-04
- Developers struggled to understand Lwt and the debugger, leading to single-threaded code2020-11-03
- Newcomers get lost in the documentation and find tools hard to get started with2020-09-14
- Type errors give no indication of where the mismatch occurs2020-08-31
- Can't find a direct link to a beginner tutorial2020-08-28