GIS: From ActiveX and ColdFusion to Node.js

When ArcIMS 3.0 arrived, it was literally the best day of my life (well from a GIS programming perspective). After hacking ArcView IMS 1.0 and then some crazy VB5/VB6 stuff with MapObjects IMS 2.0 (esrimap.dll is the work of the devil) there was finally something that was able to be truly a web server GIS development environment. With excitement I pulled myself into the Esri UC session for ArcIMS 3.0 and then sat down with pen and paper (this was before WiFi). I looked around and noticed that there was not many people in the room for the ActiveX session. But across the hall the ColdFusion session was packed and out the door). Now the less said about ArcIMS 3.0 the better but it was the start of real programming on Esri Server products.

ColdFusion hung around for a while but the ActiveX stuff was quickly replaced with the WebADF. Now there is much on this blog about the WebADF and I don’t think I need to go back over it but while it was a complete mess, it did allow us to develop with .NET and actually create some amazing applications. Eventually the REST API replaced much of what we were doing with the WebADF Framework and we were free from all the limitations of that AJAX madness. I think the key with Esri Server development is the REST API. This is what freed us from siloed frameworks and allowed us to move into other languages such as Ruby/Rails.

Now during the Ruby/Rails period, I was working for WeoGeo so my focus was on that stack, not the Esri one. I do recall Dave Bouwman showing Ruby/Rails stuff at the DevSummit but it never took off as an Esri development language. There isn’t anything inherently wrong with it, it just was never supported as well on Windows as other options so by the time Windows support was good enough to be used, we all moved on to Node.js.

Now Node.js is probably the biggest impact on what we do with Esri Server since .NET. The best part though is development is basically cross platform so I can be on my MacBook Pro and my other Devs can roll on Ubuntu or Windows. Again, because of the REST API. If you go to the Esri Github repository or look on npm you’ll see lots of JavaScript and Node.js projects just ready for the taking.  It’s a far cry from the days of trying to register some stupid ActiveX control in VisualStudio (heck I still have nightmares about Visual InterDev).  Now I won’t sugarcoat npm because when it works it’s great, when it doesn’t it sucks.  But generally I can typed a couple words and have a new Node.js application installed in my project.

As I’m getting back into ArcGIS for Server 10.3 and ArcGIS Online I’ve come to reflect on the crazy path we’ve taken from Avenue -> VB5 -> ActiveX -> .NET -> Ruby/Rails -> Node.js and on to whatever is next.  Not only that, during this whole time there were those Java guys (it was like 3-5 of them) in the corner trying to just get ArcGIS for Server Java installed.  But hey, they got free copies of MapObjects Java Edition.