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.
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. 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. Change is sometimes painful
•Confusion
•Fear
•Embarrassment
•Loss
•Fight or flight
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. Paradigms in Programming
• Stored program concept
• Subroutines
• Structured programming
• Methods
• Higher order functions
• Pure functions
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
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. 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
18. It is difficult to distinguish a new
paradigm from a really bad idea.
19.
20. • The Old Paradigm •
Sequential Programming
• The Next Paradigm •
Asynchronous Message Passing
21. • The Old Paradigm •
Sequential Programming
• The Next Paradigm •
Asynchronous Message Passing
22. • The Old Paradigm •
Sequential Programming
• The Next Paradigm •
Asynchronous Message Passing
23. 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.
47. 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
49. The goal of the Seif Project is to
provide safe and effective relationship
management on the web.
50. Still to do
• Port the Seif Protocol to other platforms,
including
• Java
• Unix
• IOS
• Windows
• Development of frameworks that use Seif.
• Browser support.
52. • The Next Paradigm •
Asynchronous Message Passing
53. 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
Notas del editor
Intended to be a document delivery system. It performs poorly as an application delivery system.
Intended to be a document delivery system. It performs poorly as an application delivery system.
Intended to be a document delivery system. It performs poorly as an application delivery system.
Intended to be a document delivery system. It performs poorly as an application delivery system.
Intended to be a document delivery system. It performs poorly as an application delivery system.
Intended to be a document delivery system. It performs poorly as an application delivery system.
In a naming system, you can get at most 2 of these attributes. The Web chose Human Meaningful. I am going with the other two because security demands it.
You prove your identity by decrypting messages with your private key. No passwords.
URLs will be extremely ugly. In base 32 encoding, public key is 105 characters long. URLs can be delivered in email, in web pages, as QR codes.
There is a risk in making security claims about new software because new software is never secure. The goal of the Seif Project is to produce programs that will eventually become secure. This is in contrast to things like SLL: It has been 20 years and we are still finding significant weaknesses in it.
There is no new science here. Seif is a minimal utilization of research and design patterns that have been around for several decades.
Integration should be easy: give us a rectangle of pixels, UI events, and an interactive JSON communication channel. We’ll do the rest.