The big thing missing is all the dijits, or the built in user controls that come with the 3.x API. This is a mixed blessing. The dijits used in the 3.x version made operations like editing, measuring, and printing easy. However, they relied heavily on Dojo UI components, which rely heavily on other Dojo UI components and CSS styling. They made your life easier IF you were willing to play by their rules.
From what I saw at the ESRI Developer Summit, the 4.0 API focused around giving you the code-behind access to the operations typically handled by the dijits, and let you develop your own user controls. If you are in a development shop that uses Angular, you can use Angular without worrying if it plays nice with Dojo Dijits. If you work with React, you can create React components that work with the API. You’re responsible for your user interface, and to me, that’s a good thing.
Which side will you choose?
ESRI provides a solid roadmap to help you choose whether you should migrate to 4.x now, or stay with the 3.x line. They tell you what features are available now, what features will be available down the road, and what features they probably don’t want to support any longer. They plan a few more updates on the 3.x API, and will continue to support it for a couple years.
ESRI supplies a simple decision tree to help you decide which API line you will support. I would like to expand on that a bit.
- If you need to use 3D maps, go with the 4.x API
- If you are dependent on existing dijits in your applications, stay with the 3.x API
- If you require features only found in the 3.x API, and don’t want to rebuild them for the 4.x API stay with the 3.x API
- If you still need to support IE8… God have mercy on you (and stick with the older 3.x API).
- If you’re willing to get your hands dirty creating UI components in your web mapping applications, go for the 4.x API
May the force be with you.