Explores the distinction between essential complexity (inherent to the problem itself) and accidental complexity (introduced by poor tool or approach choices). Using real examples like migrating from JavaScript to TypeScript for large-scale enterprise apps, the post explains how following best practices reduces accidental complexity, while anti-patterns like duck-typing in JavaScript can amplify it. The key takeaway: understand whether a problem is hard by nature or hard because of how you're approaching it — and know the rules before you break them.

9m read timeFrom khalilstemmler.com
Post cover image
Table of contents
Essential complexityAccidental complexityAccidental complexity is introduced by failing to use best practicesSometimes best practices are a lot of workAnti-patterns can introduce essential complexityBreaking best practices and implementing anti-patternsResourcesConclusion
1 Impression