SlideShare a Scribd company logo
A presentation to
the Strange Loop conference
re: minimalism
in software and computing.



Alex Payne
St Louis – October, 2009
“understanding simplicity is complicated”
M
versus
  m
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
Minimalism in
context.
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
“a style distinguished by
 severity of means,
 clarity of form, and
 simplicity of structure and texture”
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
“the reduction of art to its rudiments”
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
“What is minimal about Minimal Art
 is the means,
 not the end.”
Where do we learn
how to do
what we do?
Architecture.
“Architecture is a way to understand complex systems.
 Architecture is a way to design complex systems.
 Architecture is a way to manage complex systems.”
Assertion:


Complexity is making
+ our software slow
+ our programs insecure
+ our jobs harder
+ our users unhappy
“As computers have increased in complexity,
 my enjoyment of them has plummeted.”
“Ingenious ideas are simple.
 Ingenious software is simple.
 Simplicity is the heart of the Unix philosophy.

The more code lines you have removed,
the more progress you have made.

As the number of lines of code in your software shrinks,
the more skilled you have become
and the less your software sucks.”
Strange Loop 2009 Keynote: Minimalism in Computing
“By avoiding complexity when possible,
 and containing it when it is unavoidable,
 we can maximize the probability
 that the number of security vulnerabilities found
 remains zero in the future.”
“The only hope is to
 abandon complex software.
 Embrace simple.”
Strange Loop 2009 Keynote: Minimalism in Computing
Strange Loop 2009 Keynote: Minimalism in Computing
Strategies for
Minimalist software:



+ unification
+ constraint
+ reduction
Unification of:




+ object and materials
+ details and context
+ code and data
unification of code and data
              ↓
      homoiconicity
unification via homoiconicity 1:


  #:"Runs a program."
  myeval:[lambda '[prgm:1 env:env]
  
 '[if [isName? prgm]
  
 
 then:/env/prgm
  
 
 else:[apply /prgm/0 prgm env]
      ]
  ]
unification via homoiconicity 2:


define f == 7 b ! . (* a function *)
fb@.            (* execute the function (7) *)

define a == [15 b !] . (* a quotation *)
ai            (* execute the quotation *)
b@.             (* 15 *)

37 a rest cons       (* modify the quotation: [37 b !] *)
i              (* execute the modified quotation *)
b@.              (* 37 *)
unification via interoperability 1:




       var myObject = eval('(' + myJSONtext + ')');
unification via interoperability 2:




             REST and HTTP
Strange Loop 2009 Keynote: Minimalism in Computing
Reduction of:



+ lines of code
+ linguistic verbosity
+ abstractions
+ hierarchy
reduction of code:




+ leverage encapsulation
+ remove redundancies
+ stick to contracts
+ prefer code to comments
+ manage dependencies carefully
reduction of syntax:



  |y|
  true & false not & (nil isNil) ifFalse: [self halt].
  y := self size + super size.
    #($a #a 'a' 1 1.0)
     do: [:each | Transcript
      show: (each class name);
      show: (each printString);
      show: ' '].
  ^x<y
reduction of abstractions:




“I think the major good idea in Unix
 was its clean and simple interface:
 open, close, read, and write.”
reduction of hierarchy:




“In an extensible system,
 the key issue is to identify
 those primitives that offer
 the most flexibility for extensions,
 while avoiding a proliferation of primitives.”
Strange Loop 2009 Keynote: Minimalism in Computing
Constraint via:




+ project scope
+ hardware limitations
+ operational requirements
Strange Loop 2009 Keynote: Minimalism in Computing
Antithesis.
The danger of abstraction:




          Is Minimalism still valuable
    if it only exists on the surface?
The risk of irrelevance:




        Would Minimalism be useful
      if complexity worked better?
The necessity of complexity:




                        Is it possible
        to deliver Minimalist software
               that meets all needs?
Future.
Mobile.
Ubiquitous computing.
A final thought.
Thank you.

More Related Content

Viewers also liked

Fashion trends 2010 - inspirations found in art
Fashion trends 2010 - inspirations found in artFashion trends 2010 - inspirations found in art
Fashion trends 2010 - inspirations found in art
fashionvictim
 
Metonymy and synecdoche
Metonymy and synecdocheMetonymy and synecdoche
Metonymy and synecdoche
tika pratama
 
Notes on metaphor and metonymy
Notes on metaphor and metonymyNotes on metaphor and metonymy
Notes on metaphor and metonymy
Laura Zuñiga
 
rhetorical devices
rhetorical devicesrhetorical devices
rhetorical devices
William Hoffman
 
03 minimalism
03 minimalism03 minimalism
03 minimalism
Beth Kuebler-Wolf
 
6.1 minimalism
6.1 minimalism6.1 minimalism
6.1 minimalism
Melissa Hall
 
Rhetorical Devices
Rhetorical DevicesRhetorical Devices
Rhetorical Devices
John Cousins
 
Rhetorical devices
Rhetorical devicesRhetorical devices
Rhetorical devices
Christine Dreyes
 
