Products · Product
Objective-C
Raised as a usability problem by 48 people on Hacker News over 17 years (2008–2024), in 40 threads.
No issue was raised by at least 3 people in 3 threads this year.
Every issue, all time, most people first
Verbose syntax makes everyday code harder to writeUnreviewed
20082026- Docs are so poor that learning Objective-C becomes an unbearable struggle2023-02-11
- Hard to read Objective-C method names and formatting, with documentation packed into the name2021-12-20
- Syntax is clunky and bolted on, making the language painful to write2014-09-25
nil silently ignores messages, hiding hard-to-spot bugsUnreviewed
20082026- Silent nil returns leave developers with no clue why code fails2023-05-04
- Memory bugs are easy to introduce, and silent nil returns make failures hard to trace2022-09-06
- Messaging nil silently returns zero, hiding failures and forcing defensive checks everywhere2022-04-30
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 46 complaints
- Dot syntax hides expensive message calls, making code look like plain struct access2023-06-26
- Silent nil returns leave developers with no clue why code fails2023-05-04
- Docs are so poor that learning Objective-C becomes an unbearable struggle2023-02-11
- Memory bugs are easy to introduce, and silent nil returns make failures hard to trace2022-09-06
- Messaging nil silently returns zero, hiding failures and forcing defensive checks everywhere2022-04-30
- Hard to read Objective-C method names and formatting, with documentation packed into the name2021-12-20
- Inconsistent wrapping styles and verbose msg_send! boilerplate make interop awkward2020-08-28
- Declaring types is tedious, and the compiler struggles to resolve selectors on id receivers2020-01-20
- Verbose boilerplate makes code hard to read, forcing users to filter out noise2019-06-28
- Block syntax is terribly hard to remember, so people copy-paste it2018-08-20
- Memory management made the language basically unusable before AutoRelease2016-02-01
- Nil silently passes checks, so bugs are invisible and hard to trace to their source2015-10-26
- Syntax is clunky and bolted on, making the language painful to write2014-09-25
- Objective-C syntax is extremely annoying to read2014-04-17
- Dereferencing syntax is very confusing to read and write2014-02-20
- Nil silently ignores messages, creating hard-to-spot bugs that are hard to detect2013-12-14
- Misleading error message for a simple typo; hard for beginners to diagnose2013-05-10
- Site is very slow loading the next page after submitting2013-05-09
- Too many visibility rules to memorize for variable scoping2013-01-03
- The colon in '@interface Foo : Bar' is ambiguous about which class extends which2012-11-14
- Syntax is painful to read and lacks macros2012-07-08
- Syntax is hard to read and write, with excessive ceremony and odd conventions for the programmer2012-07-05
- Learning curve too steep: complicated API, new language and new IDE2012-05-18
- Collection syntax is awkward and hard to work with, the worst part of the language2012-05-04
- Finds the language genuinely confusing to work with2012-05-04
- Hard to remember where to put pointer asterisks correctly2012-03-07
- Hard to do trivial things and steep learning curve for developers2012-03-07
- Messages sent to nil fail silently, hiding errors in the app2012-01-10
- Long Objective-C lines force horizontal scrolling and hurt readability under 80-column limits2012-01-10
- Adding a new property requires editing code in several separate places2011-10-17
- Code line is hard to read and unintuitive compared to Ruby2011-10-17
- Syntax is verbose, requiring lots of extra typing for simple tasks2011-07-31
- Sending messages to nil fails silently, so bugs take an hour to find2011-07-28
- Learning Objective-C is one of the most difficult tasks for new programmers2011-06-20
- Dot syntax silently calls methods, so self.foo and foo behave differently and cause confusing memory errors2011-05-26
- Block syntax is hard to read and write compared to Lisp lambdas2011-05-01
- Syntax is hard to read: selector passing and block lambdas look like line noise2011-05-01
- Iterative development and runtime inspection are slower and more laborious than in dynamic languages2011-02-07
- IDE can't show class methods or fill protocols, and compiler errors point to unrelated code2010-11-25
- Objective-C syntax is verbose and clunky, making everyday code harder to write2010-09-10
- Name collisions from no namespaces force awkward prefixes; pitfalls of monkey-patching are not obvious2010-09-09
- Writing an initializer requires three lines of boilerplate every time2010-07-13
- Message-send syntax becomes too verbose when chaining sequence operations2009-08-28
- Dot operator took forever to understand and feels unintuitive2008-12-19
- String operations are painful, cloning memory repeatedly, making the interface cumbersome2008-12-18
- String manipulation is awful, and code must repeat declarations across header files2008-12-18