Opinionated Frameworks: Software Engineering Theory and Practice

Eclectic notes for a presentation I gave

Meme

  1. Lots of “opinionated frameworks” recently
  2. Meme lifecycle: meaning won’t last, probably

Opinionated

  1. Iconoclastic, counter intuitive, even irrational
  2. Resistance to idealizations, oversimplistic principles, abstractions, first approximations
  3. Abstractions essential for beginners, but harmful for advanced/realistic cases
  4. Avoid examples [Dijkstra], unrealistic academic exercises
  5. Worse is better

Disclaimers/methodology

  1. Form of the book
  2. No skills transfer, but provocation: “make them think”
  3. Metacognition
  4. Critical theoretic specific kind of negativity
  5. Performativity

Web (time-) scale

  1. MVC, SEO, RIA, UI/UX
  2. CAP, ACID/BASE
  3. CSS frontiers, why really hard to solve
  4. REST et al (eg, esp SEO) harmful for UX (RIA)

Ecosystems: packaging

  1. pip, virtualenv, gems, eggs, deb/APT, bundle, NPM… CPAN ;o)
  2. Depedencies
  3. Extend vs use, OOP vs monkey patching
  4. Reuse, fragile base class

IDE to CLI

  1. Rails
  2. vi, Emacs, RISC/CISC, Vim, Sublime
  3. Scripting (scaffolding, deployment, testing, migrations, SCM…)
  4. Prof Dijkstra on notations

Node.js

  1. “The best reason to pay attention to Node.js is the audience that is paying attention to it.”
  2. Meteor, et al

Shallow vs deep

  1. Expert systems: deep vs shallow modeling
  2. Transistors to logic circuits to Von Neuman to compilers to kernels to… distributed (Internet)
  3. Synchronizers and NICs
  4. Wrapping (hiding) semaphores in C++
  5. C++ pointers to methods
  6. 12 year olds publish “apps”
  7. “Nobody reads Knuth anymore”
  8. CMM, UML?

Conway’s Law

  1. “[…] skeptical of the claim that the reasons the approach isn’t more common are predominantly cultural and intrastructural — debugging large asynchronous applications would seem to be a real challenge […]”
    “[…] architectural decision to restrict multiple thread access to C bindings rather than JavaScript — throttling access to experts, at least in theory — interesting.”



Comments are closed.