Rhetorical Devices
Rhetorical DevicesRhetorical Devices
Rhetorical Devices
Mark O'Meara
 
Web minimalist
Web minimalistWeb minimalist
Web minimalist
Alex Chang
 
Programming and Minimalism: Lessons from Orwell and the Clash
Programming and Minimalism: Lessons from Orwell and the ClashProgramming and Minimalism: Lessons from Orwell and the Clash
Programming and Minimalism: Lessons from Orwell and the Clash
Jonathan Dahl
 
Hgaines minimalism
Hgaines minimalismHgaines minimalism
Hgaines minimalism
Homer Gaines
 
Task 3
Task 3Task 3
Task 3
Reveoh
 
Metonymy in Stylistics
Metonymy in StylisticsMetonymy in Stylistics
Metonymy in Stylistics
Mehwish Jameel
 
Voshchana Mariia T-2-10. question № 8
Voshchana Mariia T-2-10. question № 8Voshchana Mariia T-2-10. question № 8
Voshchana Mariia T-2-10. question № 8
Mariia_Voshchana
 
Black Noi
Black NoiBlack Noi
Black Noi
joseph santiago
 
Synecdoche
SynecdocheSynecdoche
Synecdoche
Roda Menil
 
Minimalism project
Minimalism projectMinimalism project
Minimalism project
modlit
 
Minimalism UXHH
Minimalism UXHHMinimalism UXHH
Minimalism UXHH
Hartmut Obendorf
 
Synecdoche and metonymy
Synecdoche and metonymySynecdoche and metonymy
Synecdoche and metonymy
Allison Miller
 

Viewers also liked (20)

Fashion trends 2010 - inspirations found in art
Fashion trends 2010 - inspirations found in artFashion trends 2010 - inspirations found in art
Fashion trends 2010 - inspirations found in art
 
Metonymy and synecdoche
Metonymy and synecdocheMetonymy and synecdoche
Metonymy and synecdoche
 
Notes on metaphor and metonymy
Notes on metaphor and metonymyNotes on metaphor and metonymy
Notes on metaphor and metonymy
 
rhetorical devices
rhetorical devicesrhetorical devices
rhetorical devices
 
03 minimalism
03 minimalism03 minimalism
03 minimalism
 
6.1 minimalism
6.1 minimalism6.1 minimalism
6.1 minimalism
 
Rhetorical Devices
Rhetorical DevicesRhetorical Devices
Rhetorical Devices
 
Rhetorical devices
Rhetorical devicesRhetorical devices
Rhetorical devices
 
Rhetorical Devices
Rhetorical DevicesRhetorical Devices
Rhetorical Devices
 
Web minimalist
Web minimalistWeb minimalist
Web minimalist
 
Programming and Minimalism: Lessons from Orwell and the Clash
Programming and Minimalism: Lessons from Orwell and the ClashProgramming and Minimalism: Lessons from Orwell and the Clash
Programming and Minimalism: Lessons from Orwell and the Clash
 
Hgaines minimalism
Hgaines minimalismHgaines minimalism
Hgaines minimalism
 
Task 3
Task 3Task 3
Task 3
 
Metonymy in Stylistics
Metonymy in StylisticsMetonymy in Stylistics
Metonymy in Stylistics
 
Voshchana Mariia T-2-10. question № 8
Voshchana Mariia T-2-10. question № 8Voshchana Mariia T-2-10. question № 8
Voshchana Mariia T-2-10. question № 8
 
Black Noi
Black NoiBlack Noi
Black Noi
 
Synecdoche
SynecdocheSynecdoche
Synecdoche
 
Minimalism project
Minimalism projectMinimalism project
Minimalism project
 
Minimalism UXHH
Minimalism UXHHMinimalism UXHH
Minimalism UXHH
 
Synecdoche and metonymy
Synecdoche and metonymySynecdoche and metonymy
Synecdoche and metonymy
 

Similar to Strange Loop 2009 Keynote: Minimalism in Computing

Worse is better, for better or for worse - Kevlin Henney
Worse is better, for better or for worse - Kevlin HenneyWorse is better, for better or for worse - Kevlin Henney
Worse is better, for better or for worse - Kevlin Henney
JAX London
 
The UNIX philosophy
The UNIX philosophyThe UNIX philosophy
The UNIX philosophy
Kevin Maiyo
 
Get your mobile app in production in 3 months: Backend
Get your mobile app in production in 3 months: BackendGet your mobile app in production in 3 months: Backend
Get your mobile app in production in 3 months: Backend
Ackee
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineers
Pawel Szulc
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineers
Pawel Szulc
 
Go Best Practices – Interfaces, Packages and APIs
Go Best Practices – Interfaces, Packages and APIsGo Best Practices – Interfaces, Packages and APIs
Go Best Practices – Interfaces, Packages and APIs
Marcus Kohlberg
 
LinuxCon Europe 2013
LinuxCon Europe 2013LinuxCon Europe 2013
LinuxCon Europe 2013
Maksim Melnikau
 
