I Have Nothing to Declare But my Genius
I Have Nothing to Declare But my Genius -or. Late Binding as a Philosophy of Life Brian Foote foote@laputan. org http: //www. laputan. org
Why I’m (Still) Here The Dynamic Vision from James VI through George III Ø Architectural Balkanization in the Post-Linguistic Era Ø The Future of Objects in a Global Ultrascale Ecosphere Ø I Have Nothing to Declare but my Genius -- 2 *
#1: Dynamic Polymorphism Ø What other kind is there? Ø Easy as PIE Ø Great for Wrapping Stuff Ø Modularity Ø Application Level Ø Component Level I Have Nothing to Declare but my Genius -- 3 *
#2: Callipygian Compilation Ø Deutsch and Shiffman Ø Self and Hotspot Ø A Cast of Thousands Ø The JITters Ø Complets I Have Nothing to Declare but my Genius -- 4 *
Smalltalk-80 Ø Everything I know about OO I learned from the Image Ø Browsers / IDEs Ø Windows GUIs Ø Dynamic Translation (JITs) Ø Building Programs Out of Objects I Have Nothing to Declare but my Genius -- 5 *
A Language Built of First-Class Objects Ø Ø Ø Ø Ø Object Behavior Class. Description Class Metaclass Method. Dictionary Compiled. Method Byte. Array Ø Ø Ø Ø Ø Context Method. Context Block. Context Message Process. Scheduler Semaphore Shared. Queue Compiler System. Dictionary I Have Nothing to Declare but my Genius -- 6 *
#3: Reflection Ø Grew out of the Lisp Tradition Ø Programs able to access a “causally connect” representation of themselves Ø Self Representation Ø Introspection / Intercession I Have Nothing to Declare but my Genius -- 7 *
The Manifest Ø User Configuration Ø Evolution Ø A map Ø A manifest Ø User configurable code Ø Ad hoc reflection I Have Nothing to Declare but my Genius -- 8 *
Class Menagerie Ø Ø Ø Ø Ø 1. Monitors 2. Encapsulators 3. Message Forwarding 4. Property List Manipulations 5. Accessible Objects (Dicts =Records=Props) (Dicts=Records=Props) 6. Multiple Views (Database style) 7. Capabilities (Access Control)/OS Style Protection 8. Multiple Inheritance 9. Tracing 10. Debugging (Many Mentions) 11. Futures 12. Remote (Distributed) Objects 13. Multitasking (transparent, perhaps) 14. Constraints 15. Reflection 16. Part/Whole Relationships 17. Active Values Active Variables Active Messages Active References 18. "Smart" Variables 19. Lightweight (Anonymous) Classes 20. Melds (Garlan & Kaiser) Ø Ø Ø Ø Ø 21. Actors/Daemons 22. Lazy Evaluation 23. Caching Schemes 24. Memory Functions (as in POP 2 and friends) 25. Read-Only Variables 26. Logging 27. Metering/Statistics/Performance Data Collection 28. Component Delegation 29. Atomic Objects/Actions 30. Protocol Translators/Adaptors 31. Open Systems (Protocol Negotiators? ) 32. Multiple Inheritance Schemes 33. Delegated Inheritance (and other forms of sharing) 34. Multimethods (and other generic dispatch schemes) 35. Method Combination/Composition 36. Prototypes (ala Borning) 37. Modules (ala Wirfs-Brock) 38. Continuations? Catch/Throw? 39. Exception Handling of various sorts. . . 40. Dynamic Behavior Changes I Have Nothing to Declare but my Genius -- 9 *
Class Menagerie Ø Ø Ø Ø Ø Ø 41. Dynamic Class Changes 42. Dynamic Class Construction 43. "Smart" Paths (see Part/Whole) 44. Flavors (now CLOS)-Style Method Combination 45. Two Way Implicit Group Membership (like Part/Whole? ) (Perhaps encompassing the idea of "Enrollment" (Randall Smith)) 46. Implicit Coercion Schemes 47. X-Style Substructure Redirection 48. Event Dispatching (see Multimethods) 49. Alternate Memory Allocation Schemes 50. Multilevel (Virtual, in the OS sense) Object Allocation 51. Sundry Dynamic and Other Optimizations (Cointe)) 52. Escape Operators (see Continuations) (B. C. Smith) 53. "Deviant" Variable Passing Protocols (B. C. Smith) 54. Planning/Supervisory Code (Genesereth, , others) 55. Behavior Based Programming 56. Active Types 57. Strategy Computation 58. Truth Maintenance 59. Program Supervision 60. Multiprocessor Load Balancing Ø Ø Ø Ø 61. Active Values/Access Oriented Programming 62. Self Analysis (Code Walking) 63. Self description of a program's operational semantics 64. Smart Comments 65. Logic Variables/Unification 66. Agents 67. Virtual Time (Time Warp) 68. Version Management 69. Garbage Collection 70. Persistent Objects 71. Active Protocols 72. Algorithm animation 73. Language Level Viruses 74. Program Transformation I Have Nothing to Declare but my Genius -- 10 *
CLOS and the MOP T | STANDARD-OBJECT | | CONSTRUCTOR | | METHOD-COMBINATION | | | STANDARD-METHOD-COMBINATION | | LONG-METHOD-COMBINATION | | SHORT-METHOD-COMBINATION | | PLIST-MIXIN | | | <. . . > | | DEFINITION-SOURCE-MIXIN | | | <. . . > | | METAOBJECT | | | GENERIC-FUNCTION | | STANDARD-GENERIC-FUNCTION | | | METHOD | | TRACED-METHOD | | STANDARD-METHOD | | | STANDARD-ACCESSOR-METHOD | | | STANDARD-WRITER-METHOD | | | STANDARD-READER-METHOD | | | SLOT-DEFINITION | | STANDARD-SLOT-DEFINITION | | | STANDARD-EFFECTIVE-SLOT-DEFINITION | | | STANDARD-DIRECT-SLOT-DEFINITION | | EFFECTIVE-SLOT-DEFINITION | | | STANDARD-EFFECTIVE-SLOT-DEFINITION | | DIRECT-SLOT-DEFINITION | | | STANDARD-DIRECT-SLOT-DEFINITION | | | SPECIALIZER | | EQL-SPECIALIZER | | CLASS | | | PCL-CLASS | | | BUILT-IN-CLASS | | | FORWARD-REFERENCED-CLASS | | | STD-CLASS | | | | FUNCALLABLE-STANDARD-CLASS | | | | STANDARD-CLASS <That's all. . . > May Day PCL Hierarchy I Have Nothing to Declare but my Genius -- 11 *
Objects We Built Ø Ø Ø Ø Multi. Method Specializer Class. Specializer Equal. Speciealizer Generic. Message Method. Combination Discriminating. Method Qualifiers (#Before #After, etc. ) Ø Ø Sub. Standard. Method. Combination Simple. Method. Combination Beta. Method. Combination Dispatching. Method. Combination I Have Nothing to Declare but my Genius -- 12 *
Actors Ø Asynchrony is only now coming into vogue Ø A Glamorous World: Models … Actors Ø A strategic architecture reserve… I Have Nothing to Declare but my Genius -- 13 *
I Have Nothing to Declare but my Genius -- 14 *
One of These is True Meta considered harmful “Meta” considered harmful I Have Nothing to Declare but my Genius -- 15 *
The Vision Languages Built out of Objects Ø Open Languages Ø Open JITTERS Ø A Framework For Languages Ø Compile Time is any Time Ø Linguistic Imperialism Ø I Have Nothing to Declare but my Genius -- 16 *
The Reality Utopian Monocultures were wonderful idea incubators Ø More pragmatic languages prevailed Ø We live in a heterogeneous polyglot world Ø We need to play well with others Ø The Rise of Worse is Better Ø I Have Nothing to Declare but my Genius -- 17 *
The Great Schism of ‘ 97 Ø Objectivists Ø Aspectivists Ø Pragmatists Ø Formalists I Have Nothing to Declare but my Genius -- 18 *
The Medusa An apparition so hideous that all who gaze upon her are turned to stone… "This thing you call language, though. . . most remarkable. You depend on it for so very much, but is any one of you really its master? " -- Spock/Kollos, Is There in Truth No Beauty? I Have Nothing to Declare but my Genius -- 19 *
Of Slugs and Bugs How Star-Crossed Software Lost the Mars Climate Orbiter The fault, dear Brutus, is not in our stars, But in ourselves, that we are underlings I Have Nothing to Declare but my Genius -- 20 *
A Comic Book Tragedy? Ø Perfectly good spaceship Ø Perfectly good software onboard Ø Support software working as intended Ø Dived into Martian atmosphere, just as it was told to Ø The culprit: a “simple” unit conversion I Have Nothing to Declare but my Genius -- 21 *
The Carpetbaggers Ø Ø Ø Ø Type Theorists Methodologists Languages Designers Testers Management Consultants System Integrators Interface Design Engineers? I Have Nothing to Declare but my Genius -- 22 *
The Root Cause The failure to use metric units in the coding of a ground software file, “Small Forces” used in trajectory models. Specifically, thruster performance data in English units rather than metric units was used in the software application code titled SM_FORCES (small forces). I Have Nothing to Declare but my Genius -- 23 *
Angular Momentum Desaturation Ø Ø Ø MCO uses both reaction wheels and thrusters RWs allow more precise attitude control In an ideal world, they never saturate On an ideal spacecraft, there is no residual On an ideal mission, residuals cancel out In an ideal model, these are properly accounted for I Have Nothing to Declare but my Genius -- 24 *
How MCO was “Lost” I Have Nothing to Declare but my Genius -- 25 *
Dollars and Francs I Have Nothing to Declare but my Genius -- 26 *
Mass, Weight, Force and Impulse Ø Ø Ø F = ma 1 N = (1 kg)(1 m/s 2) 1 lbf = (1 slug)(1 ft/s 2) 1 lbf = 32. 174 lbm (1 ft/s 2) 1 lbf = 1 lbm (32. 174 ft/s 2) 1 lbm =. 4536 kg 1 ft =. 3048 m 1 N = 4. 448 lbf 1 N-sec = 4. 448 lbf-sec 4. 448 = (32. 174)(. 3048)(. 4536) 1 N-sec = 1 kg-m/s N = kg (9. 81 m/s 2) Ø Ø Ø Weight = 32. 174 lbf Mass = 1 slug Mass = 32. 174 lbm Mass = 14. 6 kg Weight = 143 N I Have Nothing to Declare but my Genius -- 27 *
SM_FORCES Although starting from MGS-heritage software, the coded thruster equations had to be changed because of the different size RCS thruster that MCO employed. As luck would have it, the 4. 45 conversion factor, although correctly included in the MGS equation by the previous development team, was not immediately identifiable by inspection (being buried in the equation) or commented code in an obvious way that the MCO team recognized it. I Have Nothing to Declare but my Genius -- 28 *
A Typeless Tragedy? Metric units were in the SIS Ø Paper is not executable Ø SIS was complied with under MGS Ø LMA is an English Unit shop Ø Unclear whether “Whole Values” would have helped catch this problem Ø Programmers are not executable Ø I Have Nothing to Declare but my Genius -- 29 *
A Hatchet Job Ø MCO: Faster Better Cheaper (pick two) Ø Reused instruments Ø “Reused” software Ø Just one more “cut-n-paste” horror story… Ø All that paper, but yet the right information wasn’t before the right person when it was sorely needed… I Have Nothing to Declare but my Genius -- 30 *
If it ain’t been tested Ø Full end-to-end test never performed Ø Programs were late Ø “Olfactory Method” not followed Ø Paper is not always the your weapon of choice Ø Managers don’t win games, players do I Have Nothing to Declare but my Genius -- 31 *
The Olfactory Method Kent Beck: May be Best Remembered as the Man Who brought Scatology and Software Engineering together… If it stinks, change it! --Grandma Beck Code Smells are (not so) subtle indications a piece of code is in need of attention… …and is a likely candidate for refactoring… I Have Nothing to Declare but my Genius -- 32 *
My Journey Ø Units? Ø Types? Ø Metadata? Ø Process? Ø Testing? Ø …Mud! I Have Nothing to Declare but my Genius -- 33 *
A $327 Million Fireworks Display …in the night time Martian sky, watched by no one… -- 23 September, 1999 I Have Nothing to Declare but my Genius -- 34 *
The End-to-End Principle Ø Applies to programming languages too… Ø Why dote if you have to do it over? Ø Types build of real first class runtime objects can be customized I Have Nothing to Declare but my Genius -- 35 *
XSLT Example <xsl: stylesheet xmlns: xsl="http: //www. w 3. org/1999/XSL/Transform" version="1. 0"> <xsl: key match="/publisher/books/book" use="author-ref/@ref" name="books-by-author"/> <xsl: template match="/"><bestsellers-list> <xsl: apply -templates select="/publisher/authors/author"> <xsl: apply-templates select="/publisher/authors/author"> <xsl: sort select="sum(key('books-by-author', @id)/sold)"/> <xsl: sort select="last_name"/> <xsl: sort select=" </xsl: apply -templates> </xsl: apply-templates> </bestsellers-list></xsl: template> <xsl: template match="author"> <copy> <name> <xsl: value -of select="last_name"/>, <xsl: value-of select=" <xsl: value -of select="first_name"/> <xsl: value-of select=" </name> <total_publications> <xsl: value -of select="count(key('books-by-author', @id))"/> <xsl: value-of select=" </total_publications > </total_publications> <total_sold> <xsl: value -of select="sum(key('books-by-author', @id)/sold)"/> <xsl: value-of select=" </total_sold > </total_sold> <rank> <xsl: value -of select="position()"/> <xsl: value-of select="position()"/> </rank> </copy> </xsl: template> </xsl: stylesheet> I Have Nothing to Declare but my Genius -- 36 *
The Post Linguistic Era Ø Ø Ø The is a five hundred pound gorilla in the room The Program Model is Central The ASCII is fungible, round- trippable Representations are freely convertible Programs built of objects can be changed Anything can be swapped out… I Have Nothing to Declare but my Genius -- 37 *
Building Program Out of Objects Ø Monitoring, Debugging, Tracing, etc. Ø Patterns are all in Play Ø Dynamic Objects Models and Frameworks Grow into Programming Languages Ø You can debug, edit, browse, you name it… I Have Nothing to Declare but my Genius -- 38 *
Megafauna Ø Global Namespace Ø The Manifest Ø Polymorphism, Reflection, Jitting Ø Vegetable, not Animal Ø Runtime Testing, Communication, Metering I Have Nothing to Declare but my Genius -- 39 *
Engineering Tolerances Ø We can’t type each line tree times… Ø We can leave in the goalies… Ø What are we thinking taking them out? Ø We can engineer our objects to self test… I Have Nothing to Declare but my Genius -- 40 *
The Gang of Four Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides A landmark book that changed the way programmers think about building objectoriented programs I Have Nothing to Declare but my Genius -- 41 *
The Cornucopia Ø Ø Ø Moore’s Law has bought three, four orders of magnitude in performance We’ve squandered it on eyewash Can’t we afford to leave the goal tender in? Testing shows the value Those “runtime” type errors”? Welcome to the 21 st century Network, DB, are slower than reflection I Have Nothing to Declare but my Genius -- 42 *
The Frugal Fussbudgets of Formalism Ø Static languages throw away all the information we need at runtime. Why? ? ? Ø This made some sense … in 1982 Ø It’s peanuts to keep this stuff now… Ø It’s almost malpractice not to… I Have Nothing to Declare but my Genius -- 43 *
Dynamic Types are Strong Types Weak vs. Strong and Static vs. Dynamic are distinct dimensions… Ø I don’t care about mere declarations, I want to know what enforces them… Ø I Have Nothing to Declare but my Genius -- 44 *
Embrace Stuff Ø Embrace Failure Ø Embrace Diversity Ø Embrace Runtime Ø Embrace Heterogeneity Ø Embrace Change I Have Nothing to Declare but my Genius -- 45 *
Soft Machines Ø Are made of objects Ø Are easy to change Ø Are easy to harden Ø Are virtual machines Ø Are configurable machines I Have Nothing to Declare but my Genius -- 46 *
The Holocene Explosion Ø Integration Ø Brokers and Reflection … Ø CORBA? Ø SOM! I Have Nothing to Declare but my Genius -- 47 *
The Cobbler’s Children I Have Nothing to Declare but my Genius -- 48 *
I Have Nothing to Declare but my Genius -- 49 *
I Have Nothing to Declare but my Genius -- 50 *
Lessons Ø Utopian Vision was Ø Building Languages of Objects Ø The Power of Multimethods I Have Nothing to Declare but my Genius -- 51 *
Possible Topics Ø Ø Ø Ø End to End MCO The Medusa The Blind Men and the Elephant JIT Building Languages out of Objects First Class all the Way Reflection Dynamic Polymorphism Names Spaces are Global… Architecture, Artifact, and Artifice Why am I Here? The Glory of The Image I Have Nothing to Declare Newton Bohr Darwin and the Cobbler’s Children Empty Net I Have Nothing to Declare but my Genius -- 52 *
Reflection Ø The Manifest Ø Building Programs out of Objects Ø Programs are Objects I Have Nothing to Declare but my Genius -- 53 *
The Jitters Ø Compile Time is any time… Ø Putting down the landing gear Ø Compile once / run anywhere? Failed? How true is that? I Have Nothing to Declare but my Genius -- 54 *
Meta Won, Objects Lost Ø Meta and Manifests Ø Reflection and GUIs Ø Adaptive Object Models Ø Soft Machines I Have Nothing to Declare but my Genius -- 55 *
Write it Three Times Ø Spend a few cycles Ø Spend some RAM Ø Cycles and RAM / Space are the raw materials we have to work with… Ø Instead, we’ve been in fantasy land… I Have Nothing to Declare but my Genius -- 56 *
Architectural Balkanization Ø In the Post Linguistic Era I Have Nothing to Declare but my Genius -- 57 *
What’s a Language? Ø Why worship Chomsky Ø Why sling ASCII? Ø What about Models? Ø Why write programs that write programs? I Have Nothing to Declare but my Genius -- 58 *
Polymorphism Ø Starts with Modularity Ø Moves on to OO Languages Ø Next Level: Components I Have Nothing to Declare but my Genius -- 59 *
Metadata Ø Program Configuration Ø Checking Ø Typing… Ø Evaluation Ø Language I Have Nothing to Declare but my Genius -- 60 *
Our Own Private Pottersville I Have Nothing to Declare but my Genius -- 61 *
Efficient Multimethods in a Single Dispatch Language Brian Foote Ralph Johnson Dept. of Computer Science University of Illinois at Urbana-Champaign 201 N. Goodwin, Urbana, IL 61801, USA foote@cs. uiuc. edu johnson@cs. uiuc. edu James Noble School of Mathematical and Computing Sciences Victoria University of Wellington P. O. Box 600, Wellington, New Zealand kjx@mcs. vuw. ac. nz
Landmarks Ø Motivation for Multimethods Ø Syntax Matters Ø A Tale of Two MOPs Ø Two Implementations Ø Enduring Significance I Have Nothing to Declare but my Genius -- 63 *
I Have Nothing to Declare but my Genius -- 64 *
Dan Ingalls I Have Nothing to Declare but my Genius -- 65 *
The Church of Polymorphism Ø The Great Schism Ø Aspectivism Ø Objectivism I Have Nothing to Declare but my Genius -- 66 *
Anachronisms Ø Programs as Text Ø Closed World Analysis Ø Obsession with Performance / Efficiency I Have Nothing to Declare but my Genius -- 67 *
I Have Nothing to Declare but my Genius -- 68 *
The Cobbler’s Children I Have Nothing to Declare but my Genius -- 69 *
The Gordian Knot I Have Nothing to Declare but my Genius -- 70 *
The Gang of Four Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides A landmark book that changed the way programmers think about building objectoriented programs I Have Nothing to Declare but my Genius -- 71 *
Patterns are Dispatches from the Trenches about What Works Academics Feed the Novelty Vampires Secrets are Important to Industry I Have Nothing to Declare but my Genius -- 72 *
I Have Nothing to Declare but my Genius -- 73 *
I Have Nothing to Declare but my Genius -- 74 *
I Have Nothing to Declare but my Genius -- 75 *
Dan Ingalls I Have Nothing to Declare but my Genius -- 76 *
The Church of Polymorphism Ø The Great Schism Ø Aspectivism Ø Objectivism I Have Nothing to Declare but my Genius -- 77 *
Anachronisms Ø Programs as Text Ø Closed World Analysis Ø Obsession with Performance / Efficiency I Have Nothing to Declare but my Genius -- 78 *
I Have Nothing to Declare but my Genius -- 79 *
The Cobbler’s Children I Have Nothing to Declare but my Genius -- 80 *
The Gordian Knot I Have Nothing to Declare but my Genius -- 81 *
The Gang of Four Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides A landmark book that changed the way programmers think about building objectoriented programs I Have Nothing to Declare but my Genius -- 82 *
Patterns are Dispatches from the Trenches about What Works Academics Feed the Novelty Vampires Secrets are Important to Industry I Have Nothing to Declare but my Genius -- 83 *
I Have Nothing to Declare but my Genius -- 84 *
I Have Nothing to Declare but my Genius -- 85 *
I Have Nothing to Declare but my Genius -- 86 *
Dan Ingalls I Have Nothing to Declare but my Genius -- 87 *
The Church of Polymorphism Ø The Great Schism Ø Aspectivism Ø Objectivism I Have Nothing to Declare but my Genius -- 88 *
Anachronisms Ø Programs as Text Ø Closed World Analysis Ø Obsession with Performance / Efficiency I Have Nothing to Declare but my Genius -- 89 *
I Have Nothing to Declare but my Genius -- 90 *
The Cobbler’s Children I Have Nothing to Declare but my Genius -- 91 *
The Gordian Knot I Have Nothing to Declare but my Genius -- 92 *
The Gang of Four Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides A landmark book that changed the way programmers think about building objectoriented programs I Have Nothing to Declare but my Genius -- 93 *
Patterns are Dispatches from the Trenches about What Works Academics Feed the Novelty Vampires Secrets are Important to Industry I Have Nothing to Declare but my Genius -- 94 *
I Have Nothing to Declare but my Genius -- 95 *
I Have Nothing to Declare but my Genius -- 96 *
I Have Nothing to Declare but my Genius -- 97 *
Dan Ingalls I Have Nothing to Declare but my Genius -- 98 *
The Church of Polymorphism Ø The Great Schism Ø Aspectivism Ø Objectivism I Have Nothing to Declare but my Genius -- 99 *
Anachronisms Ø Programs as Text Ø Closed World Analysis Ø Obsession with Performance / Efficiency I Have Nothing to Declare but my Genius -- 100 *
I Have Nothing to Declare but my Genius -- 101 *
The Cobbler’s Children I Have Nothing to Declare but my Genius -- 102 *
The Gordian Knot I Have Nothing to Declare but my Genius -- 103 *
The Gang of Four Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides A landmark book that changed the way programmers think about building objectoriented programs I Have Nothing to Declare but my Genius -- 104 *
Patterns are Dispatches from the Trenches about What Works Academics Feed the Novelty Vampires Secrets are Important to Industry I Have Nothing to Declare but my Genius -- 105 *
I Have Nothing to Declare but my Genius -- 106 *
I Have Nothing to Declare but my Genius -- 107 *
I Have Nothing to Declare but my Genius -- 108 *
I Have Nothing to Declare but my Genius -- 109 *
Dan Ingalls I Have Nothing to Declare but my Genius -- 110 *
The Church of Polymorphism Ø The Great Schism Ø Aspectivism Ø Objectivism I Have Nothing to Declare but my Genius -- 111 *
Anachronisms Ø Programs as Text Ø Closed World Analysis Ø Obsession with Performance / Efficiency I Have Nothing to Declare but my Genius -- 112 *
I Have Nothing to Declare but my Genius -- 113 *
The Cobbler’s Children I Have Nothing to Declare but my Genius -- 114 *
The Gordian Knot I Have Nothing to Declare but my Genius -- 115 *
The Gang of Four Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides A landmark book that changed the way programmers think about building objectoriented programs I Have Nothing to Declare but my Genius -- 116 *
Patterns are Dispatches from the Trenches about What Works Academics Feed the Novelty Vampires Secrets are Important to Industry I Have Nothing to Declare but my Genius -- 117 *
I Have Nothing to Declare but my Genius -- 118 *
I Have Nothing to Declare but my Genius -- 119 *
I Have Nothing to Declare but my Genius -- 120 *
Dan Ingalls I Have Nothing to Declare but my Genius -- 121 *
The Church of Polymorphism Ø The Great Schism Ø Aspectivism Ø Objectivism I Have Nothing to Declare but my Genius -- 122 *
The Church of Polymorphism Ø The Great Schism Ø Aspectivism Ø Objectivism I Have Nothing to Declare but my Genius -- 123 *
I don't build in order to have clients. I have clients in order to build. --Ayn Rand I Have Nothing to Declare but my Genius -- 124 *
I Have Nothing to Declare but my Genius -- 125 *
- Slides: 125