HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

A Possible Future of Software Development

Google TechTalks2 HN recommenders · recommended in 2 months, 2012-2019
YouTube
82K views · 18 years ago · talk · evergreen

Sean Parent of Adobe argues that object-oriented frameworks ultimately fail to deliver scalable, high quality software and proposes combining generic and declarative programming instead. It draws on Stepanov's Elements of Programming.

Frequently cited for the claim that Photoshop's codebase could shrink dramatically with generic programming.

Software architecture & designC, C++, Rust, Go & systems languages#seanparent#genericprogramming#c++#adobe#softwarearchitecture

7 comments from Hacker News

@adamnemecek2019 · in “Elements of Programming (2009)”

This book is really good, really dense but the ideas have inspired a generation. In this video, Sean Parent, at the time working at Adobe on Photoshop, estimated that if PS codebase followed ideas from this book, the codebase could be reduced from 3,000,000 LOC to 30,000 LOC. ▶ this video

CitesView on HN
@adamnemecek2017 · in “App sizes are out of control”

They make code reuse possible. Watch this Sean Parent video ▶ this video where he estimates that if Photoshop was rewritten using generics, the code size would go from 3,000,000 LOC to 30,000 LOC. You are right, during compilation, generics are specialized so you end up with code, however going all in on generics removes a lot of accidental complexity.

RecommendsView on HN
@adamnemecek2017 · in “Ask HN: Are we overcomplicating software development?”

There's this book that I've been mentioning around here called Elements of Programming link that makes exactly this claim, that we are writing too much code. It proposes how to write C++-ish (it's an extremely minimal subset of C++ proper) code in a mathematical way that makes all your code terse. In this talk, Sean Parent, at that time working on Adobe Photoshop, estimated that the PS codebase could be reduced from 3,000,000 LOC to 30,000 LOC (=100x!!) if they followed ideas from the book ▶ this video Another point of his is that the explosion of written code we are seeing isn't sustainable and that so much of this code is algorithms or data structures with overlapping functionalities. As the codebases grow, and these functionalities diverge even further, pulling the reigns in on the chaos becomes gradually impossible. Bjarne Stroustrup (aka the C++ OG) gave this book five stars on Amazon (in what is his one and only Amazon product review lol). link This style might become dominant because it's only really possible in modern successors of C++ such as Swift or Rust that have both "direct" access to memory and type classes/traits/protocols, not so much in C++ itself (unless debugging C++ template errors is your thing).

CitesView on HN
@adamnemecek2017 · in “Ask HN: What's the best computer science book you've read recently?”

I'll give you a couple. Note that some of these are rehashes of my earlier comments. # Elements of Programming link This book proposes how to write C++-ish code in a mathematical way that makes all your code terse. In this talk, Sean Parent, at that time working on Adobe Photoshop, estimated that the PS codebase could be reduced from 3,000,000 LOC to 30,000 LOC (=100x!!) if they followed ideas from the book ▶ this video Another point of his is that the explosion of written code we are seeing isn't sustainable and that so much of this code is algorithms or data structures with overlapping functionalities. As the codebases grow, and these functionalities diverge even further, pulling the reigns in on the chaos becomes gradually impossible. Bjarne Stroustrup (aka the C++ OG) gave this book five stars on Amazon (in what is his one and only Amazon product review lol). This style might become dominant because it's only really possible in modern successors of C++ such as Swift or Rust, not so much in C++ itself. link # Grammar of graphics link This book changed my perception of creativity, aesthetics and mathematics and their relationships. Fundamentally, the book provides all the diverse tools to give you confidence that your graphics are mathematically sound and visually pleasing. After reading this, Tufte just doesn't cut it anymore. It's such a weird book because it talks about topics as disparate Bayesian rule, OOP, color theory, SQL, chaotic models of time (lolwut), style-she

CitesView on HN
@adamnemecek2016 · in “What Is Abstract Algebra? [video]”

If you are curious how does Abstract Algebra relate to software engineering, this book might be of your interest link The main selling point of this approach is that it can cut out a lot of code In this talk, Sean Parent, at that time working on Adobe Photoshop, estimated that the PS codebase could be reduced from 3,000,000 LOC to 30,000 LOC (=100x!!) if they followed ideas from the book ▶ this video Another point of his is that the explosion of written code we are seeing isn't sustainable and that so much of this code is algorithms or data structures with overlapping functionalities. As the codebases grow, and these functionalities diverge even further, pulling the reigns in on the chaos becomes gradually impossible. Bjarne Stroustrup (aka the C++ OG) gave this book five stars on Amazon (in what is his one and only Amazon product review lol). link

CitesView on HN
@wwweston2013 · in “Edward C++Hands”

"Ask any C++ guru and they will tell you: avoid mutation, avoid side effects, don’t use loops, avoid class hierarchies and inheritance. But you will need strict discipline and total control over your collaborators to pull that off because C++ is so permissive. "Haskell is not permissive, it won’t let you — or your coworkers — write unsafe code. Yes, initially you’ll be scratching your head trying to implement something in Haskell that you could hack in C++ in 10 minutes. If you’re lucky, and you work for Sean Parent or other exceptional programmer, he will code review your hacks and show you how not to program in C++." For those who aren't familiar with Parent, watch this talk: ▶ this video which introduced me to Stepanov's "Elements of Programming" and the idea that I could be working with better/more reliable/provable abstractions in C++. That said... after a few weeks of shallowly digesting the material, I started thinking pretty much like Milewski says above: it's great if I can learn to write better C++, but if what I really want is to escape from its specific dangers and general common programming pitfalls, something like Haskell seems like a better bet.

RecommendsView on HN
@agumonkey2012 · in “A Programming Idiom You've Never Heard Of ”

Turns out I greatly exagerated my memories (sic), he was mentionning equivalence relation using c++ concepts then went into constraint/dependant interactive input. link page 18, 38 this was hosted at googletechtalks ▶ this video (240p)

CitesView on HN
Object-Oriented Programming is Bad44:35

Object-Oriented Programming is Bad

Brian Will
2.6M views • 10 years ago
CppCon 2015: Sean Parent "Better Code: Data Structures"1:04:00

CppCon 2015: Sean Parent "Better Code: Data Structures"

CppCon
106K views • 11 years ago
Cheng Lou - On the Spectrum of Abstraction at react-europe 201635:32

Cheng Lou - On the Spectrum of Abstraction at react-europe 2016

ReactEurope
63K views • 10 years ago
The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]1:29:27

