Software, from Code into the Clouds

1,544 views

Published on

Software, from Code into the Clouds

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,544
On SlideShare
0
From Embeds
0
Number of Embeds
356
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Software, from Code into the Clouds

  1. 1. Software from Code into the Clouds
  2. 2. Code a. Code is a system of signals used to send messages b. Code is a system of symbols used for the purpose of identification or classification c. Code is a set of conventions governing behaviour
  3. 3. Pre Human Codes pheromones Gopal Aggarwal http://gopal1035.blogspot.com body language http://commons.wikimedia.org/wiki/File:Genetic_code.svg information content in genetic material
  4. 4. Pre Computing Era < 1800 ... consisted of all the code used in interactions between humans • Natural language evolved to become an important ingredient of the code used by humans http://commons.wikimedia.org/wiki/ File:Discussion.jpg • Humans learned to translate between different natural languages ...
  5. 5. Proto Computing Era 1800 - 1940 ... now included all the code used within a computer • Development of hardware that http://commons.wikimedia.org/wiki/ File:Babbage_Difference_Engine_%281%29.jpg understands a small code • Hardware understanding is limited to arithmetic operations • Humans translate arithmetic ... tasks into code with crude tools
  6. 6. Business Computing Era 1970s ... now included all the code used in interactions between computers and http://commons.wikimedia.org/wiki/ ... File:COBOL.png humans • Humans develop programming ... languages that borrow heavily from natural language • Compilers translate into a code that models the hardware http://commons.wikimedia.org/wiki/File:Cpc-wide-700.jpg
  7. 7. Network Computing Era 1980s ... now included all the code used in interactions between computers http://upload.wikimedia.org/wikipedia/commons/thumb/ 4/41/Mislanet2003_3.jpg/120px-Mislanet2003_3.jpg • Humans use programming languages to express increasingly sophisticated network protocols • Focus shifts to computer- computer communication ... ... ...
  8. 8. Internet Era 1990s ... now consisted of everything that is http://commons.wikimedia.org/wiki/ not hardware File:Internetanschl%C3%BCsse.PNG • More and more of the code is ... expressed in programming languages • The complexity that comes with ... ... scale becomes the big productivity bottleneck ... ... ...
  9. 9. Web Application Era 2000s ... increasingly included interaction with the web http://commons.wikimedia.org/wiki/File:Mfile.png • The problem of scaling hardware and networks has been solved ... • The problem of scaling ... remains ... ... • Making programming languages feel more like natural language doesn’t seem to help ...
  10. 10. Cloud Era 2010s ... suffers from the same problems as http://commons.wikimedia.org/wiki/ way back File:Cloud_computing_icon.svg • when ... was all about exchange between humans • Increasingly the artefacts exchanged are not hardware http://commons.wikimedia.org/wiki/ File:Discussion.jpg • We are encoding ... in ... • Hold that thought! ...
  11. 11. ... ... is a container of information that http://commons.wikimedia.org/wiki/ File:Photo_with_histogram.JPG • is created by a specific actor (human or a system) • is consumed by at least one actor (human or system) • represents a natural unit of work (for the creating and consuming actors) • may contain links to other ... • has a state and a life-cycle
  12. 12. ... We are encoding ... in ... • ... • <=> communication • <=> information • <=> programs • <=> representations
  13. 13. Language Artefacts A language artefact is a non-hardware artefact • information content of pheromones • information content of body language • live music • live speech • information content in traditional symbolic notations • program/diagram/hypertext/database content • information content of recorded sound/pictures/videos • information content of genetic material
  14. 14. Coding All language artefacts are expressed in code • Each code adheres to a syntax defined in a meta code • The producer typically associates a desired intent with a language artefact • The semantics of a language artefact are determined by the reactions of consumers, not by the producer • The desired intent and the semantics of a syntax can only be aligned through extensive instantiation (by producers) and semantic processing (by consumers) of example language artefacts http://commons.wikimedia.org/wiki/ File:Encoding_communication-1-.jpg
  15. 15. Meta Code Syntax definitions • molecular structure • postures, gestures • instrument-specific sound production rules • pronunciation rules • grammars (for natural languages, mathematics, music, ...) • grammars (for human/computer languages) • audio formats, image formats, video formats • genetic code Meta code is a subset of code (recursion!) http://geekandpoke.typepad.com/geekandpoke/2010/04/meta.html
  16. 16. Modularity Familiar language artefact modules • molecules • posture, gestures low • beats, phrases, songs expressive • words, sentences power • paragraphs, chapters, books, terms, equations • program/diagram/hypertext/database files • audio/image/video files high • nucleotides, genes
  17. 17. Scalability http://commons.wikimedia.org/wiki/ File:Modular_origami.jpg Modules preserve simplicity • molecules • posture, gestures low • beats, phrases, songs information • words, sentences content • paragraphs, chapters, books, terms, equations • program/diagram/hypertext/database files • audio/image/video files high • nucleotides, genes
  18. 18. Pain Point http://commons.wikimedia.org/wiki/ File:Ann_dependency_graph.png Dependency graphs must also be modularised • molecules • posture, gestures low • beats, phrases, songs number of semantic links • words, sentences between modules • paragraphs, chapters, books, terms, equations • program/diagram/hypertext/database files • audio/image/video files high • nucleotides, genes
  19. 19. Why Do We Need Google Search? The file system abstraction does not scale • In conflict with human cognitive limitations • The folder structure does not allow for multiple view points • The number of semantic dependencies between files really hurts • When it gets complex, humans draw pictures/diagrams, • and tap into the power of collaboration & multi-brainstorming, • and tap into multi-channel/media communication
  20. 20. Software Software is an arbitrary set of language artefacts
  21. 21. Models Class : Mammal dateOfBirth Models are language artefacts that represent Class : Dog Class : Cat isPoliceDog [2] [2] the desired intent [*] [*] associated with a system Dog : Jack Cat : Coco {1/5/03, yes} {4/3/07} in a human-friendly Dog : Susie {1/2/00, no} Cat : Peter {10/9/98} syntax
  22. 22. Software Software increasingly consists of models
  23. 23. Modelling is about Clarity All models are code • a system of symbols used for • identification • classification in the sense of grouping • a system of signals used to send messages • a set of conventions governing behaviour Modelling is meta coding to improve clarity of code
  24. 24. Communication Costs Not all code is a model • a system of signals that includes a translation of messages to deal with someone else’s syntax • a system of symbols used for classification in the sense of obfuscation or encryption http://commons.wikimedia.org/wiki/File:Encryption_-_decryption.svg
  25. 25. Modelling Language Design http://commons.wikimedia.org/wiki/File:Human_Cognition.jpg Modelling language design is a balancing act between simplicity and not compromising the desired intent • Focus is on the view point of human cognitive ability • Modelling languages often make use of multiple syntax elements (visual containers, visual symbols, text, mathematical expressions) • Syntax elements are either borrowed from existing language artefacts, or are designed and incrementally refined in close collaboration with the user community
  26. 26. Evolution Software continuously evolves, whether we like it or not Software shapes us and we attempt to shape software A dynamic system with increasingly fast feedback loops
  27. 27. More Information The Role of Artefacts tiny.cc/artefacts From Muddling to Modelling tiny.cc/muddleToModel Model Oriented Domain Analysis tiny.cc/domainanalysis Multi-Level Modelling tiny.cc/gmodel tiny.cc/sematpos_jbe, Perspective on SEMAT tiny.cc/sematslides_jbe Denotational Semantics tiny.cc/densem Thank you Jorn Bettin jbe @ sofismo.ch Software is Models www.sofismo.ch

×