C# classes
C#   classesC#   classes
C# classes
Tiago
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep Learning
Oswald Campesato
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep Learning
Oswald Campesato
 
On being a professional software developer
On being a professional software developerOn being a professional software developer
On being a professional software developer
Anton Kirillov
 
DockerCon 2017 - General Session Day 1 - Solomon Hykes
DockerCon 2017 - General Session Day 1 - Solomon HykesDockerCon 2017 - General Session Day 1 - Solomon Hykes
DockerCon 2017 - General Session Day 1 - Solomon Hykes
Docker, Inc.
 
Hexagonal architecture - message-oriented software design
Hexagonal architecture  - message-oriented software designHexagonal architecture  - message-oriented software design
Hexagonal architecture - message-oriented software design
Matthias Noback
 
The Joy Of Ruby
The Joy Of RubyThe Joy Of Ruby
The Joy Of Ruby
Clinton Dreisbach
 
Software Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic ArchitecturesSoftware Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic Architectures
Angelos Kapsimanis
 
Антон Кириллов, ZeptoLab
Антон Кириллов, ZeptoLabАнтон Кириллов, ZeptoLab
Антон Кириллов, ZeptoLab
Diana Dymolazova
 
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
Matthias Noback
 
Hexagonal architecture message-oriented software design
Hexagonal architecture   message-oriented software designHexagonal architecture   message-oriented software design
Hexagonal architecture message-oriented software design
Matthias Noback
 
Worse Is Better, for Better or for Worse
Worse Is Better, for Better or for WorseWorse Is Better, for Better or for Worse
Worse Is Better, for Better or for Worse
Kevlin Henney
 
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Matthias Noback
 

Similar to Strange Loop 2009 Keynote: Minimalism in Computing (20)

Worse is better, for better or for worse - Kevlin Henney
Worse is better, for better or for worse - Kevlin HenneyWorse is better, for better or for worse - Kevlin Henney
Worse is better, for better or for worse - Kevlin Henney
 
The UNIX philosophy
The UNIX philosophyThe UNIX philosophy
The UNIX philosophy
 
Get your mobile app in production in 3 months: Backend
Get your mobile app in production in 3 months: BackendGet your mobile app in production in 3 months: Backend
Get your mobile app in production in 3 months: Backend
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineers
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineers
 
Go Best Practices – Interfaces, Packages and APIs
Go Best Practices – Interfaces, Packages and APIsGo Best Practices – Interfaces, Packages and APIs
Go Best Practices – Interfaces, Packages and APIs
 
LinuxCon Europe 2013
LinuxCon Europe 2013LinuxCon Europe 2013
LinuxCon Europe 2013
 
C# classes
C#   classesC#   classes
C# classes
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep Learning
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep Learning
 
On being a professional software developer
On being a professional software developerOn being a professional software developer
On being a professional software developer
 
DockerCon 2017 - General Session Day 1 - Solomon Hykes
DockerCon 2017 - General Session Day 1 - Solomon HykesDockerCon 2017 - General Session Day 1 - Solomon Hykes
DockerCon 2017 - General Session Day 1 - Solomon Hykes
 
Hexagonal architecture - message-oriented software design
Hexagonal architecture  - message-oriented software designHexagonal architecture  - message-oriented software design
Hexagonal architecture - message-oriented software design
 
The Joy Of Ruby
The Joy Of RubyThe Joy Of Ruby
The Joy Of Ruby
 
Software Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic ArchitecturesSoftware Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic Architectures
 
Антон Кириллов, ZeptoLab
Антон Кириллов, ZeptoLabАнтон Кириллов, ZeptoLab
Антон Кириллов, ZeptoLab
 
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
 
Hexagonal architecture message-oriented software design
Hexagonal architecture   message-oriented software designHexagonal architecture   message-oriented software design
Hexagonal architecture message-oriented software design
 
Worse Is Better, for Better or for Worse
Worse Is Better, for Better or for WorseWorse Is Better, for Better or for Worse
Worse Is Better, for Better or for Worse
 
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
 

More from Alex Payne

Splitting up your web app
Splitting up your web appSplitting up your web app
Splitting up your web app
Alex Payne
 
The perils and rewards of working on stuff that matters
The perils and rewards of working on stuff that mattersThe perils and rewards of working on stuff that matters
The perils and rewards of working on stuff that matters
Alex Payne
 
Emerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the HorizonEmerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the Horizon
Alex Payne
 
The Why and How of Scala at Twitter
The Why and How of Scala at TwitterThe Why and How of Scala at Twitter
The Why and How of Scala at Twitter
Alex Payne
 
Building Distributed Systems in Scala
Building Distributed Systems in ScalaBuilding Distributed Systems in Scala
Building Distributed Systems in Scala
Alex Payne
 
Speedy, Stable, and Secure: Better Web Apps Through Functional Languages
Speedy, Stable, and Secure: Better Web Apps Through Functional LanguagesSpeedy, Stable, and Secure: Better Web Apps Through Functional Languages
Speedy, Stable, and Secure: Better Web Apps Through Functional Languages
Alex Payne
 