The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]

cpponsea
245K views • 7 years ago
CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”1:00:46

CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”

CppCon
271K views • 8 years ago
Data-Oriented Demo: SOA, composition1:32:47

Data-Oriented Demo: SOA, composition

Jonathan Blow
201K views • 11 years ago
Dan Abramov   The wet codebase25:01

Dan Abramov The wet codebase

eswarnichtsmehrfrei
27K views • 5 years ago
Alan Kay - Programming and Scaling56:39

Alan Kay - Programming and Scaling

Colin McDonnell
36K views • 11 years ago
Effective Programs - 10 Years of Clojure - Rich Hickey1:14:52

Effective Programs - 10 Years of Clojure - Rich Hickey

ClojureTV
176K views • 9 years ago
OSCON 2010:  Rob Pike, "Public Static Void"12:31

OSCON 2010: Rob Pike, "Public Static Void"

O'Reilly
119K views • 16 years ago
Keynote: The Last Hope for Scala's Infinity War - John A. De Goes45:03

Keynote: The Last Hope for Scala's Infinity War - John A. De Goes

Scalapeño
36K views • 8 years ago
Elements of Programming Style - Brian Kernighan1:10:42

Elements of Programming Style - Brian Kernighan

Institute for Advanced Study
138K views • 9 years ago
CppCon 2017: Herb Sutter “Meta: Thoughts on generative C++”1:47:45

CppCon 2017: Herb Sutter “Meta: Thoughts on generative C++”

CppCon
105K views • 9 years ago
Sydney Golang Meetup - Rob Pike - Go 2 Draft Specifications1:07:00

Sydney Golang Meetup - Rob Pike - Go 2 Draft Specifications

Macquarie Group
57K views • 7 years ago
Are We There Yet - Rich Hickey1:10:05

Are We There Yet - Rich Hickey

Zhang Jian
24K views • 7 years ago
Software Art Thou: Glenn Vanderburg - Real Software Engineering1:07:58

Software Art Thou: Glenn Vanderburg - Real Software Engineering

Zendesk
35K views • 8 years ago
Rich Hickey rants about HttpServletRequest in 1080p: Death By Specificity from Clojure Made Simple4:57

Rich Hickey rants about HttpServletRequest in 1080p: Death By Specificity from Clojure Made Simple

Fred Overflow
43K views • 6 years ago
Going Native 2012 Keynote Stroustrup1:29:49

Going Native 2012 Keynote Stroustrup

savage309
33K views • 14 years ago
Brian Goetz - Stewardship: the Sobering Parts1:03:31

Brian Goetz - Stewardship: the Sobering Parts

ClojureTV
39K views • 11 years ago
Modern C and What We Can Learn From It - Luca Sas [ ACCU 2021 ]1:05:59

Modern C and What We Can Learn From It - Luca Sas [ ACCU 2021 ]

ACCU Conference
130K views • 5 years ago