Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
A presentation to
the Strange Loop conference
re: minimalism
in software and computing.



Alex Payne
St Louis – October, ...
“understanding simplicity is complicated”
M
versus
  m
Minimalism in
context.
“a style distinguished by
 severity of means,
 clarity of form, and
 simplicity of structure and texture”
“the reduction of art to its rudiments”
“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...
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 cod...
“By avoiding complexity when possible,
 and containing it when it is unavoidable,
 we can maximize the probability
 that t...
“The only hope is to
 abandon complex software.
 Embrace simple.”
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]
  
 
 t...
unification via homoiconicity 2:


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

defin...
unification via interoperability 1:




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




             REST and HTTP
Reduction of:



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




+ leverage encapsulation
+ remove redundancies
+ stick to contracts
+ prefer code to comments
+ man...
reduction of syntax:



  |y|
  true & false not & (nil isNil) ifFalse: [self halt].
  y := self size + super size.
    #(...
reduction of abstractions:




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




“In an extensible system,
 the key issue is to identify
 those primitives that offer
 the most...
Constraint via:




+ project scope
+ hardware limitations
+ operational requirements
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
           ...
Future.
Mobile.
Ubiquitous computing.
A final thought.
Thank you.
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
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
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
Strange Loop 2009 Keynote: Minimalism in Computing
Upcoming SlideShare
Loading in …5
×

of

Strange Loop 2009 Keynote: Minimalism in Computing Slide 1 Strange Loop 2009 Keynote: Minimalism in Computing Slide 2 Strange Loop 2009 Keynote: Minimalism in Computing Slide 3 Strange Loop 2009 Keynote: Minimalism in Computing Slide 4 Strange Loop 2009 Keynote: Minimalism in Computing Slide 5 Strange Loop 2009 Keynote: Minimalism in Computing Slide 6 Strange Loop 2009 Keynote: Minimalism in Computing Slide 7 Strange Loop 2009 Keynote: Minimalism in Computing Slide 8 Strange Loop 2009 Keynote: Minimalism in Computing Slide 9 Strange Loop 2009 Keynote: Minimalism in Computing Slide 10 Strange Loop 2009 Keynote: Minimalism in Computing Slide 11 Strange Loop 2009 Keynote: Minimalism in Computing Slide 12 Strange Loop 2009 Keynote: Minimalism in Computing Slide 13 Strange Loop 2009 Keynote: Minimalism in Computing Slide 14 Strange Loop 2009 Keynote: Minimalism in Computing Slide 15 Strange Loop 2009 Keynote: Minimalism in Computing Slide 16 Strange Loop 2009 Keynote: Minimalism in Computing Slide 17 Strange Loop 2009 Keynote: Minimalism in Computing Slide 18 Strange Loop 2009 Keynote: Minimalism in Computing Slide 19 Strange Loop 2009 Keynote: Minimalism in Computing Slide 20 Strange Loop 2009 Keynote: Minimalism in Computing Slide 21 Strange Loop 2009 Keynote: Minimalism in Computing Slide 22 Strange Loop 2009 Keynote: Minimalism in Computing Slide 23 Strange Loop 2009 Keynote: Minimalism in Computing Slide 24 Strange Loop 2009 Keynote: Minimalism in Computing Slide 25 Strange Loop 2009 Keynote: Minimalism in Computing Slide 26 Strange Loop 2009 Keynote: Minimalism in Computing Slide 27 Strange Loop 2009 Keynote: Minimalism in Computing Slide 28 Strange Loop 2009 Keynote: Minimalism in Computing Slide 29 Strange Loop 2009 Keynote: Minimalism in Computing Slide 30 Strange Loop 2009 Keynote: Minimalism in Computing Slide 31 Strange Loop 2009 Keynote: Minimalism in Computing Slide 32 Strange Loop 2009 Keynote: Minimalism in Computing Slide 33 Strange Loop 2009 Keynote: Minimalism in Computing Slide 34 Strange Loop 2009 Keynote: Minimalism in Computing Slide 35 Strange Loop 2009 Keynote: Minimalism in Computing Slide 36 Strange Loop 2009 Keynote: Minimalism in Computing Slide 37 Strange Loop 2009 Keynote: Minimalism in Computing Slide 38 Strange Loop 2009 Keynote: Minimalism in Computing Slide 39 Strange Loop 2009 Keynote: Minimalism in Computing Slide 40 Strange Loop 2009 Keynote: Minimalism in Computing Slide 41 Strange Loop 2009 Keynote: Minimalism in Computing Slide 42 Strange Loop 2009 Keynote: Minimalism in Computing Slide 43 Strange Loop 2009 Keynote: Minimalism in Computing Slide 44 Strange Loop 2009 Keynote: Minimalism in Computing Slide 45 Strange Loop 2009 Keynote: Minimalism in Computing Slide 46 Strange Loop 2009 Keynote: Minimalism in Computing Slide 47 Strange Loop 2009 Keynote: Minimalism in Computing Slide 48 Strange Loop 2009 Keynote: Minimalism in Computing Slide 49 Strange Loop 2009 Keynote: Minimalism in Computing Slide 50 Strange Loop 2009 Keynote: Minimalism in Computing Slide 51 Strange Loop 2009 Keynote: Minimalism in Computing Slide 52 Strange Loop 2009 Keynote: Minimalism in Computing Slide 53 Strange Loop 2009 Keynote: Minimalism in Computing Slide 54 Strange Loop 2009 Keynote: Minimalism in Computing Slide 55 Strange Loop 2009 Keynote: Minimalism in Computing Slide 56 Strange Loop 2009 Keynote: Minimalism in Computing Slide 57 Strange Loop 2009 Keynote: Minimalism in Computing Slide 58 Strange Loop 2009 Keynote: Minimalism in Computing Slide 59
Upcoming SlideShare
Rhetorical devices
Next
Download to read offline and view in fullscreen.