Mind The Tools
Mind The ToolsMind The Tools
Mind The Tools
Alex Payne
 
The Business Value of Twitter
The Business Value of TwitterThe Business Value of Twitter
The Business Value of Twitter
Alex Payne
 
Twitter API 2.0
Twitter API 2.0Twitter API 2.0
Twitter API 2.0
Alex Payne
 
The Interaction Design Of APIs
The Interaction Design Of APIsThe Interaction Design Of APIs
The Interaction Design Of APIs
Alex Payne
 
Why Scala for Web 2.0?
Why Scala for Web 2.0?Why Scala for Web 2.0?
Why Scala for Web 2.0?
Alex Payne
 
The Twitter API: A Presentation to Adobe
The Twitter API: A Presentation to AdobeThe Twitter API: A Presentation to Adobe
The Twitter API: A Presentation to Adobe
Alex Payne
 
Protecting Public Hotspots
Protecting Public HotspotsProtecting Public Hotspots
Protecting Public Hotspots
Alex Payne
 
Twitter at BarCamp 2008
Twitter at BarCamp 2008Twitter at BarCamp 2008
Twitter at BarCamp 2008
Alex Payne
 
Securing Rails
Securing RailsSecuring Rails
Securing Rails
Alex Payne
 
Why Scala?
Why Scala?Why Scala?
Why Scala?
Alex Payne
 
Designing Your API
Designing Your APIDesigning Your API
Designing Your API
Alex Payne
 
Scaling Twitter - Railsconf 2007
Scaling Twitter - Railsconf 2007Scaling Twitter - Railsconf 2007
Scaling Twitter - Railsconf 2007
Alex Payne
 

More from Alex Payne (18)

Splitting up your web app
Splitting up your web appSplitting up your web app
Splitting up your web app
 
The perils and rewards of working on stuff that matters
The perils and rewards of working on stuff that mattersThe perils and rewards of working on stuff that matters
The perils and rewards of working on stuff that matters
 
Emerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the HorizonEmerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the Horizon
 
The Why and How of Scala at Twitter
The Why and How of Scala at TwitterThe Why and How of Scala at Twitter
The Why and How of Scala at Twitter
 
Building Distributed Systems in Scala
Building Distributed Systems in ScalaBuilding Distributed Systems in Scala
Building Distributed Systems in Scala
 
Speedy, Stable, and Secure: Better Web Apps Through Functional Languages
Speedy, Stable, and Secure: Better Web Apps Through Functional LanguagesSpeedy, Stable, and Secure: Better Web Apps Through Functional Languages
Speedy, Stable, and Secure: Better Web Apps Through Functional Languages
 
Mind The Tools
Mind The ToolsMind The Tools
Mind The Tools
 
The Business Value of Twitter
The Business Value of TwitterThe Business Value of Twitter
The Business Value of Twitter
 
Twitter API 2.0
Twitter API 2.0Twitter API 2.0
Twitter API 2.0
 
The Interaction Design Of APIs
The Interaction Design Of APIsThe Interaction Design Of APIs
The Interaction Design Of APIs
 
Why Scala for Web 2.0?
Why Scala for Web 2.0?Why Scala for Web 2.0?
Why Scala for Web 2.0?
 
The Twitter API: A Presentation to Adobe
The Twitter API: A Presentation to AdobeThe Twitter API: A Presentation to Adobe
The Twitter API: A Presentation to Adobe
 
Protecting Public Hotspots
Protecting Public HotspotsProtecting Public Hotspots
Protecting Public Hotspots
 
Twitter at BarCamp 2008
Twitter at BarCamp 2008Twitter at BarCamp 2008
Twitter at BarCamp 2008
 
Securing Rails
Securing RailsSecuring Rails
Securing Rails
 
Why Scala?
Why Scala?Why Scala?
Why Scala?
 
Designing Your API
Designing Your APIDesigning Your API
Designing Your API
 
Scaling Twitter - Railsconf 2007
Scaling Twitter - Railsconf 2007Scaling Twitter - Railsconf 2007
Scaling Twitter - Railsconf 2007
 

Recently uploaded

Retrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with RagasRetrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with Ragas
Zilliz
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
Brian Pichman
 
UX Webinar Series: Drive Revenue and Decrease Costs with Passkeys for Consume...
UX Webinar Series: Drive Revenue and Decrease Costs with Passkeys for Consume...UX Webinar Series: Drive Revenue and Decrease Costs with Passkeys for Consume...
UX Webinar Series: Drive Revenue and Decrease Costs with Passkeys for Consume...
FIDO Alliance
 
Keynote : Presentation on SASE Technology
Keynote : Presentation on SASE TechnologyKeynote : Presentation on SASE Technology
Keynote : Presentation on SASE Technology
Priyanka Aash
 
