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.

JS Fest 2018. Douglas Crockford. The Power of the Paradigm

202 views

Published on

Progress in our profession happens slowly as we clumsily shift from one paradigm to another. This talk looks at the next important advance in programming, and why we are trying to prevent its adoption.

Published in: Education
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi there! Essay Help For Students | Discount 10% for your first order! - Check our website! https://vk.cc/80SakO
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

JS Fest 2018. Douglas Crockford. The Power of the Paradigm

  1. 1. Power of the Paradig
  2. 2. Quotations from smarter people.
  3. 3. Even when the experts all agree, they may well be mistaken. Bertrand Russell
  4. 4. Paradigm A model of thought
  5. 5. Paradigm Con rmation Bias
  6. 6. In science it often happens that scientists say You know that’s a really good argument; my position is mistaken, and then they would actually change their minds and you never hear that old view from them again. They really do it. It doesn’t happen as often as it should, because scientists are human and change is sometimes painful. But it happens every day. I cannot recall the last time something like that happened in politics or religion. Carl Sagan
  7. 7. In science it often happens that scientists say You know that’s a really good argument; my position is mistaken, and then they would actually change their minds and you never hear that old view from them again. They really do it. It doesn’t happen as often as it should, because scientists are human and change is sometimes painful. But it happens every day. I cannot recall the last time something like that happened in politics or religion. Carl Sagan
  8. 8. Change is sometimes painful •Confusion •Fear •Embarrassment •Loss •Fight or flight
  9. 9. Faced with the choice between changing one’s mind and proving that there is no need to do so, almost everyone gets busy on the proof. John Kenneth Galbraith
  10. 10. Paradigms in Programming • Stored program concept • Subroutines • Structured programming • Methods • Higher order functions • Pure functions
  11. 11. The problem with purity: The universe is not pure.
  12. 12. A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die, and a new generation grows up that is familiar with it. Max Planck
  13. 13. Science advances one funeral at a time. Max Planck
  14. 14. Progress waits not on discovery, but on consensus.
  15. 15. Paradigm Confusion • Shoot the messenger. • I do not understand how x can be true. • Violent disagreement with irrelevant details. • Intensify imperfection. • Distortion. • Partial adoption. • Obsess about performance.
  16. 16. More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason —including blind stupidity. William A. Wulf
  17. 17. The new shiny object is part of the old paradigm.
  18. 18. It is difficult to distinguish a new paradigm from a really bad idea.
  19. 19. • The Old Paradigm • Sequential Programming • The Next Paradigm • Asynchronous Message Passing
  20. 20. • The Old Paradigm • Sequential Programming • The Next Paradigm • Asynchronous Message Passing
  21. 21. • The Old Paradigm • Sequential Programming • The Next Paradigm • Asynchronous Message Passing
  22. 22. Asynchronous Message Passing • Sending a message to another process or system. • The sender does not wait for a response. The sender is free to do more work, including sending more messages. • Every receiver has a queue, or mailbox, that holds incoming messages. • Messages will be handled one by one. • Shared nothing.
  23. 23. Actors 1973
  24. 24. postMessage
  25. 25. NodeJS
  26. 26. Clinging to the Old Paradigm •RPC, HTTP, SOAP, REST •Sync functions •Generators •Promises •async await
  27. 27. A single mechanism provides Concurrency Communication Security
  28. 28. The Seif Project Rhymes with “safe”
  29. 29. Seif: A secure, efficient, asynchronous JSON & blob messaging system
  30. 30. Seif does not require DNS HTTP Certificates Passwords
  31. 31. Seif provides a module adding cryptographic services to Node JS •ECC 521 •AES 256 •SHA3-256 •Random generation and entropy harvesting
  32. 32. Zooko’s Triangle Human Meaningful Securely Unique Decentralized
  33. 33. ECC521 public keys as unique identifiers
  34. 34. Seif Protocol Secure JSON Over TCP Efficient sessions
  35. 35. Symmetric S(plaintext) => ciphertext S(ciphertext) => plaintext Asymmetric P(plaintext) => ciphertext R(ciphertext) => plaintext
  36. 36. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA )}
  37. 37. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA )}
  38. 38. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)}
  39. 39. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)}
  40. 40. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)}
  41. 41. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)} ← H({PA (S)})
  42. 42. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)} ← H({PA(S)})
  43. 43. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)} ← H({PA(S)})
  44. 44. Seif Message Send • Normal send • Automatic persistent retry • Status send • For telemetry and gaming • Messages may be discarded
  45. 45. seif: publickey @ ipaddress / referral
  46. 46. Difficulty of software security •Does what it should •Doesn’t do what it shouldn’t •No software is initially secure •Only a minimal approach can produce software that is eventually secure
  47. 47. There is nothing new here.
  48. 48. The goal of the Seif Project is to provide safe and effective relationship management on the web.
  49. 49. Still to do • Port the Seif Protocol to other platforms, including • Java • Unix • IOS • Windows • Development of frameworks that use Seif. • Browser support.
  50. 50. The Seif Project http://www.seif.place/
  51. 51. • The Next Paradigm • Asynchronous Message Passing
  52. 52. It ought to be remembered that there is nothing more difficult to take in hand, more perilous to conduct, or more uncertain in its success, than to take the lead in the introduction of a new order of things. Because the innovator has for enemies all those who have done well under the old conditions, and lukewarm defenders in those who may do well under the new. This coolness arises partly from fear of the opponents, who have the laws on their side, and partly from the incredulity of men, who do not readily believe in new things until they have had a long experience of them. Niccolò Machiavelli

×