Pains

2403 pains collected

Category:
Tech:
Severity:

Lack of generic const expressions feature

5

Generic const expressions is the leading unimplemented/nightly-only feature blocking Rust development. 18.35% of developers say it would unblock their use case and 41.53% say it would improve their code.

compatibilityRust

GraphQL steep learning curve and debugging complexity

5

GraphQL has a significant learning curve compared to REST APIs. Developers must learn schema definitions, resolvers, and query structures, and debugging is more complex. Studies show developers find GraphQL challenging and time-consuming to learn with limited knowledge-base resources.

docsGraphQL

React mindset mismatch for Svelte newcomers

5

Developers migrating from React struggle with Svelte's different mental model. Features like top-level awaits and reactive blocks ($: syntax) feel 'loose' compared to React's function-first approach, creating learning friction and potential debugging issues from nested reactive declarations.

migrationSvelteReact

Additional build tool dependency and complexity

5

Tailwind requires adding a build step to the development pipeline, preventing simple file-based deployment or client-side sandboxing without preprocessing. Integration with various build systems (e.g., SvelteKit) adds configuration complexity.

buildTailwind CSS

Steep learning curve for utility-first approach

5

Beginners struggle to understand the large number of utility classes, their naming conventions, and how they compose together. The onboarding time is significant even with comprehensive documentation, as developers must memorize extensive class names.

onboardingTailwind CSS

Svelte may lack concurrent mode equivalent indefinitely

5

Svelte may never be able to implement an equivalent of React's concurrent mode, which could be a significant limitation. While Rich Harris intends to implement Suspense equivalents, there's no guarantee Svelte can achieve React's concurrent capabilities.

performanceSvelteReact

Slow app store review process delays security fixes

5

On macOS and Windows, app store review processes can take days, preventing developers from deploying critical bug fixes and security patches immediately when they're ready, unlike on Linux platforms.

deployElectron

Dependency on Chromium version coupling and control issues

5

Developers must bundle Chromium to control stability, security, and reliability independently from OS WebViews that are tightly coupled to the operating system. However, this creates a tension between bundling bloat and maintaining control over platform stability.

dependencyElectronChromium

Server/client data shape mismatches

5

Data structures often differ between the database and GraphQL responses. For example, a database field like `authorId` might be transformed into a nested object in GraphQL responses, creating misalignment and complicating data mapping.

dataGraphQL

Steep learning curve and complexity for new developers

5

While Electron promises to use familiar web technologies, developers unfamiliar with its specific nuances face a steep learning curve, particularly in debugging and managing application environments. Mismanaged expectations and need for continuous education can extend project timelines.

dxElectronJavaScript

Docker incompatibility with certain Python frameworks

5

Some Python libraries and frameworks (notably PySpark) cannot be easily used with Docker, forcing developers to choose between containerization approaches or framework selection, limiting deployment flexibility.

deployPythonDockerPySpark

GraphQL breaking change management without tooling support

5

GraphQL discourages breaking changes but provides no built-in tools to manage them, forcing developers who control all their clients to find workarounds and add needless complexity.

compatibilityGraphQL

Complex inter-process communication between Electron windows

5

Each Electron window runs as a separate process with no easy way to share data between them. IPC implementation and broadcastChannel API have limitations like non-shared memory and inability to pass non-standard data types.

architectureElectronIPC

Misleading bundle size metrics and increased HTML payload

5

While Tailwind markets tiny CSS bundles (<10kb), the actual HTML files grow 2-3x larger due to numerous utility classes per element. One project saw CSS shrink 45kb→8kb but HTML grow 120kb→340kb, resulting in a net 183kb increase, contrary to marketing claims.

performanceTailwind CSS

Poor IDE and downstream integration of C# language features

5

New C# language features (top-level statements, global includes) are sometimes delivered with incomplete IDE polish, integration issues, and downstream problems in ASP.NET Core. The implementation itself works, but the tooling and delivery experience suffers.

dxC#ASP.NET Core

Antivirus software blocking Electron applications

5

Windows Defender and third-party antivirus software frequently flag Electron apps as suspicious during development and production, requiring temporary disabling for testing or code signing certificates to avoid false positives.

compatibilityElectronWindows

Missing native CSS mixins and functions

5

Developers still rely on preprocessors like Sass, Less, and PostCSS for mixins and advanced functionality, despite repeated requests for native CSS support. This perpetuates tool dependencies and learning curves.

ecosystemCSSSassLess+1

Cloudflare configuration complexity and SSL certificate setup

5

Users struggle with the complexity of Cloudflare's configuration, particularly with setting up SSL certificates correctly, requiring navigation of an extensive feature set.

configCloudflareSSL/TLS

CSS implicit logic is unpredictable compared to imperative programming

5

CSS's declarative paradigm with implicit conditional logic (selectors, cascade, variables, media queries) produces unpredictable outcomes. Unlike JavaScript or C++, CSS control flow is invisible and relies on the browser resolving conflicting constraints.

dxCSS

Poor object layout and bucket organization leads to high query costs and governance issues

5

Without standardized prefixes, partitioning, and clear bucket purposes, teams struggle with governance and incur unnecessary query costs. Working with very large buckets containing millions of objects becomes cumbersome without solid organization and lifecycle policies.

configAmazon S3

Disconnect between designer and developer CSS practices

5

There is a 'canyon' between aesthetically-driven CSS written by designers and code-maintainable CSS written by developers, resulting in brute-force implementations that ignore CSS's strengths.

dxCSS

Excessive workflow complexity requiring explicit push operations

5

Git requires developers to explicitly push commits to origin after local commits, creating a two-step workflow more complex than traditional VCS. Developers frequently forget to push, leading to confusion when colleagues pull and cannot see changes.

dxGit

Using JavaScript instead of CSS for tasks now handled natively

5

Developers continue to write JavaScript for functionality that modern CSS now handles natively, such as container queries, the `:has()` selector, scroll-linked animations, and view transitions. This creates unnecessary complexity and hurts performance.

performanceJavaScriptCSS

New CSS features add complexity without resolving core issues

5

New features like container queries and cascade layers add layers of complexity but don't fully resolve underlying declarative paradigm problems. Features like cascade layers don't eliminate unintended override risks in complex applications.

ecosystemCSScontainer queriescascade layers