CheckPoint Firewall Presentation CCSA.pdf
CheckPoint Firewall Presentation CCSA.pdfCheckPoint Firewall Presentation CCSA.pdf
CheckPoint Firewall Presentation CCSA.pdf
ssuser137992
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
DianaGray10
 
It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...
Zilliz
 
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
AimanAthambawa1
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
Steven Carlson
 
kk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdfkk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdf
KIRAN KV
 
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and DisadvantagesBLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
SAI KAILASH R
 
Acumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptxAcumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptx
BrainSell Technologies
 
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Snarky Security
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
shyamraj55
 
Sonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdfSonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdf
SubhamMandal40
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
DianaGray10
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
bellared2
 
Mastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for SuccessMastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for Success
David Wilson
 
Smart Mobility Market:Revolutionizing Transportation.pdf
Smart Mobility Market:Revolutionizing Transportation.pdfSmart Mobility Market:Revolutionizing Transportation.pdf
Smart Mobility Market:Revolutionizing Transportation.pdf
Market.us
 
Redefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI CapabilitiesRedefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI Capabilities
Priyanka Aash
 

Recently uploaded (20)

Retrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with RagasRetrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with Ragas
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
 
UX Webinar Series: Drive Revenue and Decrease Costs with Passkeys for Consume...
UX Webinar Series: Drive Revenue and Decrease Costs with Passkeys for Consume...UX Webinar Series: Drive Revenue and Decrease Costs with Passkeys for Consume...
UX Webinar Series: Drive Revenue and Decrease Costs with Passkeys for Consume...
 
Keynote : Presentation on SASE Technology
Keynote : Presentation on SASE TechnologyKeynote : Presentation on SASE Technology
Keynote : Presentation on SASE Technology
 
CheckPoint Firewall Presentation CCSA.pdf
CheckPoint Firewall Presentation CCSA.pdfCheckPoint Firewall Presentation CCSA.pdf
CheckPoint Firewall Presentation CCSA.pdf
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
 
It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...
 
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
 
kk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdfkk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdf
 
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and DisadvantagesBLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
 
Acumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptxAcumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptx
 
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
Welcome to Cyberbiosecurity. Because regular cybersecurity wasn't complicated...
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
 
Sonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdfSonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdf
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
 
Mastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for SuccessMastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for Success
 
Smart Mobility Market:Revolutionizing Transportation.pdf
Smart Mobility Market:Revolutionizing Transportation.pdfSmart Mobility Market:Revolutionizing Transportation.pdf
Smart Mobility Market:Revolutionizing Transportation.pdf
 
Redefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI CapabilitiesRedefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI Capabilities
 

Strange Loop 2009 Keynote: Minimalism in Computing

