Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Postmodern Programmer

The Postmodern Programmer

Slides from Keynote delivered at PyCon India 2016.
Video: https://www.youtube.com/watch?v=h03mHfS7UI0

Baishampayan Ghose

September 24, 2016
Tweet

More Decks by Baishampayan Ghose

Other Decks in Programming

Transcript

  1. post.mo.dern n. beyond modern. This talk is about transcending our

    mindset, about developing a better understanding of the world we are trying to model. # PyCon India 2016, New Delhi 2
  2. About me Software Artisan Python ca. 2001-02 Been through a

    lot since then Here to share some life lessons # PyCon India 2016, New Delhi 3
  3. Let's start with a fable Or, an autobiographical analogy This

    is a work of fiction. Names, characters, places and incidents either are products of the author's imagination or are used fictitiously. Any resemblance to actual events or locales or persons, living or dead, is entirely coincidental. # PyCon India 2016, New Delhi 4
  4. As a child, I wanted to be a builder -

    Bridges - Houses - Factories - Ports # PyCon India 2016, New Delhi 5
  5. Upon closer inspection I saw bricks and mortar That seemed

    to be it! # PyCon India 2016, New Delhi 6
  6. Learning to lay bricks I became a brick layer Concrete,

    bricks and some plaster # PyCon India 2016, New Delhi 7
  7. I was a practitioner Concrete mixing champ Fancy brick designer

    Wall erector of the year Small housing pro I was having fun # PyCon India 2016, New Delhi 8
  8. I spent a long time doing this... but never got

    to build a bridge # PyCon India 2016, New Delhi 9
  9. Years later, epiphany struck me I could see the big

    picture A bridge is ultimately a load- bearing structure It's about Physics! # PyCon India 2016, New Delhi 10
  10. Onwards, ahoy! I went on to study Civil Engineering, Architecture,

    Mechanics I finally did what I had wanted to do I built bridges # PyCon India 2016, New Delhi 11
  11. As programmers, we are like that brick layer Wanting to

    build the large Yet stuck in the small # PyCon India 2016, New Delhi 12
  12. Programming languages distort reality It shows us an idealized view

    of the world There is only 1 thread There is only 1 computer Computers never fail Lightening strikes don't happen # PyCon India 2016, New Delhi 13
  13. The world is not a program, it's a system... and

    it's distributed # PyCon India 2016, New Delhi 14
  14. A distributed system is one in which the failure of

    a computer you didn't even know existed can render your own computer unusable. — Leslie Lamport # PyCon India 2016, New Delhi 15
  15. What is a (distributed) system? A group of services that

    work together Distributed, with no global supervisors Connected, somehow # PyCon India 2016, New Delhi 16
  16. Santa Claus is not real The network is not reliable

    CAP Theorem Coordination Problems Clocks and Time Byzantine Generals # PyCon India 2016, New Delhi 17
  17. Building systems, some lessons (contd.) Divide and conquer Avoid coordination

    Embrace immutability Backpressure Backup! # PyCon India 2016, New Delhi 19
  18. Programming languages are like bricks Tackle problem at a micro

    level Unaware of higher level concerns # PyCon India 2016, New Delhi 20
  19. But we need better bricks too! We could do with

    much better building blocks Key ideas, like the arch can be game-changers # PyCon India 2016, New Delhi 21
  20. Towards better bricks Immutable data-structures Functional Programming Specifications, Formal Proofs

    Generative Testing Better state management Better concurrency # PyCon India 2016, New Delhi 22
  21. We are an empowered bunch We know how to build!

    We need to get out of our comfort zones We need to build better systems We need to shift our perspective # PyCon India 2016, New Delhi 23