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.

6d07e6d95a43357254698ce9723350e6?s=128

Vladimir Agafonkin

September 10, 2014
Tweet

Transcript

  1. how simplicity will save GIS Vladimir Agafonkin 10.09.14

  2. Vladimir Agafonkin

  3. how simplicity will save GIS

  4. how simplicity will save GIS

  5. GIS is hard

  6. 6.5 years building map apps

  7. author and maintainer of

  8. by far the most used open source map library

  9. None
  10. still clueless about GIS

  11. None
  12. typical FOSS4G talk

  13. None
  14. None
  15. clueless about GIS exactly the reason why Leaflet succeeded

  16. story recap now with animated GIFs!

  17. April 2008

  18. 22 years old

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

  20. None
  21. maps huh? • image tiles involved • pan and zoom

    with a mouse • maybe put some stuff on top
  22. PFF

  23. Lets build a JS API from scratch!

  24. NO

  25. — don’t reinvent the wheel — there’s a mature established

    open source solution — lets build a wrapper
  26. OpenLayers >100,000 lines of code? hundreds of features? megabytes of

    JavaScript?
  27. None
  28. building an API wrapper

  29. #osmdev: hey guys, what do you think about making a

    simple, lightweight OL alternative?
  30. no way you could do that

  31. wasting time instead of contributing

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

  33. None
  34. oh wait

  35. None
  36. building from scratch; didn’t tell anyone

  37. None
  38. a couple weeks later

  39. Web Maps Lite

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

  43. 3 years later: open source!

  44. now

  45. None
  46. None
  47. None
  48. None
  49. None
  50. None
  51. None
  52. None
  53. None
  54. None
  55. but how?

  56. simplicity

  57. thought process of an aspiring map app creator:

  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)
  59. I want a map right now

  60. None
  61. get the tech out of my way

  62. application development is a creative process

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

    end result
  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.
  65. you must unlearn what you have learned

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

  67. we spend so many years learning things before we get

    the chance to understand how to apply our knowledge
  68. creative learning: create learn

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

    —Albert Einstein
  70. dead simple to get started dead simple to understand dead

    simple to use
  71. don’t force me to think about unimportant things until I’m

    ready to address them convention over configuration:
  72. complexity fills your mind, makes it slow and inert, it

    dumbs you down
  73. None
  74. None
  75. simplicity frees your mind, unleashes your creativity and learning potential

  76. None
  77. None
  78. simplicity enables you to do more with less

  79. decision process of a company that’s looking to add a

    map to their service:
  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…
  81. hey front-end guy! make a map!

  82. None
  83. the most successful tech companies have the tinkerer culture

  84. creative + productive + happy => awesome apps

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

  86. simplicity attracts a vibrant community

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

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

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

  90. None
  91. None
  92. None
  93. feature need complexity simplify

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

    better performance
  95. RBush

  96. simplify.js

  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
  98. simplicity makes people less hesitant to contribute

  99. simplicity makes it easier to concentrate

  100. None
  101. None
  102. simplification is how the technological progress happens

  103. hard problem

  104. manageable problem

  105. simple problem harder problem

  106. None
  107. binary code assembler C scripting languages

  108. jQuery

  109. Ruby on Rails

  110. node.js

  111. “Simplicity is the outcome of technical subtlety. It is the

    goal, not the starting point.” —Maurice Saatchi
  112. “oh but we’re not paid to do simple things!”

  113. None
  114. people who resist progress, unwilling to learn and adapt continuously,

    are in denial and always fail
  115. you don’t think about simplicity when complexity is taken for

    granted
  116. paradox of fitness: you don’t realize the benefits of regular

    exercise until you become more physically fit
  117. simplicity is a muscle, it needs to be exercised consistently

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

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

    stuff!
  121. None
  122. None
  123. thank you