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

How Simplicity Will Save GIS

How Simplicity Will Save GIS

It’s 2014 — we have consumer robots and electric cars, private spacecraft, planet colonization projects, and the Higgs Boson is confirmed, but GIS software is still a mess. You might be able to make sense of it all if you’re a GIS specialist with an academic background, but other creative individuals — designers, developers, tinkerers of all kinds, each with a vision and desire to create meaningful and beautiful maps and visualizations — are constantly losing battles against bloat, clutter, and complexity.

How do we reverse this GIS entropy? What does it take to turn complex technology into something that anyone can use and contribute to? An attempt to answer by the creator of Leaflet, a simple JS library that changed the world of online maps forever.

Vladimir Agafonkin

September 10, 2014
Tweet

More Decks by Vladimir Agafonkin

Other Decks in Technology

Transcript

  1. how simplicity
    will save GIS
    Vladimir Agafonkin
    10.09.14

    View Slide

  2. Vladimir Agafonkin

    View Slide

  3. how simplicity
    will save GIS

    View Slide

  4. how simplicity
    will save GIS

    View Slide

  5. GIS is hard

    View Slide

  6. 6.5 years building
    map apps

    View Slide

  7. author and
    maintainer of

    View Slide

  8. by far the most used
    open source map library

    View Slide

  9. View Slide

  10. still clueless
    about GIS

    View Slide

  11. View Slide

  12. typical FOSS4G talk

    View Slide

  13. View Slide

  14. View Slide

  15. clueless about GIS
    exactly the reason why
    Leaflet succeeded

    View Slide

  16. story recap
    now with animated GIFs!

    View Slide

  17. April 2008

    View Slide

  18. 22 years
    old

    View Slide

  19. so I’m doing maps now,
    how hard could this be?

    View Slide

  20. View Slide

  21. maps huh?
    • image tiles involved
    • pan and zoom with a mouse
    • maybe put some stuff on top

    View Slide

  22. PFF

    View Slide

  23. Lets build a JS API
    from scratch!

    View Slide

  24. NO

    View Slide

  25. — don’t reinvent the wheel
    — there’s a mature established
    open source solution
    — lets build a wrapper

    View Slide

  26. OpenLayers
    >100,000 lines of code?
    hundreds of features?
    megabytes of JavaScript?

    View Slide

  27. View Slide

  28. building an API wrapper

    View Slide

  29. #osmdev: hey guys, what
    do you think about making
    a simple, lightweight OL
    alternative?

    View Slide

  30. no way you could do that

    View Slide

  31. wasting time instead of contributing

    View Slide

  32. community:
    worthless idea
    !
    boss:
    don’t reinvent the wheel

    View Slide

  33. View Slide

  34. oh wait

    View Slide

  35. View Slide

  36. building from scratch;
    didn’t tell anyone

    View Slide

  37. View Slide

  38. a couple
    weeks later

    View Slide

  39. Web Maps Lite

    View Slide

  40. View Slide

  41. View Slide

  42. born as a protest
    against bloat, clutter
    and complexity

    View Slide

  43. 3 years later:
    open source!

    View Slide

  44. now

    View Slide

  45. View Slide

  46. View Slide

  47. View Slide

  48. View Slide

  49. View Slide

  50. View Slide

  51. View Slide

  52. View Slide

  53. View Slide

  54. View Slide

  55. but how?

    View Slide

  56. simplicity

    View Slide

  57. thought process of an
    aspiring map app creator:

    View Slide

  58. I want to learn GIS, reading books and
    academic papers and articles about
    geospatial data, map projections, server-side
    technologies, databases, different geospatial
    standards and protocols and their
    implementations in available range of server
    and client software, perform analysis of my
    data and use cases, preferably involving other
    GIS specialists and do a lot of other research
    so that I can make sensible decisions about
    the required technology stack, adjust it to the
    needs of my application and finally make а
    f**king map (maybe in a couple years)

    View Slide

  59. I want a map
    right now

    View Slide

  60. View Slide

  61. get the tech
    out of my way

    View Slide

  62. application
    development is a
    creative process

    View Slide

  63. technology should bridge
    the gap between creative
    thinking and the end result

    View Slide

  64. dr ken robinson
    I believe this passionately:
    that we don’t grow into
    creativity, we grow out of it.
    Or rather, we get educated
    out if it.

    View Slide

  65. you must
    unlearn what
    you have
    learned

    View Slide

  66. let me create,
    explore,
    experiment,
    and learn along the way

    View Slide

  67. we spend so many years
    learning things before we get
    the chance to understand
    how to apply our knowledge

    View Slide

  68. creative learning:
    create
    learn

    View Slide

  69. “The true sign of intelligence is
    not knowledge but imagination.”
    —Albert Einstein

    View Slide

  70. dead simple to get started
    dead simple to understand
    dead simple to use

    View Slide

  71. don’t force me to think about
    unimportant things until I’m
    ready to address them
    convention over
    configuration:

    View Slide

  72. complexity fills your mind,
    makes it slow and inert,
    it dumbs you down

    View Slide

  73. View Slide

  74. View Slide

  75. simplicity frees your mind,
    unleashes your creativity
    and learning potential

    View Slide

  76. View Slide

  77. View Slide

  78. simplicity enables you to do
    more with less

    View Slide

  79. decision process of a
    company that’s looking to
    add a map to their service:

    View Slide

  80. so lets hire a GIS consulting firm to do
    some research for us and choose the
    right technology stack and then help
    us set it up and consult our developers
    so that they could get more familiar
    with it and maybe also buy some
    enterprise support plan and…

    View Slide

  81. hey front-end guy!
    make a map!

    View Slide

  82. View Slide

  83. the most successful
    tech companies have
    the tinkerer culture

    View Slide

  84. creative +
    productive + happy
    => awesome apps

    View Slide

  85. lots of awesome apps
    => community growth
    & tech exposure

    View Slide

  86. simplicity attracts a
    vibrant community

    View Slide

  87. simplicity means focus
    on the essentials, which
    leads to higher quality

    View Slide

  88. “Simplicity is prerequisite
    for reliability.”
    —Edsger Dijkstra

    View Slide

  89. thou shalt not try
    to cover all the
    use cases

    View Slide

  90. View Slide

  91. View Slide

  92. View Slide

  93. feature need
    complexity
    simplify

    View Slide

  94. simplicity means easier
    profiling and less
    bottlenecks, which leads
    to better performance

    View Slide

  95. RBush

    View Slide

  96. simplify.js

    View Slide

  97. seidel + earcut
    OSM building (15 vertices)
    earcut x 707,439 ops/sec
    pnltri x 227,890
    seidel x 77,236
    poly2tri x 29,354
    libtess x 21,875
    !
    monkey (1204 vertices):
    seidel x 608
    libtess x 342
    poly2tri x 239
    earcut x 219
    pnltri x 112
    dude shape (94 vertices):
    earcut x 33,620
    pnltri x 13,626
    seidel x 10,037
    libtess x 4,362
    poly2tri x 3,773

    View Slide

  98. simplicity makes
    people less hesitant
    to contribute

    View Slide

  99. simplicity makes it
    easier to concentrate

    View Slide

  100. View Slide

  101. View Slide

  102. simplification is how
    the technological
    progress happens

    View Slide

  103. hard problem

    View Slide

  104. manageable
    problem

    View Slide

  105. simple problem
    harder problem

    View Slide

  106. View Slide

  107. binary code
    assembler
    C
    scripting languages

    View Slide

  108. jQuery

    View Slide

  109. Ruby on
    Rails

    View Slide

  110. node.js

    View Slide

  111. “Simplicity is the outcome of
    technical subtlety. It is the goal,
    not the starting point.”
    —Maurice Saatchi

    View Slide

  112. “oh but we’re not paid
    to do simple things!”

    View Slide

  113. View Slide

  114. people who resist progress,
    unwilling to learn and adapt
    continuously, are in denial
    and always fail

    View Slide

  115. you don’t think about
    simplicity when complexity
    is taken for granted

    View Slide

  116. paradox of fitness:
    you don’t realize the benefits
    of regular exercise until you
    become more physically fit

    View Slide

  117. simplicity is a muscle,
    it needs to be
    exercised consistently

    View Slide

  118. View Slide

  119. lets make a collective
    conscious effort to
    simplify GIS technology

    View Slide

  120. so that we can be
    happy and build
    more awesome stuff!

    View Slide

  121. View Slide

  122. View Slide

  123. thank you

    View Slide