simplicity
50:01Simplicity Ain't Easy - Stuart Halloway
24K views • 13 years ago
ClojureTV
Stuart Halloway argues that simplicity is objective, with a definition and etymology useful to programmers, rather than a subjective buzzword. He shows how this view informs Clojure's design and how to make programs simpler.
36:53Rails Conf 2012 Keynote: Simplicity Matters by Rich Hickey
220K views • 14 years ago
Confreaks
Rich Hickey's keynote at RailsConf 2012, a close sibling of his 'Simple Made Easy' talk. He distinguishes simple (not intertwined) from easy (familiar), and argues that software complexity comes from complecting things, with Rails-specific examples including large gem collections.
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.
23:12dotGo 2015 - Rob Pike - Simplicity is Complicated
172K views • 10 years ago
dotconferences
Rob Pike's dotGo 2015 talk argues that Go only seems simple, and that its simplicity hides real complexity that is part of the design. He explains the thinking behind Go's restraint in features.
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
22:29Gopherfest 2015 | Go Proverbs with Rob Pike
317K views • 10 years ago
The Go Programming Language
Rob Pike presents Go Proverbs at Gopherfest 2015, a set of pithy aphorisms about Go design such as 'Clear is better than clever' and 'A little copying is better than a little dependency'.
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
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
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
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
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
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
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
29:32Pete Hunt: React: Rethinking best practices -- JSConf EU
548K views • 13 years ago
JSConf
Pete Hunt of Facebook and Instagram introduces React at JSConf EU 2013 and explains its design principles. He argues that separating templates from logic only separates technologies, not concerns, and makes the case for components.
Topic match · Software architecture & design
45:50"The Mess We're In" by Joe Armstrong
398K views • 12 years ago
Strange Loop Conference
Joe Armstrong, co-inventor of Erlang, gives a funny and opinionated Strange Loop talk on the tangled state of software: build tools, package managers, entropy and the physical limits of computation. He argues for ideas like naming things by content hash and throwing away your first version.
Topic match · Software architecture & design
36:42Bottom Up vs Top Down Design in Clojure - Mark Bastian
29K views • 10 years ago
ClojureTV
Mark Bastian contrasts top-down object-oriented design with bottom-up, data-oriented design in Clojure. He models a board game as plain data plus small composable functions and compares it with a roughly 22-class OOP version.
Topic match · Software architecture & design
51:40Domain Modeling Made Functional - Scott Wlaschin
71K views • 9 years ago
NDC Conferences
Scott Wlaschin's NDC talk on using statically typed functional programming, F# in particular, to model a business domain. Types are used to represent the domain precisely and to encode business rules so that illegal states cannot be built, with the compiler acting as an instant unit test.
Topic match · Software architecture & design
30:12Casey Muratori | Smart-Pointers, RAII, ZII? Becoming an N+2 programmer
162K views • 2 years ago
xDahl
Casey Muratori argues against smart pointers and RAII, advocating grouped-element thinking, zero-is-initialization and stubs as better ways to structure memory and handle errors.
Topic match · Software architecture & design
46:06Gtk to Qt - a strange journey [linux.conf.au 2014]
46K views • 12 years ago
Konstantin Bläsi
Dirk Hohndel explains why the Subsurface dive log project migrated from Gtk to Qt, the obstacles encountered, and advice for other applications frustrated with Gtk. It is a linux.conf.au 2014 talk.
Topic match · Software architecture & design
54:52Introduction to NoSQL • Martin Fowler • GOTO 2012
1M views • 13 years ago
GOTO Conferences
Martin Fowler's GOTO 2012 introduction to NoSQL databases: where they came from, their data models, how consistency thinking differs, and when to use them. He argues they won't make relational databases obsolete and introduces polyglot persistence.
Topic match · Software architecture & design
45:00"Transducers" by Rich Hickey
116K views • 12 years ago
Strange Loop Conference
Rich Hickey introduces transducers in Clojure, a way to make map, filter and similar algorithms composable independent of the data source. This avoids duplicated implementations and intermediate collections across sequences, channels and streams.
Topic match · Software architecture & design
49:54The Clean Architecture in Python
114K views • 12 years ago
Next Day Video
Brandon Rhodes' PyOhio 2014 talk on applying the Clean Architecture in Python. He shows how this high-level design pattern fits Python's features and addresses maintainability problems in large applications.
Topic match · Software architecture & design
35:24The Unreasonable Effectiveness of Multiple Dispatch | Stefan Karpinski | JuliaCon 2019
79K views • 7 years ago
The Julia Programming Language
Julia co-creator Stefan Karpinski explains why multiple dispatch makes Julia code and types reusable across packages with so little friction. He covers sharing basic types and sharing generic algorithms.
Topic match · Software architecture & design
40:58Pete Hunt: React - Rethinking Best Practices (updated) - JSConf.Asia 2013
58K views • 12 years ago
JSConf
Pete Hunt of Facebook and Instagram presents React at JSConf.Asia 2013, explaining its design principles and why they seemed shocking at first. He argues that React separates concerns rather than technologies, and the talk also announces the React Chrome developer tools.
Topic match · Software architecture & design
28:03Object-Oriented Programming is Embarrassing: 4 Short Examples
2.2M views • 10 years ago
Brian Will
Brian Will follows up his earlier anti-OOP video by walking through four short code examples, including Java code in the style of Uncle Bob, to show how object-oriented design complicates simple programs. It argues that OOP hides and scatters state and adds needless indirection.
Topic match · Software architecture & design
43:50Founder School Session: The Future Doesn't Have to Be Incremental
47K views • 12 years ago
DEMO
Alan Kay speaks at the DEMO Founder School session on why real progress takes invention rather than incremental innovation. He argues for problem-oriented thinking and long-term research funding.
Topic match · Software architecture & design
23:38Interactive notebooks ~ Pluto.jl | Fons van der Plas | JuliaCon 2020
48K views • 6 years ago
The Julia Programming Language
Fons van der Plas introduces Pluto.jl, a reactive notebook for Julia that tracks references between cells and re-runs affected cells when code changes. The talk was given at JuliaCon 2020.
Topic match · Software architecture & design
59:50Leslie Lamport: Thinking Above the Code
403K views • 12 years ago
Microsoft Research
Leslie Lamport argues that programmers, like architects, should write rigorous specifications before coding, especially for concurrent and distributed systems. The talk introduces the case for writing specs (the TLA+ mindset) as a way of thinking above the code.
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
32:23Rails Conf 2013 The Magic Tricks of Testing by Sandi Metz
144K views • 13 years ago
Confreaks
Sandi Metz's RailsConf 2013 talk offers practical guidelines for deciding what to test and how, so tests stay cheap and stable. She argues for testing the public interface rather than implementation and using mocks appropriately.
Topic match · Software architecture & design
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.
Topic match · Software architecture & design
44:36Hacker Way: Rethinking Web App Development at Facebook
900K views • 12 years ago
Meta Developers
Facebook engineers explain why they abandoned the traditional MVC paradigm for a more functional architecture, introducing Flux and React. They use the unread-message-count bug as a case study of the problems of bidirectional data flow at scale.
Topic match · Software architecture & design
56:39Alan Kay - Programming and Scaling
36K views • 11 years ago
Colin McDonnell
An Alan Kay talk on programming and scaling, covering theoretical limits of code size, engineering versus tinkering, and biological cells as inspiration for object-oriented design.
Topic match · Software architecture & design
46:40Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)
415K views • 2 years ago
ChimiChanga
Andrew Kelley, creator of Zig, presents practical data-oriented design techniques for shrinking memory footprint and making programs cache friendly. He ends with a case study of how these ideas sped up the Zig compiler.
Topic match · Software architecture & design
40:12Immediate-Mode Graphical User Interfaces - 2005
150K views • 10 years ago
Casey Muratori
Casey Muratori's 2005 video introducing immediate-mode GUIs as an alternative to retained widget toolkits. He explains the motivation and shows minimal-state button logic.
Topic match · Software architecture & design
22:41"Clean" Code, Horrible Performance
1.2M views • 3 years ago
Molly Rocket
Casey Muratori shows how typical 'clean code' object-oriented patterns can cost large factors in performance. He benchmarks them against simpler data-oriented code.
Topic match · Software architecture & design
40:27"Finding bugs without running or even looking at code" by Jay Parlar
42K views • 7 years ago
Strange Loop Conference
Jay Parlar's Strange Loop talk shows how model checkers such as Alloy can find complex bugs in a system's design without running or reading any code. He walks through modeling architectures and checking every possible sequence of operations, including a real security bug and a UI feature-interaction bug.
Topic match · Software architecture & design
37:15Stuart Halloway - Narcissistic Design
29K views • 9 years ago
Reaktor
Stuart Halloway's satirical talk describes how to protect yourself from industry change by spreading complexity through systems while following idiomatic practice. It uses this inversion to catalog software design anti-patterns.
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