Pains

2403 pains collected

Category:
Tech:
Severity:

GPU Memory Hogging and Allocation Issues

6

TensorFlow attempts to allocate all available GPU memory on startup, which can prevent other code from accessing the same hardware and limits flexibility in local development environments where developers want to allocate portions of GPU to different tasks.

performanceTensorFlowGPUCUDA

Scalability Cost Challenges in Cloud Deployment

6

When scaling TensorFlow projects on cloud platforms with high-cost GPU configurations, training time grows exponentially, forcing developers to either optimize algorithms or migrate infrastructure, leading to significant cost and complexity issues.

performanceTensorFlowGPUCloud

Complex hyperparameter tuning and optimization workflow

6

Performance tuning in TensorFlow requires developers to manually fine-tune numerous hyperparameters (learning rate, batch size), optimize data pipelines, and balance model complexity against accuracy. This trial-and-error process is time-consuming and lacks systematic guidance.

dxTensorFlowKeras

Poor JavaScript/web developer experience

6

TensorFlow is primarily optimized for Python developers. JavaScript support is fragmented and non-intuitive, making it difficult for web and mobile app developers to use TensorFlow compared to regular JavaScript libraries.

ecosystemTensorFlowJavaScript

Static Computational Graph Rigidity

6

TensorFlow's static computational graph model requires developers to define the entire computational graph before execution, which is less flexible than dynamic graph alternatives like PyTorch and challenging for complex, evolving models.

architectureTensorFlowPyTorch

Low flexibility and prototyping friction compared to PyTorch

6

TensorFlow's rigid architecture makes rapid prototyping cumbersome. Many developers prototype in PyTorch first, then convert to TensorFlow for production—evidence that TensorFlow is less suitable for exploratory work.

dxTensorFlowPyTorch

Lack of awareness about 'using' keyword for resource disposal

6

Many C# developers are unfamiliar with the dual purpose of the 'using' keyword, not recognizing it as a tool for proper object disposal and resource cleanup beyond namespace imports. This leads to resource leaks and improper memory management.

dxC#

Rapid Tool and Framework Proliferation Causes Fatigue

6

Developers struggle to keep up with an overwhelming number of new and existing tools and frameworks (26% reported challenge in 2021). This creates decision paralysis, version fragmentation where teams become stuck on older versions, and costly migration efforts when attempting to upgrade.

ecosystem

Framework lock-in due to tight Tailwind coupling

6

Projects become tightly coupled with Tailwind CSS, making it difficult or requiring significant refactoring to switch to another CSS framework or approach. This reduces long-term flexibility and portability.

migrationTailwind CSS

Configuration file complexity and management

6

As Tailwind projects grow, the tailwind.config.js file becomes increasingly complex and difficult to manage. Customizing themes, breakpoints, and integrating plugins requires careful consideration and can create large, hard-to-understand configuration files, especially problematic for larger teams managing intricate design systems.

configTailwind CSS

Historical Java performance is poor on resource-constrained devices

6

Java's performance on mobile and embedded systems is notably poor. Game designer John Carmack noted Java phones had CPU power equivalent to a 4.77 MHz IBM PC despite modern hardware being far superior.

performanceJava

Untyped legacy collections create cognitive overhead when modernizing

6

Large Java codebases using pre-generics untyped collections (e.g., plain List, Map) require developers to hunt through code to determine container contents. Modernization to typed generics requires extensive refactoring.

migrationJava

Svelte 5 migration blocked for large codebases due to breaking changes

6

Large monolithic codebases cannot migrate to Svelte 5 without freezing development. Only microfrontends (from monolith decomposition) have been able to adopt Svelte 5 without issues.

migrationSvelte

SvelteKit lags behind peers for full-stack application development

6

SvelteKit feels behind competing frameworks when building real full-stack applications, separate from reactivity/runes concerns. Fundamental platform maturity gap exists.

architectureSvelteKit

Poor debugging and tooling support compared to established frameworks

6

Svelte lacks comprehensive debugging capabilities and IDE support comparable to React or Angular. While the Svelte compiler is fast, it doesn't offer the same level of debugging features, making it harder for developers to identify and fix issues in their code.

dxSvelte

Memory leaks from improper lifecycle event handling

6

Developers often fail to properly handle component lifecycle events in Svelte, particularly failing to unsubscribe from stores or clean up side effects in onDestroy, leading to memory leaks.

performanceSvelte

Runes reactivity complexity in edge cases

6

Svelte's runes-based reactivity system works well for basic use cases but becomes problematic in complex scenarios with multiple reactive dependencies. Developers need to use getters and setters to pass reactive variables into functions, creating unintuitive patterns when combining features like signals with effects and derived state.

dxSvelterunes

Battery drain on laptops and mobile devices

6

Electron applications consume significant power due to continuous background processes including the Chromium engine, leading to rapid battery depletion on laptops and mobile devices, causing user frustration and driving adoption of more efficient alternatives.

performanceElectronChromium

Poor performance on macOS with heavy apps and API changes

6

Electron apps exhibit quirky behavior and performance issues on macOS, particularly with heavy applications or when Apple changes system APIs, leading to instability and requiring additional maintenance effort.

compatibilityElectronmacOS

Slow startup times and app brittleness from live web page deployment

6

Some teams ship Electron apps as live web applications instead of self-contained binaries, resulting in slower load times, app brittleness, security risks, and poor offline functionality.

dxElectron

CSS rendering performance and reflow issues

6

Large, unoptimized CSS files cause reflows and sluggish UIs on high-traffic sites. Browser reflow operations on every interactive change degrade performance, particularly on older devices.

performanceCSS

Operator precedence surprises in pattern matching and null-coalescing

6

The `??` (null-coalescing) operator and pattern matching operators have unintuitive precedence rules. For example, `x is not 0 or 1` evaluates as `(x is not 0) or 1` rather than the intended `x is not (0 or 1)`, leading to subtle bugs and redundant logic.

dxC#

Frequent breaking changes and rapid major version releases create maintenance burden

6

Next.js has introduced 15 major versions in 8 years, each potentially containing backwards-incompatible changes. This creates significant maintenance burdens for long-term projects and makes it difficult for teams to keep applications updated.

migrationNext.js

Loss of fundamental CSS knowledge among developers

6

Developers using Tailwind are abstracting away core CSS knowledge (Flexbox, Grid, positioning). Junior developers can use Tailwind classes but don't understand the underlying CSS properties, creating a generation gap in web platform fundamentals.

dxTailwind CSSCSS