Pains
204 pains collected
Structural subtyping creates false type relationships that can't be resolved
4TypeScript'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.
Misleading TypeScript type errors for valid code patterns
4TypeScript 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.
TypeScript standard library lacks Temporal type definitions
4TypeScript'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.
Object-oriented programming integration issues with numeric/data libraries
4Python'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.
Environmental impact from GitHub Actions CI/CD
4GitHub 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.
Increased code verbosity due to explicit type annotations
4TypeScript requires explicit type annotations and generates boilerplate code for common patterns (interfaces, generics), resulting in significantly more verbose code compared to JavaScript.
Difficulty using GitHub Actions Marketplace to find and evaluate actions
4Users 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.
Missing built-in statistics and machine learning functionality
4Python lacks integrated statistics and machine learning functionality in the standard library, requiring external library dependencies for these critical data science tasks.
TypeScript overhead unnecessary for small projects and prototypes
3For 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.
TypeScript encourages named exports over default exports, hindering SOLID design
3TypeScript'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.
Syntax and indentation error sensitivity
3Python'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.
Multiple package managers and confusion over choosing between them
3Python 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.