~/talk

Principles for Modular, Functional, Approachable Libraries

Talkat Scala World 2015 · 2015-09-20..09-22· [developer-experience]
links:none on file
slides:none on file

Cats and Algebra aim to lower barriers to functional Scala by rethinking encodings, benchmarks and docs; Cats ships ~nine months after start with 45 contributors, ~1,000 commits, 174 issues and 363 PRs. The library builds a stack‑safe laziness primitive called Eval (three modes: now/later/always) to preserve composable fold and trampolined execution. Design choices favor a modular, platform-independent core with JVM/JS-specific modules, heavy property tests, explicit laws, and a governance style that still needs formalizing.

AI-written summary · about

  1. 0:00Start
  2. 10:52Summary: • A journey of almost 4 years. • Some practices adopted very early leg benchmarking
  3. 22:53What are they? 1. Perceptions of difficulty 2. Performance concerns 3. Stability concerns
  4. 24:37How to overcome them? 1. Tutorials and examples (which work!) 2. Documentation tests, benchmarks, and profiling 3. Stand firm on important principles 4. Compromise on incidental details 5. Accept responsibility for education 6. Provide high-quality libraries
  5. 27:21What are they? 1. Perception of diques 2. Imposter syndrome and delayed feelings of mastery 3. Powerful but confusing libraries
  6. 31:38How to overcome them? 1. Model good technical and social practices 2. Reach out and welcome newcomers 3. Acknowledge the limits of our own knowledge 4. Provide opportunities for new work 5. Accept responsibility for education and codes of conduct 6. Foster a stable, long-term, supportive community
  7. 48:051. Stack sale by default 2. Express partiality with values not exceptiona 3. Minimize allocations where possible 4. Property-based testing 5. Aim for 100% test coverage 6. Benchmarking and real world tests
  8. 50:351. Avoid ineffecient default implementation 2. Do benchmarking and profiling to measure behavior 3. Perform manual mechanical optimizations if possible 4. Design low-level abstractions with performance in mind 5. Make common syntax/usage efficient
~/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.