~/talk

How to Design an IDE-Friendly Language

Talkat JVM Language Summit 2018 · 2018-08-04..08-06· [developer-experience]
links:none on file
slides:none on file

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

  1. 0:00Intro
  2. 0:43Myself working on language support infrastructure
  3. 1:48What's IDE-friendly? Basic support
  4. 3:24An IDE needs to recognize...
  5. 6:47By single file's content: violations
  6. 9:49Determine syntactic construction
  7. 10:331.1. Syntax scrambled by templating/macros
  8. 11:511.2. Syntax depending on non-local information
  9. 13:331.3. Complicated parsing
  10. 14:291.4. Slow parsing
  11. 15:051.5. Syntactic ambiguities on incomplete code
  12. 17:51What's declared?
  13. 19:072.1. Declaring by call
  14. 20:5822. Declaring by compiler plugin
  15. 23:01Which names are referenced?
  16. 23:58Which names are referenced: implicit calls
  17. 27:023. Which names are referenced: Java lambdas
  18. 29:58Resolve hints: where to look for declarations
  19. 31:45Resolve hints: ideal (Haskell)
  20. 32:364. Resolve hints: Java
  21. 34:394. Resolve hints: local type inference
  22. 35:244. Resolve hints: return type inference
  23. 38:57constraints to boost your creativity!
  24. 43:23IDE-friendly and people-friendly
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.