A Possible Future of Software Development

Google TechTalks · 81K views · 2008 · 1:01:33

Open on YouTube

Software architecture & designC, C++, Rust, Go & systems languagestalk

Why Hacker News recommends it

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

What it is

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.

Recommended by 2 HN commenters across 2 different months, 2012 to 2019.

What Hacker News said

Recommends wwweston · 2013-09 · on “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

Recommends adamnemecek · 2017-08 · on “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.

Cites agumonkey · 2012-01 · on “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)

Cites adamnemecek · 2016-12 · on “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 becom

Cites adamnemecek · 2017-01 · on “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 i

Cites adamnemecek · 2017-01 · on “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

Cites adamnemecek · 2019-07 · on “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]