Pains

204 pains collected

Severity:

Structural subtyping creates false type relationships that can't be resolved

4

TypeScript's structural subtyping can incorrectly evaluate one type as a subtype of another based on API similarity alone, creating assumed relationships that don't actually exist semantically (e.g., Set and WeakSet). This blind spot cannot be resolved at the type level and forces developers to solve non-existent problems.

compatibilityTypeScript

Misleading TypeScript type errors for valid code patterns

4

TypeScript reports compilation errors for hardcoded values that clearly match their expected types (e.g., a hardcoded string 'compact' matching the literal type 'compact'), causing false positive errors and frustration.

docsTypeScript

TypeScript standard library lacks Temporal type definitions

4

TypeScript's standard library type definitions have not kept pace with JavaScript's TC39 proposals. Temporal began shipping in JavaScript engines but TypeScript issue #60164 shows the type definitions are still missing, creating a gap between runtime capabilities and type safety.

compatibilityTypeScriptTemporal

Object-oriented programming integration issues with numeric/data libraries

4

Python's object-oriented paradigm doesn't integrate well with numeric and data manipulation libraries like NumPy and Pandas, creating an awkward development experience when combining OOP with these tools.

ecosystemPythonNumPyPandas

Environmental impact from GitHub Actions CI/CD

4

GitHub Actions workflows generated between 150.5 and 994.9 million tons of CO₂ equivalent in 2024, creating a significant environmental concern for companies mindful of their carbon footprint.

otherGitHub Actions

Increased code verbosity due to explicit type annotations

4

TypeScript requires explicit type annotations and generates boilerplate code for common patterns (interfaces, generics), resulting in significantly more verbose code compared to JavaScript.

dxTypeScript

Difficulty using GitHub Actions Marketplace to find and evaluate actions

4

Users struggle to find suitable actions in the GitHub Actions Marketplace and evaluate their quality. A survey revealed that 7 out of 25 participants found it difficult to navigate and select appropriate actions, leading some teams to maintain their own local actions instead.

ecosystemGitHub ActionsGitHub Actions Marketplace

Missing built-in statistics and machine learning functionality

4

Python lacks integrated statistics and machine learning functionality in the standard library, requiring external library dependencies for these critical data science tasks.

ecosystemPython

TypeScript overhead unnecessary for small projects and prototypes

3

For small, short-lived projects and quick prototypes, TypeScript's layer of complexity and configuration overhead is often unnecessary and slows down development compared to pure JavaScript. The time investment in typing doesn't provide proportional benefit for minimal codebases.

dxTypeScript

TypeScript encourages named exports over default exports, hindering SOLID design

3

TypeScript's tooling and community practices push developers toward named exports, which contradicts SOLID principles by increasing coupling and forcing knowledge of internal identifiers. This design pressure creates poor module encapsulation and makes refactoring harder, not easier.

dxTypeScript

Syntax and indentation error sensitivity

3

Python's reliance on whitespace for code blocks makes it sensitive to indentation errors, which can be elusive and lead to unexpected behavior. Combined with other syntax errors, these issues require careful attention and can be frustrating for developers.

dxPython

Multiple package managers and confusion over choosing between them

3

Python has multiple package managers (pip, pipenv, and others), making it challenging for beginners to decide which one to use and understand the benefits of each.

configPythonpippipenv