Going Open-Source with Esri

Esri builds tools to make decisions. The ArcGIS platform is the core of this system focused on geospatial data management, conversion, analysis, and visualization. This platform is built to be stable, secure, performant, scale, and provide the general capabilities that our users need to address complex and important issues. There are many components, from Content, through Code, Libraries, and more generally Services.

While we work closely with users to understand their needs, we can’t address every specific feature. Each community of users: government, military, NGO, urban planning, journalism, and so on each have their own methods, requirements, and integration. And in particular users need tools that speak their language and allow them to work in their domain without having to learn potentially complex technical terminology.

Fortunately, code is amazingly flexible. As said best by Fred Brooks in his seminal “The Mythical Man Month“:

The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures…

Anyone who is a software developer, or even has written a small script, has felt the exhilaration of expressing a tedious and complex task where the computer seemed to magically do all the work. In cyberspace anything is possible and we have now have amazing tools to quickly implement and push our applications to millions of users.

Freedom


Many of us grew up playing with and exploring Lego. We probably received some fascinating Pirate Ship, Airplane, or other kit of a well-designed Lego structure. We built it once and admired it but likely we soon took it apart and starting mixing and matching the pieces together. Lego provided us the medium to explore new concepts and quickly try them out. Sometimes I would leave individual creations together for years – pulling them out, admiring and slightly modifying them. They would become components of larger constructions that then were disassembled.

Lego gives us a well engineered, stable, and fun platform that we can freely mix and match. With software we want this same freedom to choose, to innovate, to explore. Websites encouraged and really helped enable this. With a simple right-click of your mouse you can “View Source…” of any website and get insight into how the developer built the site, their code, and the services they use. Through this we learn and are inspired by seeing under the hood. It’s a good argument this is why Javascript is now so popular. Along the path of HTML, DHTML, AJAX, HTML5 as a technical community we’ve been looking at each other’s Lego creations. Seeing how they’re built, inspired to recreate or extend an idea.

History of Open

Open technology and open-source code is not a new idea for Esri. We have a long history of working with and supporting the open-source community and using open technology and data throughout our platform. Back before open-source code was a ‘thing‘ Esri had ArcScript and many other tools that developers could download and share their code.

Esri has always supported our developer community with source samples and detailed SDK documentation for configuring and extending the ArcGIS system. We’ve also been a big supporter of the open-source community, providing code and sponsorships for efforts relevant to the users of our system. Popular tools such as GDAL/OGR, PostgreSQL, Dojo, MongoDB, and others have all been actively supported by Esri.

We are embarking on a new set of initiatives to subtly change from contributing to the various open communities to being more active members of these communities.

Social Coding

This doesn’t work if we’re just publishing. We’ve done Resource centers and code examples. This time it is different. Open collaboration is a different mindset and methodology – and it’s permeating how Esri operates in the public and internally.

Open source is an opportunity to work together. Technology reduces the friction of communication and creation. What we need now is the community to more easily share our ideas.

Eric Raymond’s famous essay “The Cathedral and the Bazaar” posited a new paradigm where the old ways of building things were going away in favor of more ad-hoc, and collaborative, creation. I think it’s a hybrid. The cathedral acts as inspiration, gathering, structure, and sanctity. The bazaar offers unique communication and self-organization.

Open-source code has a history of small, individual initiatives creating new software that slowly, but effectively grows a community that consists of individuals, organizations, and companies all supporting the common code.

Recently this has popularly being referred to as “Social Coding”. But don’t be fooled that this is like “social networks” where people only share pictures of their kids and cats. It means emergent collaboration within and across groups and communities. The ability to discover, follow, and converse with the people that write code brings a humanity and comraderie to what has often been considered purely technical.

Esri Community

There are many amazing engineers that work at Esri but too often the community doesn’t have any opportunity to interact or work with them. As part of this initiative they will be working more directly in the open, contributing to these Github projects – as well as many of their own repositories that they already work on. We hope that you will get a chance to see and work with this great team to build new awesome software.

The software that we are publishing as open-source cuts across many domains – not just the web. There are mobile phone libraries and applications, desktop extensions, big data analytis tools, and of course many web application templates in ActionScript, Java and JavaScript.

Right now there are nearly 50 repositories at esri.github.com, and we have many more that we are getting ready to release. As we get close to and at the Esri International Developer Summit you will likely be suprised by some of the tools we will be releasing.

We are excited to be embarking on this together. In particular discovering areas where you can really innovate and create new ideas and solutions that we didn’t think of. I recently presented at our Washington DC Meetup and you can see my slides on Github.

This entry was posted in Developer and tagged , , , . Bookmark the permalink.

Leave a Reply

7 Comments

  1. u0281276 says:

    When is ESRI going to open source their JavaScript API for ArcGIS Server?

  2. matt wilkie says:

    @u0281276, do you mean something other than https://github.com/Esri/quickstart-map-js? If so please expand and explain.
    —–
    It is very encouraging to see Esri going in this direction, of looking to do something beyond simply “throwing code over the wall” and/or “make it open so users do the scut work themselves”, to name two prominent themes we’ve seen recur with other proprietary-opensource hybrids.

    Being a twenty year Esri user I’m somewhat jaded as to how deep this current runs, but as any kid who’s played in the mud and gravel during spring run-off knows, sometimes all it takes is a trickle to carve a new channel and transform the landscape.

    So go on, prove my prejudice wrong, I dare you!
    :)

  3. AndyBMapMan says:

    Let the shapefile come out with its hands up and we’ll let the personal geodatabase go free.

  4. jasontroebuck says:

    The ArcGIS for Flex Viewer has been open-sourced. Any such plans for the Silverlight Viewer?

  5. rexhansen says:

    There are no current plans to open source the Silverlight Viewer. It may be considered in the future though.