Pains
2403 pains collected
Ignoring 'Accept All Edits' Mode and Requiring Excessive Human Intervention
7Claude Code recently started ignoring 'accept all edits' mode, requiring human intervention at every turn even for allowlisted operations like reading files or listing directories. This breaks automation and requires constant user approval during planning phases.
Limited context handling for complex, multi-step coding tasks
7Codex excels at simple boilerplate code but struggles with complex logic requiring deep contextual understanding across multiple steps. It frequently produces incomplete or incorrect code when handling lengthy functions or workflows.
Desktop version consumes tokens much faster than CLI
7Claude Code's desktop VS Code extension burns through token quota significantly faster than the CLI counterpart. A task consuming a small fraction on CLI can use 20%+ on desktop, triggering context compression and errors. This forces developers to manage tasks meticulously to preserve quota until end of day.
Channel panic behavior and missing operations create footguns
7Sending to a closed channel panics instead of returning an error or boolean. Channels also lack common blocking queue operations like peeking or fetching multiple items. Producers blocked on a closed channel panic, and improper usage easily leaks goroutines.
SQLite lacks multi-threading support, limiting concurrent workload performance
7SQLite generally does not use multiple threads, which limits its ability to handle concurrent operations efficiently. This is particularly problematic for OLAP workloads and applications with high concurrent write demands, as the database cannot parallelize query execution or leverage multi-core hardware capabilities.
Dependency management and go get don't support version pinning at scale
7Go's go get and package structure don't support pinning dependencies to different versions, making reproducible builds and dependency management frustrating for projects with many dependencies. This is a critical gap for a language geared toward large-scale projects.
Developers avoid AI for high-responsibility tasks due to accuracy concerns
776% of developers won't use AI for deployment/monitoring, and 69% avoid it for project planning. High-responsibility, systemic tasks carry too much risk for unverified AI outputs. This reflects both capability and trust gaps.
Limited enterprise features and SLA guarantees without paid plan
7Hugging Face lacks enterprise-grade features, SLAs, audit logs, reproducibility guarantees, and compliance controls that enterprise customers require, forcing paid upgrades.
TypeScript compile-time safety provides no runtime protection
7TypeScript's type checking guarantees internal correctness but cannot protect against untrusted external API inputs, backend response drift, corrupted local storage, malformed environment variables, or user-generated content. At scale, this gap between compile-time and runtime safety becomes critical.
SwiftUI has unresolved stability and performance issues
7Multiple reproducible bugs in SwiftUI persist across beta releases, indicating that stability and performance remain unaddressed top priorities. Developers encounter recurring issues that block reliable deployment of SwiftUI-based apps.
Reference counting and memory leak issues
7Swift's ARC (Automatic Reference Counting) system is misunderstood and misused by developers, causing memory leaks and crashes. Incorrect reference counting in closures leads to objects being used outside their intended context, causing performance degradation or application crashes.
Excessive Client-Side Payload Increases Parse Time
7Large data passed to client components (e.g., 7 MB from getStaticProps) must be transferred and parsed by the browser even if unused by the UI, slowing down FCP and LCP.
API Integration Without Proper Error Handling Causes Crashes
7Applications without proper error management in API integration face a 40% higher chance of crashing. Comprehensive error handling with do-catch statements and logging mechanisms are required but often overlooked.
Build configuration issues cause SourceKit crashes
7Accidental misconfigurations in build settings (e.g., duplicate HEADER_SEARCH_PATHS) don't prevent compilation but cause SourceKit to crash on every text edit. Debugging requires manual inspection of SOURCEKIT_LOGGING output.
Slow Incremental Builds and Preview System Performance
7SwiftUI's preview system and dependency-heavy build graph often double or triple compile times compared to other frameworks. Large Swift packages sometimes require clean builds, significantly slowing iteration and delaying feature releases.
Skills shortage in Kubernetes and SRE expertise
7Managing Kubernetes add-ons, cluster operations, and platform engineering requires cross-disciplinary talent (SRE, security, developers) that is in short supply. Teams struggle to staff and retain experienced Kubernetes operators and SREs, delaying critical work.
Limited generics support and type inference failures
7Swift's compiler struggles with complex generics beyond simple cases. Type inference fails on complex generic code, forcing developers to add explicit type ascriptions throughout. The compiler may refuse to compile until code is broken apart and rewritten.
Swift 6 Data Race Safety Migration Requires Significant Code Changes
7Swift 6's data race safety features introduce warnings and errors about concurrency issues. Adopting the new language mode and ensuring thread-safe method access requires substantial changes to existing codebases.
Extremely long build times on Linux with new Foundation
7Building on Linux with the new Foundation requires compiling both swift-foundation and swift-syntax (due to macro usage), causing painful and lengthy build times that result in slow CI turnaround.
S3-compatible services lack advanced management APIs
7S3-compatible storage solutions don't implement advanced management features like Bucket Website Hosting, Analytics, Inventory, Logging, Replication, and Tagging. This creates operational vendor lock-in even when application code is portable, forcing developers to build custom workarounds for features that S3 handles natively.
Language complexity and cognitive overhead from advanced features
7Swift has evolved from a practical, simple language into an academic exercise with layers of complexity. Features like async/await, actors, structured concurrency, @Sendable, property wrappers, result builders, and macros have created massive cognitive overhead, turning the language from a helpful partner into a "pedantic adversary" that demands extensive boilerplate and compiler appeasement rather than enabling feature development.
GitHub Actions security model is obscure with many pitfalls and exceptions
7The security architecture contains too many edge cases and inconsistencies (e.g., not recommending self-hosted runners in public repos). This expanded attack surface makes it easy to introduce vulnerabilities inadvertently while setting up workflows.
S3 performance limitations strain developer productivity
7As S3 usage evolved from archival to interactive workloads, performance constraints became friction points that distract developers from core work. Limitations force developers to implement workarounds rather than focus on building features.
GitHub Actions complexity leads to unmaintainable CI/CD spaghetti code
7GitHub Actions encourages poor practices because common tasks (e.g., sending Slack messages) have convoluted official solutions. Developers end up hand-rolling scripts, creating an undocumented black box system that becomes unmaintainable at scale without external tooling like NX.