32 Likes

Share

Download to read offline

Strange Loop 2009 Keynote: Minimalism in Computing

Download to read offline

A keynote to the Strange Loop conference in St Louis, October 2009. The topic was the influence of Minimalism in art on computing and programming.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Strange Loop 2009 Keynote: Minimalism in Computing

  1. A presentation to the Strange Loop conference re: minimalism in software and computing. Alex Payne St Louis – October, 2009
  2. “understanding simplicity is complicated”
  3. M versus m
  4. Minimalism in context.
  5. “a style distinguished by severity of means, clarity of form, and simplicity of structure and texture”
  6. “the reduction of art to its rudiments”
  7. “What is minimal about Minimal Art is the means, not the end.”
  8. Where do we learn how to do what we do?
  9. Architecture.
  10. “Architecture is a way to understand complex systems. Architecture is a way to design complex systems. Architecture is a way to manage complex systems.”
  11. Assertion: Complexity is making + our software slow + our programs insecure + our jobs harder + our users unhappy
  12. “As computers have increased in complexity, my enjoyment of them has plummeted.”
  13. “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.”
  14. “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.”
  15. “The only hope is to abandon complex software. Embrace simple.”
  16. Strategies for Minimalist software: + unification + constraint + reduction
  17. Unification of: + object and materials + details and context + code and data
  18. unification of code and data ↓ homoiconicity
  19. 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] ] ]
  20. 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 *)
  21. unification via interoperability 1: var myObject = eval('(' + myJSONtext + ')');
  22. unification via interoperability 2: REST and HTTP
  23. Reduction of: + lines of code + linguistic verbosity + abstractions + hierarchy
  24. reduction of code: + leverage encapsulation + remove redundancies + stick to contracts + prefer code to comments + manage dependencies carefully
  25. 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
  26. reduction of abstractions: “I think the major good idea in Unix was its clean and simple interface: open, close, read, and write.”
  27. 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.”
  28. Constraint via: + project scope + hardware limitations + operational requirements
  29. Antithesis.
  30. The danger of abstraction: Is Minimalism still valuable if it only exists on the surface?
  31. The risk of irrelevance: Would Minimalism be useful if complexity worked better?
  32. The necessity of complexity: Is it possible to deliver Minimalist software that meets all needs?
  33. Future.
  34. Mobile.
  35. Ubiquitous computing.
  36. A final thought.
  37. Thank you.
  • ShawnaseyLina

    Nov. 24, 2021
  • AnjaliShroff

    Feb. 5, 2018
  • Navneetk

    Mar. 6, 2015
  • ideali

    Nov. 19, 2012
  • kurtle

    Nov. 24, 2010
  • zonovo

    Oct. 9, 2010
  • o2eater

    Sep. 16, 2010
  • jamestong

    Aug. 10, 2010
  • bschrauw

    Feb. 20, 2010
  • progrium

    Jan. 26, 2010
  • jurbat

    Jan. 25, 2010
  • lsinger

    Dec. 9, 2009
  • markoa

    Dec. 5, 2009
  • matthanson

    Nov. 18, 2009
  • jwthree

    Oct. 28, 2009
  • jboutelle

    Oct. 28, 2009
  • clsnyder

    Oct. 28, 2009
  • nestorrojas

    Oct. 28, 2009
  • rubenmedios

    Oct. 28, 2009
  • etino

    Oct. 28, 2009

A keynote to the Strange Loop conference in St Louis, October 2009. The topic was the influence of Minimalism in art on computing and programming.

Views

Total views

32,793

On Slideshare

0

From embeds

0

Number of embeds

1,923

Actions

Downloads

211

Shares

0

Comments

0

Likes

32

×