abstraction
35:32Cheng Lou - On the Spectrum of Abstraction at react-europe 2016
63K views • 10 years ago
ReactEurope
Cheng Lou's react-europe 2016 talk lays out a mental framework for thinking about abstraction levels in JavaScript tooling, from Angular and Grunt to Webpack and React. It uses that framework to reason about the cost of abstractions and how to choose between competing solutions.
59:53CppCon 2019: Chandler Carruth “There Are No Zero-cost Abstractions”
147K views • 7 years ago
CppCon
Chandler Carruth argues in a CppCon 2019 talk that C++ has no truly zero-cost abstractions. Using examples like unique_ptr, ABI constraints and compile-time costs, he shows that abstractions cost runtime, compile time or human effort.
21:58Group theory, abstraction, and the 196,883-dimensional monster
3.8M views • 6 years ago
3Blue1Brown
3Blue1Brown introduces group theory and abstract groups, then builds toward classification of finite simple groups and the enormous Monster group with its 196,883 dimensions.
25:01Dan Abramov The wet codebase
27K views • 5 years ago
eswarnichtsmehrfrei
Dan Abramov's talk on the wet codebase, using visualizations to show how removing all duplication too early produces wrong abstractions that are hard to unwind.
Topic match · Software architecture & design
0:23Carl Sagan: If you wish to make an apple pie from scratch, you must first invent the universe.
323K views • 16 years ago
pkrumins
A very short clip of Carl Sagan saying that to make an apple pie from scratch you must first invent the universe. It illustrates how everything depends on a chain of prior things.
Topic match · Software architecture & design
38:47RailsConf 2014 - All the Little Things by Sandi Metz
190K views • 12 years ago
Confreaks
Sandi Metz takes an ugly section of conditional code and refactors it into a few simple objects, bridging object-oriented theory and practice. The talk includes her take on the Gilded Rose refactoring kata and the idea that duplication is cheaper than the wrong abstraction.
Topic match · Software architecture & design
1:12:56Lecture 1A: Overview and Introduction to Lisp
420K views • 7 years ago
MIT OpenCourseWare
The first lecture of MIT's 6.001 (SICP) with Abelson and Sussman, giving an overview of the course and an introduction to Lisp. It argues that computer science is about managing complexity and abstraction, not computers.
Topic match · Software architecture & design
1:04:41Jonathan Blow - Preventing the Collapse of Civilization (English only)
268K views • 7 years ago
bus
Jonathan Blow's DevGAMM 2019 talk argues that software knowledge is being lost between generations and that growing layers of abstraction could lead to a decline in technological civilization.
Topic match · Software architecture & design
51:40Constraints Liberate, Liberties Constrain — Runar Bjarnason
44K views • 10 years ago
Scala World
Runar Bjarnason's Scala World talk argues that restraint and precision in components beat power and flexibility. Constraints on parts make them easier to compose into systems.
Topic match · Software architecture & design
47:02Elm Europe 2017 - Evan Czaplicki - The life of a file
72K views • 9 years ago
Elm Europe
Elm creator Evan Czaplicki's talk on how a file grows and when to split code up. He argues for keeping code in one file until it hurts and warns against premature extraction.
Topic match · Software architecture & design
35:53RailsConf 2015 - Nothing is Something
84K views • 11 years ago
Confreaks
Sandi Metz argues that hidden assumptions in code are missing concepts, and shows how to name and expose them so code is easier to understand and change. It covers null objects and messages in Ruby.
Topic match · Software architecture & design
1:01:40A Philosophy of Software Design | John Ousterhout | Talks at Google
547K views • 8 years ago
Talks at Google
John Ousterhout, Stanford professor and creator of Tcl, presents the ideas of his book A Philosophy of Software Design in a Talks at Google session. He covers managing complexity, deep modules and interfaces, and what he teaches in his Stanford software design course.
Topic match · Software architecture & design
1:01:39"Simple Made Easy" - Rich Hickey (2011)
434K views • 5 years ago
ClojureTV
Rich Hickey's Strange Loop 2011 keynote separates 'simple' (not intertwined) from 'easy' (familiar or near at hand) and argues that software complexity comes from complecting things. It offers a vocabulary for judging designs and abstractions.
Topic match · Software architecture & design
51:07Alan Kay, 2015: Power of Simplicity
145K views • 11 years ago
Kenneth Friedman
Alan Kay's 2015 talk on the power of simplicity, arguing that systems become simpler by building on more sophisticated fundamental building blocks and that big research horizons drove invention at Xerox PARC. It ranges across computing, tools and scaling software.
Topic match · Software architecture & design
1:06:44Programming is terrible—Lessons learned from a life wasted. EMF2012
1.7M views • 13 years ago
tef ebooks
Tef's EMF 2012 talk on lessons from a career in programming, a candid and humorous look at why programming is so often terrible. Slides and a draft script are available online.
Topic match · Software architecture & design
44:35Object-Oriented Programming is Bad
2.6M views • 10 years ago
Brian Will
Brian Will makes the case for procedural programming over object-oriented programming, arguing that OOP's promised encapsulation and decoupling are largely illusory. He analyzes real code examples and the problems of tying data to behavior in classes.
Topic match · Software architecture & design
27:29Stop Writing Classes
962K views • 14 years ago
Next Day Video
Jack Diederich's PyCon 2012 talk argues that classes are overused in Python and walks through real code, refactoring away unnecessary classes, exceptions and modules. It popularized the heuristic that a class with two methods, one being __init__, should be a function.
Topic match · Software architecture & design
2:50:14Simple Code, High Performance
463K views • 5 years ago
Molly Rocket
Casey Muratori's University of Twente guest lecture is a case study in how straightforward code can cut thousands of lines and tens of seconds of runtime down to a few dozen lines running in under a second. It uses concrete examples to show why software is often an order of magnitude slower than it should be.
40:39Category Theory in Life - Eugenia Cheng
113K views • 9 years ago
Lambda World
Eugenia Cheng gives the opening keynote at Lambda World 2017, presenting category theory as very abstract algebra whose abstraction gives it broad applicability. She applies it to everyday questions including privilege and prejudice.
2:00:10Oral History of Bjarne Stroustrup
75K views • 11 years ago
Computer History Museum
A two-hour Computer History Museum oral history interview with Bjarne Stroustrup, conducted by Paul McJones in 2015. It covers his youth, education at Aarhus and Cambridge, his career at Bell Labs and elsewhere, and the design and evolution of C++.
1:01:39"Simple Made Easy" - Rich Hickey (2011)
219K views • 5 years ago
Strange Loop Conference
Rich Hickey's Strange Loop 2011 keynote distinguishing 'simple' (not intertwined) from 'easy' (familiar or near at hand). It argues that software complexity comes from complecting things and that we should pick simple constructs.
Topic match · Software architecture & design
25:06"Making Impossible States Impossible" by Richard Feldman
63K views • 10 years ago
elm-conf
Richard Feldman's elm-conf talk on designing models so that bugs from impossible application states cannot occur, using Elm's compiler and types. It demonstrates techniques for making invalid states unrepresentable.
Topic match · Software architecture & design
1:00:19How To Design A Good API and Why it Matters
453K views • 19 years ago
Google TechTalks
Joshua Bloch's Google Tech Talk on how to design good APIs and why it matters, with concrete principles and examples. It treats every programmer as an occasional API designer.
Topic match · Software architecture & design
31:44The Value of Values with Rich Hickey
145K views • 14 years ago
InfoQ
Rich Hickey's JaxConf 2012 keynote examines what values are and why immutable values matter as information systems grow more complex and data gets bigger. It contrasts places with values and builds the case for immutability.
Topic match · Software architecture & design
1:02:26Solving Problems the Clojure Way - Rafal Dittwald
87K views • 7 years ago
Clojure/north
Rafal Dittwald's Clojure/north talk shows how to move from writing Java-style code in Clojure to thinking in data-driven, functional terms. He walks through a JavaScript example, refactoring imperative code step by step into a functional core.
Topic match · Software architecture & design
1:04:04Overwatch Gameplay Architecture and Netcode
196K views • 7 years ago
GDC Festival of Gaming
Blizzard's Timothy Ford explains in this 2017 GDC session how Overwatch uses an Entity Component System architecture for layered gameplay. He also covers its server-authoritative netcode with client-side prediction and how they keep the game responsive and fair.
Topic match · Software architecture & design
1:07:26Alan Kay - Normal Considered Harmful
60K views • 14 years ago
powerfuloutlet
Alan Kay's 2009 UIUC talk arguing that computing is more a pop culture than a science and that ignoring history and fundamentals leads to inferior solutions. He touches on the history of interactive environments and what the web should have been.
Topic match · Software architecture & design
1:18:21"Uncle" Bob Martin - "The Future of Programming"
1.8M views • 10 years ago
Paul Stringer's Mobile Tech
Robert C. Martin (Uncle Bob) traces the history of software from 1948 to today, looking at the problems programmers faced, how they were solved, and what mistakes the profession made. He then projects where the field is going, including professionalism and regulation.
Topic match · Software architecture & design
39:49Hammock Driven Development - Rich Hickey
333K views • 13 years ago
ClojureTV
Rich Hickey's philosophical talk from the first Clojure Conj in 2010. He argues that good design comes from deliberate, away-from-keyboard thinking, and describes how to feed the background mind so it solves problems.
Topic match · Software architecture & design
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
176K views • 9 years ago
ClojureTV
Rich Hickey's talk at Clojure's tenth anniversary on the kind of programs Clojure is designed for. He argues for situated programs that deal with changing requirements, and for dynamic typing and data over static types.
Topic match · Software architecture & design
1:06:39Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin
172K views • 14 years ago
Confreaks
Robert C. Martin's Ruby Midwest 2011 keynote argues that software architecture should express the application's intent rather than its framework. He covers separating entities, interactors and boundaries so the web, database and framework are details.
Topic match · Software architecture & design
1:03:31Brian Goetz - Stewardship: the Sobering Parts
39K views • 11 years ago
ClojureTV
Java Language Architect Brian Goetz talks at a Clojure conference about the challenges of evolving a mature language like Java while preserving compatibility with existing code and developer expectations. It also gives a look at where the platform is headed.
Topic match · Software architecture & design
42:30RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
152K views • 8 years ago
Rust Programming Language
Catherine West's RustConf 2018 closing keynote on building a game in Rust and organizing a large codebase. It builds up an entity component system and generational indices step by step.
Topic match · Software architecture & design
1:15:51Jonathan Blow - How to program independent games - CSUA Speech
190K views • 13 years ago
Alexandre Franco
Jonathan Blow speaks at UC Berkeley's CSUA about how to program independent games. He argues for keeping code simple, avoiding unnecessary work, and shipping.
Topic match · Software architecture & design
45:55Ruby Conf 12 - Boundaries by Gary Bernhardt
58K views • 13 years ago
Confreaks
Gary Bernhardt's RubyConf 2012 talk on testing in isolation without mocking everything. It goes through behavior versus data, mutation versus immutability, and how a functional core with an imperative shell yields natural isolation and parallelism.
Topic match · Software architecture & design
53:25The Only Unbreakable Law
487K views • 4 years ago
Molly Rocket
Casey Muratori's lecture, originally given at the Technical University of Madrid, arguing that Conway's Law is the only viable candidate for a true law of software architecture. He explains how software mimics the organization over time, using examples like Windows' multiple volume controls.
Topic match · Software architecture & design
1:16:14Spec-ulation Keynote - Rich Hickey
135K views • 9 years ago
ClojureTV
Rich Hickey's keynote on software versioning, arguing that breaking changes are the real problem and that libraries should only grow by providing more and requiring less. It critiques semantic versioning and ties into Clojure spec.
Topic match · Software architecture & design
1:27:46CppCon 2014: Mike Acton "Data-Oriented Design and C++"
862K views • 12 years ago
CppCon
Mike Acton of Insomniac Games argues that a program's purpose is transforming data, and shows how common C++ approaches work against that in performance-critical game development. He covers cache behavior, data layout and the limits of compilers.
Topic match · Software architecture & design
2:11:32How I program C
1M views • 9 years ago
Eskil Steenberg
Eskil Steenberg's two-hour talk on his personal approach to writing C, covering code style, structure, naming, pointers and large-project organization. He warns it contains a fair bit of programming religion.
Topic match · Software architecture & design
1:02:50The Language of the System - Rich Hickey
174K views • 13 years ago
ClojureTV
Rich Hickey's 2013 talk applies language-design thinking to whole systems, covering names, queues, data, failure, and the interfaces between programs. It ends with a call to action for building systems holistically.
Topic match · Software architecture & design