Editor's Notes

  1. Let&amp;#x2019;s have a big round of applause for Alex Miller for putting together such a great event. Introduce myself: Twitter, Down For Everyone Or Just Me, just finished writing a book about Scala (a decidedly un-minimal language).
  2. This quote is from Eric S Raymond, &amp;#x201C;The Art of Unix Programming&amp;#x201D;. I&amp;#x2019;ve been thinking about minimalism in software for about two years. I maintain a tumblelog called Minima that captures example of what I call &amp;#x201C;applied simplicity&amp;#x201D;. I&amp;#x2019;ve gathered dozens of examples, but it&amp;#x2019;s something I&amp;#x2019;m still thinking about. What I want to share today is the culmination of that thinking so far.
  3. There&amp;#x2019;s a difference between big-M and little-m minimalism that we need to establish straightaway. People have very different ideas of what constitutes minimalism, so first we&amp;#x2019;re going to talk about what we&amp;#x2019;re not talking about today.
  4. This is little-m minimalism. It&amp;#x2019;s beautiful, it&amp;#x2019;s simple, it&amp;#x2019;s marketable, but it&amp;#x2019;s not what we&amp;#x2019;re talking about today.
  5. This is Steve Jobs in 1982. He hadn&amp;#x2019;t just moved in. This is how he lived. If you were hoping for a tutorial on how to be a minimalist, this isn&amp;#x2019;t it. You know how to do that, in the back of your head: you get rid of everything you don&amp;#x2019;t need, everything that makes you unhappy, and you just do it. You don&amp;#x2019;t need someone to come up here and talk to you for an hour about that, just as you don&amp;#x2019;t need blogs and self-help books to do it. That&amp;#x2019;s the whole point. We&amp;#x2019;re not talking about any of that today.
  6. This screenshot was found under the headline, &amp;#x201C;Beautifully Minimalist Conky Setup&amp;#x201D; on the popular Lifehacker blog. This is the exact opposite of minimalism. It&amp;#x2019;s fiddly, it&amp;#x2019;s glossy, it completely unnecessary. It&amp;#x2019;s also not what we&amp;#x2019;re talking about today.
  7. There&amp;#x2019;s a quote that comes to mind when I see blog posts like this: &amp;#x201C;The standing of Minimalist art has benefited from the mass of stupefying triviality that has followed it&amp;#x201D;. It&amp;#x2019;s from Edward Strickland in &amp;#x201C;Minimalism: Origins&amp;#x201D;. This sort of thing is the definition of little-m minimalism. This is really more about simplicity than minimalism. They&amp;#x2019;re closely related concepts, to be sure, but we&amp;#x2019;re not talking about simplicity today.
  8. A final counterexample: Google is currently experimenting with a super stripped-down home page. This is pop minimalism, little-m minimalism. This is simplicity as a branding tactic. It doesn&amp;#x2019;t mean anything more than that Google&amp;#x2019;s brand has become so ubiquitous that they no longer need explain their purpose or how to make use of their search product.
  9. So that&amp;#x2019;s what we&amp;#x2019;re not talking about. Now, I want to put big-M Minimalism in context. We&amp;#x2019;re going to start at the beginning of the 20th Century. In the world of art, we&amp;#x2019;re exiting the successive dominance of Romanticism, Realism, Impressionism, and early Expressionism over the course of the previous century.
  10. This Matisse&amp;#x2019;s &amp;#x201C;The Joy of Life&amp;#x201D; from 1905, a quintessential representation of Fauvism, which some consider to be the first real modern movement in 20th Century art.
  11. Fauvism was followed by Cubism. This is Picasso&amp;#x2019;s &amp;#x201C;Still Life With Chair Caning&amp;#x201D; from 1912. Cubism, of course, is about turning our notion of perception on its head. Figuring out where said head is, then, becomes something of a challenge.
  12. Following Cubism was Futurism, an artistic movement that&amp;#x2019;s been hugely influential on modern culture not just in the visual arts, but one that has unfortunate associations with the rise of Italian fascism. This is Boccioni&amp;#x2019;s &amp;#x201C;Development of a Bottle In Space&amp;#x201D; from 1913.
  13. Dadaism followed Cubism and Futurism, and epitomized the chaos and nihilism felt by the Western intellectual elite after the senseless, unnecessary violence of World War I. Dadaism was a philosophy for a world that didn&amp;#x2019;t make sense, one that produced as much graphic design as art. Hausmann, &amp;#x201C;ABCD&amp;#x201D;, 1923-24.
  14. The surrealists, active from 1924 - 1945 (right up to WWII) were the introspective, dreamy cousins of the Dadaists. Where the Dadaists explored chaos and nihilism, the Surrealists dove into the subtle and otherworldly influence of the subconscious. Yves Tanguy - Divisibilit&amp;#xE9; ind&amp;#xE9;finie (1942)
  15. This is the visual anarchy of Abstract Expressionism as hurled onto canvas by Pollock in 1947. In some ways, this is the quintessential post-WWII artistic movement: violent, rebellious, energetic, transformative. It&amp;#x2019;s the expression of a world that&amp;#x2019;s about to reinvent itself.
  16. Finally: color field painting probably most closely precedes Minimalism, emerging in the 1950s. The style eschews the expressiveness of Abstract Expressionism for a focus on pure abstraction. Color field painting sees the art world exercising control, getting focused, exiting the chaos of the post-WWII era. Barnett Newman - Vir Heroicus Sublimus, 1950-51
  17. Then, we arrive in the late 1950s and early 1960s, and to Minimalism. Big-M Minimalism, though at the time it was alternating called Cool art, Rejective art, ABC art, and Primary Structures. This a description of the style from one of its foremost biographers, Edward Strickland.
  18. Frank Stella, Zambezi, 1959. One of the earliest Minimalist artworks, although Stella rejected the term. Part of his series of &amp;#x201C;Black Paintings&amp;#x201D;. Some critics at the time noted an almost religious quality when viewing the painting. At the time, it was utterly unlike anything else anyone had seen. An emphasis on the geometric, the serial, but note the rough, hand-painted lines &amp;#x2013;&amp;#xA0;nothing more than a house-painter&amp;#x2019;s brush used to create them.
  19. This is &amp;#x201C;Mountain&amp;#x201D; by Agnes Martin, from 1960. It is again geometric and repetitive, but exudes a sense of peace and calm and, despite its rigidity, an organic, hand-drawn quality. This piece, too, typifies Minimalist art.
  20. Another distillation of Minimalist ideals. The idea that Minimalist sculpture, in particular, is as much about the object as its preparation and presentation. The object itself is art, but not in the sense of a &amp;#x201C;found&amp;#x201D; object being art. The object, bare, stripped of all context, is a complete artwork.
  21. Donald Judd, Untitled No frame, no pedestal, very little process, nothing that clearly demarcates the object as &amp;#x201C;art&amp;#x201D;. It could be functional - today, it could be an Ikea shelving unit. It is incidentally beautiful.
  22. Donald Judd, Untitled. One of my favorite pieces of art from one of my favorite artists. Minimalism is an expression of the sublime. It is the postwar aestheticism, the anti-dada. In a universe that doesn&amp;#x2019;t make sense, Minimalism imposes order and beauty.
  23. This statement, from John Perreault, a period art critic, is the bridge between the relevance of minimalism to art and to engineering. As engineers we, care about the end, but most often it is our clients and customers to whom the end is most relevant. We&amp;#x2019;re here today, on a Friday, spending our day talking about programming because we care about the means.
  24. What we are interested in is what this artistic approach can teach us an engineers. Because software engineering is such a young discipline, we need all the help we can get. What can other fields teach us?
  25. Much of the way we think about Computer Science comes from physical architecture. The idea of patterns as applied to programming originates with architect Christopher Alexander&amp;#x2019;s &amp;#x201C;A Pattern Language&amp;#x201D;. We often describe our trade and our works in terms of physical architecture, particularly when explaining it to non-technical folks. Mies van der Rohe, German Pavilion of the Expo, 1929, Barcelona
  26. There&amp;#x2019;s a monograph from a committee at MIT entitled &amp;#x201C;The Influence of Architecture in Engineering Systems&amp;#x201D;. In it, the above are section headings. We look to architectural metaphors to understand, design, and manage the complexity of the systems we build.
  27. These are the problems of designing for complexity, of building our entire discipline around the management and support of complexity.
  28. John Graham-Cumming, author, programmer, recently secured an apology from the British government for the treatment of Alan Turing.
  29. This is the philosophy of suckless.org, advocates for simple, reliable software. They are part of a whole generation of &amp;#x201C;computing minimalists&amp;#x201D; who eschew the complexity of modern software.
  30. Absorb the previous quote, and think about what you can remove to great effect. Robert Morris, &amp;#x201C;Ring With Light&amp;#x201D;, 1965 - 96
  31. A quote from Colin Percival, security and cryptography expert, currently working on the Tarsnap secure online backup service. It reinforces the negative role of complexity in ensuring our safety and security in a digital world.
  32. Chuck Moore, creator of the Forth programming language and a masterful engineer. Any of you in the audience running Macs? The firmware that booted you into your OS, Open Firmware, is written in Forth. Moore said in the recent &amp;#x201C;Masterminds of Programming&amp;#x201D; that &amp;#x201C;operating systems are dauntingly complex and totally unnecessary&amp;#x201D;.
  33. Can we work within a simpler way of thinking about the world? Are we always building buildings? Does every system have to be so complex? In systems architecture, we&amp;#x2019;re encouraged to break systems down into their component parts. But can we produce our own works that are self-explanatory, self-contained, powerful, and unable to be further reduced? Anne Truitt, Night Naiad, 1977.
  34. The question is: if we had a blank canvas on which to inscribe a new way of thinking about the design of software, one informed by Minimalist principles, what would we end up with? Untitled (To Dan Flavin) by Salvatore Panatteri, probably 2007.
  35. We need guideposts with which to approach minimalism in software. Appropriately enough, there are just three broad strategies. We&amp;#x2019;ll explore each strategy with some examples.
  36. Recall the earlier discussion of Minimalist sculpture, the idea of the unification of object with materials. &amp;#x201C;reveal materials as materials&amp;#x201D;, as one critic puts it. This is the most powerful of the three concepts we&amp;#x2019;ll explore today. There are strong parallels to how we organize code and data in programs.
  37. From homo meaning the same and icon meaning representation&amp;#x201D;. Wikipedia: &amp;#x201C;a property of a language in which the primary representation of programs is also a data structure in a primitive type of the language itself.&amp;#x201D; That is, the AST is the language, and the language is the AST. Discussed primarily in the Lisp community, but present in Lua, Io, Ioke, Factor, Prolog, and many other languages, including machine code itself. This powerful concept enables metaprogramming, which can enable powerful, terse abstractions that reduce the number of necessary lines of code.
  38. This is from the core of the MISC metacircular interpreter. The interpreter is written in terms of itself, a property enabled by homoiconicity. The entire example is 55 lines.
  39. An example of homoiconicity in the purely functional Joy language, taken from the C2 wiki. The specification: 1. Create a &quot;code&quot; data structure (block) for assigning 15 to a variable. 2. Evaluate it and view the variable&apos;s contents, which should be 15. 3. Modify that data structure to assign 37 to the variable. 4. Evaluate it and view the variable&apos;s contents, which should now be 37.
  40. Here&amp;#x2019;s another way of thinking about unification as it applies to programming. JSON is a subset of JavaScript. It doesn&amp;#x2019;t represent the entire AST, as s-expressions do in Lisp, but it represents complete objects in a portable, interoperable way. Though XML is a far more robust data interchange format, JSON has become hugely popular for its simplicity to read, write, and parse.
  41. HTTP has become the lingua franca not just for the client-to-server web, but even for the web inside the server clusters. Having back-end processes adhere to a RESTful architecture encourages the reuse of known, trusted pieces of software like HTTP load balancers and caching proxies that fulfill requirements &amp;#x201C;for free&amp;#x201D;. It keeps architectures clean, simple, and manageable.
  42. Unification is a powerful concept. In Minimalist art, the object, its materials, and its presentation form a unified aesthetic whole. In Minimalist software, unification gives us a simple basis from which to extrapolate powerful ideas. Dan Flavin
  43. Recall the earlier discussion of Minimalist sculpture, the idea of the unification of object with materials. &amp;#x201C;reveal materials as materials&amp;#x201D;, as one critic puts it. There are strong parallels to how we organize code and data in programs.
  44. 37signals released their Ta-Da List application in 2005, it was a mere 600 lines of code. Of course, that&amp;#x2019;s building on a framework well in excess of 100,000 LOC, so does it really count? We need practical strategies for code reduction in real, non-trivial codebases. In Kevlin Henney&amp;#x2019;s &amp;#x201C;Minimalism: A Practical Guide to Writing Less Code&amp;#x201D; he offers a number of such pointers.
  45. This code snippet, from a paper entitled &amp;#x201C;Squeak: A Minimalist Syntax&amp;#x201D;, illustrates every part of Smalltalk method syntax except primitives.
  46. This quote, from an interview with Ken Thompson, one of the fathers of Unix, illustrates the need for a few simple, powerful abstractions in Minimalist software.
  47. Niklaus Wirth, developer of Pascal, Modula, and Oberon, in &amp;#x201C;A Plea For Lean Software&amp;#x201D;. He offers nine lessons from the success of the Oberon project, and this is one of the most important, along with the use of a strongly-typed programming language. Too much hierarchy causes needless complexity and confusion.
  48. Reduction isn&amp;#x2019;t about doing as little as possible. It&amp;#x2019;s about distilling complex ideas down to their essentials, such that decorations and explanations are unnecessary. [Robert Ryman]
  49. The idea of constraint, the final of our three strategies, is somewhat more abstract. It&amp;#x2019;s more about structuring your work such that it is inherently bounded. Sometimes we don&amp;#x2019;t choose our constraints, but more often that not we have too much leeway at the start of a project. Talk about Twitter.
  50. &amp;#x201C;Minimalism results in reasonable and maintainable goals&amp;#x201D; - suckless.org Constraint is really about ensuring your success, at the end of the day. There&amp;#x2019;s no shame in saying, &amp;#x201C;we can&amp;#x2019;t do that&amp;#x201D; or &amp;#x201C;we shouldn&amp;#x2019;t do that&amp;#x201D;. Overcommitting and over-featuring is a recipe for disaster. [Sol Lewitt]
  51. So, we&amp;#x2019;ve talked about what Minimalism is and how we go about it in software. But what are some reasons to be skeptical about this approach?
  52. If something appears simple on the outside (Apple products, Twitter, Actors in Scala or your favorite cleanly designed API) but has complex underpinnings, is it still simple? A perpetual problem: it&amp;#x2019;s rarely turtles all the way down, and nobody really knows everything about computing. Is there anyone in this room who can say with confidence he knows the lowest low-level and the highest high-level concepts? C# author: &amp;#x201C;It&amp;#x2019;s all about &amp;#x2018;do more with less&amp;#x2019;. It&amp;#x2019;s not about doing more with more with a simple layer on top.&amp;#x201D;
  53. Say we figure out how to build big, complex system reliably. Arguably, inside of companies like Google, they have. If that knowledge becomes widespread and institutionalized, is a Minimalist approach still valuable? If we can tame complexity, is Minimalism anything more than a stylistic preference?
  54. This is probably the most worrying point. James Rumbaugh, the designer of UML says that &amp;#x201C;life and computing are too complicated for simple solutions&amp;#x201D;. We&amp;#x2019;ve all the had experience of writing some beautifully simple piece of code, only to find out a few hours later that it doesn&amp;#x2019;t really do the job. Likewise, it&amp;#x2019;s exhausting work making a business of selling simplicity - it&amp;#x2019;s not demonstrably the way to be a market leader in this industry.
  55. Let&amp;#x2019;s talk about a future of computing in which Minimalism can play a crucial role. In some ways, desktop and server computing are beyond help. They missed their chance to be Minimalist, and we&amp;#x2019;re not reinventing that wheel anytime soon, realistically. But where can we apply these principles such that they&amp;#x2019;ll make a big impact? [Robert Mangold]
  56. Mobile technologies offer us an opportunity to reinvent computing. Developing countries are experiencing information technologies for the first time, and there&amp;#x2019;s no reason why they have to suffer the same computing mistakes that the developed world has. We can build simple, mobile, goal-oriented devices for the next generation of human communication.
  57. One way of considering the problem of modern desktop computing is that we&amp;#x2019;ve failed to break down the problem sufficiently. The promise of ubiquitous computing - intelligent devices everywhere around us - is a chance to reconsider computers as simple, single-purpose devices.
  58. The artists all grouped together by art historians as the Minimalists never really considered themselves adherents of a common school or approach. They just did what they did, and most of them fought the Minimalist label for the rest of their careers. If you liked what you heard here today, I&amp;#x2019;m glad, but the point isn&amp;#x2019;t that you should go out and brand yourself a Minimalist. The point is to take the ideas that work for you and make the world a better, simpler place.