Pains
2403 pains collected
Abundance of New Unfamiliar React APIs (Profiler, ViewTransition, cache, etc.)
4React 19 introduced numerous new APIs with low familiarity among developers: Profiler (57% unfamiliar), ViewTransition (41%), Activity (41%), cache (41%), useEffectEvent (40%), useDeferredValue (39%). This creates knowledge gaps and increases the learning curve for developers trying to stay current.
Lack of semantic meaning in utility class names
4Tailwind utility classes are functional but not semantic, making it harder to understand element purpose at a glance. Classes like `p-6, max-w-sm, rounded-xl` do not convey the meaning of elements. Developers accustomed to semantic classes like `.card, .card-header, .card-body` find utility-first approach less intuitive and harder to maintain.
Poor syntax highlighting and lack of expressiveness in utility classes
4Tailwind class names receive no special syntax highlighting and are displayed as plain strings, reducing code expressiveness. CSS property names and values are more expressive and easier to scan. The short but non-descriptive nature of utility classes (compared to CSS keywords) compounds readability issues.
GitHub Projects item naming conflicts with mixed issue types
4With the expanded 50,000 item limit in GitHub Projects, duplicate naming becomes a real problem. Multiple issues named 'UI' across different issue types (Tasks, Stories, Bugs) appear in the same view without clear differentiation, causing confusion and reducing project clarity.
Inconsistent naming conventions and code standards
4PHP does not enforce strict naming conventions for functions, variables, and classes, leading to inconsistent code that causes confusion in team environments and large codebases. This reduces code readability and maintainability, making onboarding difficult for new developers.
Keeping Up with Emerging Technologies (VR/AR/Voice)
4New technologies like VR, AR, and voice assistants introduce novel authentication methods and implementation challenges. Developers must extensively test these emerging technologies to ensure good user experience before integration, adding complexity to development workflows.
Transitive Dependency Complexity
4Even though TensorFlow reduces program size and aims to be user-friendly, it adds a layer of complexity through dependencies. Every code execution requires a platform for execution, which increases overall system dependency and maintenance overhead.
StrictMode Double-Rendering Confusion
4Developers continue to get tripped up by effects running twice in development mode due to StrictMode. This behavior confuses developers and stems from React's fundamental architecture requiring entire component functions to re-run on updates.
Excessive manual approvals blocking rapid iteration
4Trivial changes (typos, config fixes) require multi-person reviews and approval workflows, creating bureaucratic friction. Teams waste time on unnecessary approvals that don't meaningfully improve quality or safety.
Insufficient support for Rust developers and maintainers
438.4% of Rust developers worry that Rust developers and maintainers are not properly supported, indicating concern about the sustainability and resource allocation of the language ecosystem.
AI coding agents frequently invent images and icons not in designs
4When implementing from design mockups, coding assistants often generate images and icons that don't exist in the original Figma designs. Fixing this requires explicit instructions and direct links to specific Figma nodes.
IndexedDB cross-browser differences and schema versioning complexity
4IndexedDB exhibits subtle cross-browser differences and quirks. Schema changes require careful versioning and migration logic, adding complexity compared to simpler storage solutions.
Poor IDE Support and TypeScript Integration
4IDE support for Vue.js, especially with TypeScript, has historically lagged behind other frameworks, though improving with extensions like Vetur for Visual Studio Code.
TypeScript support in Svelte files is incomplete, causing type-checking gaps
4Developers write more type assertions and struggle with IDE support for TypeScript in Svelte files. Less robust type checking for component props leads to potential runtime errors that could have been caught at compile-time.
Immature debugging and testing tools compared to React/Vue ecosystem
4Advanced development tools, debugging utilities, and testing frameworks are less mature for Svelte. Browser DevTools extensions are less feature-rich. Testing libraries lack maturity and thorough documentation compared to React Testing Library.
Difficulty selecting appropriate DevOps success metrics
4Organizations struggle to identify and measure metrics that align with business goals and reflect DevOps implementation success. Teams face confusion about which metrics (throughput, stability, user satisfaction) matter most for decision-making and improvement tracking.
Low tool adoption due to limited awareness of available security solutions
4Developers lack awareness about available npm security tools, with some respondents admitting they don't know what options exist. This contributes to only 40% satisfaction with current security tools despite available solutions.
Documentation not beginner-friendly despite Svelte's target audience
4Official Svelte documentation is not tailored for beginners despite beginners being the primary target audience (senior developers already use React, Vue, Angular). Documentation should be reframed as 'JavaScript for beginners and dummies'.
SvelteKit file structure becomes unwieldy in large applications
4Even in small SPA-mode projects, the nested folder structure with multiple `+page`, `+layout`, and server-side files creates navigation and discoverability nightmares. Routing files strewn across a million folders makes codebase navigation difficult.
Large bundle sizes with many small components due to per-component runtime
4Each Svelte component generates its own runtime code. In applications with many small components, this results in larger bundle sizes compared to runtime-based frameworks. Reactivity system can cause unnecessary updates in complex scenarios.
Limited TPU Architecture (Training Restriction)
4TensorFlow's TPU architecture only allows execution of models but does not allow training on TPUs, limiting the use of specialized hardware accelerators for training workflows.
No plugin support (e.g., TimescaleDB extensions)
4SQLite does not support database extensions or plugins like TimescaleDB for PostgreSQL, limiting optimization options for specialized workloads such as time-series data processing.
Refresh token revocation on user password change
4When users change passwords, refresh tokens may be revoked by OAuth providers, forcing applications to handle re-authentication. Graceful re-auth flows must be implemented to prevent user frustration.
Verbose Model Definition Processes
4TensorFlow requires verbose model definition processes that add overhead to prototyping and model definition compared to more concise frameworks.