How to Design an IDE-Friendly Language
summary
JetBrains compares many languages and claims five things make IDE support cheap: single-file indexability so editors only reindex one file, clear unambiguous syntax to avoid parsing or macros, explicit declarations so go-to and rename work, resolvable references without project-wide inference, and static typing speeds things up for fast, reliable refactorings. Examples include Java’s source‑level version flags, C/C++ includes forcing massive reindexing, Haskell’s custom operators requiring cross‑file lookup, and Groovy’s annotation processors/AST transforms that demand duplicating compile logic in the IDE.
AI-written summary · about
chapters (24)
- 0:00Intro
- 0:43Myself working on language support infrastructure
- 1:48What's IDE-friendly? Basic support
- 3:24An IDE needs to recognize...
- 6:47By single file's content: violations
- 9:49Determine syntactic construction
- 10:331.1. Syntax scrambled by templating/macros
- 11:511.2. Syntax depending on non-local information
- 13:331.3. Complicated parsing
- 14:291.4. Slow parsing
- 15:051.5. Syntactic ambiguities on incomplete code
- 17:51What's declared?
- 19:072.1. Declaring by call
- 20:5822. Declaring by compiler plugin
- 23:01Which names are referenced?
- 23:58Which names are referenced: implicit calls
- 27:023. Which names are referenced: Java lambdas
- 29:58Resolve hints: where to look for declarations
- 31:45Resolve hints: ideal (Haskell)
- 32:364. Resolve hints: Java
- 34:394. Resolve hints: local type inference
- 35:244. Resolve hints: return type inference
- 38:57constraints to boost your creativity!
- 43:23IDE-friendly and people-friendly
related talks
07mA quick word about JetBrains now and later
01h 03mWhy Do Developers Love IntelliJ IDEA?
58mHow We Support New Technologies, Languages, and Frameworks in IntelliJ IDEA
51mIntelliJ IDEA based IDEs Tips & Tricks
51mIntelliJ IDEA-Based IDE Tips & Tricks
57mBeyond Text: The Future of IDEs
45mThe Battle of the IDEs
27mA Go IDE: Because Semantics Matter
