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

LEARNING ELIXIR AS AN IOS ENGINEER

Eeb061c8b2816b771920da1b3e7904a3?s=47 Swift India
November 16, 2019

LEARNING ELIXIR AS AN IOS ENGINEER

Eeb061c8b2816b771920da1b3e7904a3?s=128

Swift India

November 16, 2019
Tweet

Transcript

  1. LEARNING ELIXIR AS AN IOS ENGINEER

  2. FOREWORD

  3. None
  4. None
  5. > Preferring polling over socket connections in a realtime app

    setting (chat, food delivery, ride sharing etc)
  6. > Preferring polling over socket connections in a realtime app

    setting (chat, food delivery, ride sharing etc)
  7. > Preferring polling over socket connections in a realtime app

    setting (chat, food delivery, ride sharing etc) > Pagination mechanisms based on page # in a mobile app
  8. > Preferring polling over socket connections in a realtime app

    setting (chat, food delivery, ride sharing etc) > Pagination mechanisms based on page # in a mobile app
  9. > Preferring polling over socket connections in a realtime app

    setting (chat, food delivery, ride sharing etc) > Pagination mechanisms based on page # in a mobile app > Dealing with the intricacies of Apple’s own server side APIs.
  10. > Preferring polling over socket connections in a realtime app

    setting (chat, food delivery, ride sharing etc) > Pagination mechanisms based on page # in a mobile app > Dealing with the intricacies of Apple’s own server side APIs.
  11. > Preferring polling over socket connections in a realtime app

    setting (chat, food delivery, ride sharing etc) > Pagination mechanisms based on page # in a mobile app > Dealing with the intricacies of Apple’s own server side APIs. > Other weird technical decisions.
  12. > What makes a second language so hard? > The

    genesis of this choice > Why didn’t I go with Server Side Swift, which should’ve been a better fit? > What makes Elixir so good? > A brief history of the language > What parts of elixir really confounded me as someone coming from Swift
  13. None
  14. > Features in Elixir I absolutely would love if they

    came to Swift.
  15. > Features in Elixir I absolutely would love if they

    came to Swift.
  16. > Features in Elixir I absolutely would love if they

    came to Swift. > We’ll look at some really cool features in the Elixir ecosystem that make it really unique
  17. > Features in Elixir I absolutely would love if they

    came to Swift. > We’ll look at some really cool features in the Elixir ecosystem that make it really unique
  18. > Features in Elixir I absolutely would love if they

    came to Swift. > We’ll look at some really cool features in the Elixir ecosystem that make it really unique > Suggested QA - what is it like learning a second language?
  19. > Features in Elixir I absolutely would love if they

    came to Swift. > We’ll look at some really cool features in the Elixir ecosystem that make it really unique > Suggested QA - what is it like learning a second language? > What’s a good way to deep dive into a new technology as a junior developer
  20. > Features in Elixir I absolutely would love if they

    came to Swift. > We’ll look at some really cool features in the Elixir ecosystem that make it really unique > Suggested QA - what is it like learning a second language? > What’s a good way to deep dive into a new technology as a junior developer > career prospects etc
  21. WHAT MAKES A SECOND LANGUAGE SO HARD? > One of

    the most challenging but rewarding things you can do as a developer > Idioms & Syntax - How do we do things? > Tooling > New ways of thinking
  22. THE GENESIS OF THIS CHOICE:

  23. NEW AND SHINY

  24. None
  25. MULTI CORE

  26. THE BEAM VIRTUAL MACHINE IS ROCK SOLID AND HAS POWERED

    CELLULAR NETWORKS FOR YEARS
  27. THE EARLY ADOPTER STORIES ARE RIDICULOUSLY POSITIVE

  28. THE TOOLING

  29. WHY DIDN’T I GO WITH SERVER SIDE SWIFT, WHICH SHOULD’VE

    BEEN A BETTER FIT?
  30. None
  31. > Tooling

  32. > Tooling

  33. > Tooling > Foundation is still immature

  34. > Companies using server side swift in production are doing

    it sparingly
  35. > Still very immature

  36. > Companies that use it are never heard from again

  37. WHAT MAKES ELIXIR SO GOOD? > Functional > Concurrent >

    Pragmatic
  38. STRUCTS > Elixir Structs are a lot like Swift structs,

    except no methods allowed - pure functions only!!! > They're pure data - interesting emergent properties! > Want to update a property? It's as easy as updating a dictionary(because they're dictionaries underneath!)
  39. None
  40. NO DISTINCTION BETWEEN REMOTE AND LOCAL DATA > Distributed first

    - things like ETS can run on other computers or the same computer and your code won't know the difference. Erlang did docker-compose before it was cool > Same for structs, data, processes - makes it easy to horizontally scale your system
  41. > Also works for tooling! iex, observer all run as

    natively locally and remotely! > (Remember our little video?)
  42. SIMPLE THINGS ARE SIMPLE

  43. SIMPLE THINGS ARE SIMPLE > Service calls out to x

    APIs, collects responses and does something with them?
  44. ASYNC-AWAIT

  45. WHY WAIT ?

  46. THE ELIXIR VERSION

  47. STUFF IN ELIXIR I FOUND CONFUSING > Recursively descending a

    list! [head | tail] = list
  48. None
  49. FEATURES IN ELIXIR I'D REALLY LOVE IF THEY CAME TO

    SWIFT
  50. DOCTESTS

  51. None
  52. PIPE OPERATOR!

  53. COOL DEMOS > Remote debugging > Observer

  54. CONCLUSION > Dynamic Typing/Languages aren't bad/inferior. > Learning a new

    language is often rewarding.