Esri currently offers 3 different web API's that can be freely downloaded.
Are they all equal?
If not, what are the relative strengths/weaknesses of each of these API's?
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It only takes a minute to sign up.
Sign up to join this communityEsri currently offers 3 different web API's that can be freely downloaded.
Are they all equal?
If not, what are the relative strengths/weaknesses of each of these API's?
From a totally abstract management perspective, the three APIs are equal. They represent code that runs in a web browser, the purpose of which is to display map data to a user over the internet. You can create a successful, meaningful mapping application with any of the APIs.
Furthermore, the impact of each strength/weakness (difference) in each API will vary depending on the audience. Programmers will be keenly interested in language features or drawbacks, your network folks will want to know bandwidth requirements and server prerequisites, the GIS folks will be deeply concerned that the displayed map is truly rendered, and your end users could care less about all of that and just want to do whatever it is they started doing.
So here are some key items about the three APIs:
Cross-domain resource handling: Silverlight and Flex can use a "cross domain policy" file that exists on the TARGET server. So, third party map publishers may grant you access to them. With the Javascript API, cross-domain requests are usually handled by implementing a "proxy page" using a server-side language of your choice (PHP, JSP, ASP, etc). This "soft requirement" isn't a huge problem for most servers, but does add another layer of complexity. Note that there's nothing stopping you from using the same proxy page with the plugin APIs, should your desired resource NOT expose the necessary cross-domain files.
Graphics: Silverlight and Flex both allow you to easily paint arbitrary pixels on the user interface. Javascript also allows this, but you can quickly overload the browser's capacity without some careful code and preparation. Similarly, operating directly with binary formats or network traffic can only be done in Javascript with the help of web services.
Developer Environment: I am biased here. Silverlight is my favorite for developing. the Visual Studio environment is mature, fast, and has a top-notch debugger. Javascript comes in second place; the tools available now are better than ever and always improving, but we can never seem to escape the curse of "ye must test on all supported browsers, then fix those weird things that happen". The Flex environment seems antiquated and bloated, and basically hinders development.
Silverlight/WPF Cons
Silverlight/WPF Pros
I guess all these answers are good but a bit out dated. Flex and Silverlight were surely very popular compared to Javascript and some might argue that building Application using these APIs was really easy, but the BIGGEST DEFICIT that Flex and Silverlight have is that they are PLUGINS. And that is the cause for their annihilation.
With the onset of HTML5 and Javascript being the integral portion of Web App development, the Future is Javascript API. With Adobe abandoning Flash and Silverlight 5 being the last update by Microsoft, Flex and Silverlight are now redundant technologies.
So if you are starting Web GIS Application development using the ESRI APIs, start learning Javascript API as that is the only future in the near Future.
The Silverlight and Flex API's are by far the most popular ArcGIS API's and have the advantage of being browser plug-in's which provide a much richer and consistent user experience which is often quite important with GIS web apps. Silverlight is a probably the best choice if you favor .NET development and Flex would be best for developers that prefer the Adobe environment. Flex also has the advantage of wider adoption as a browser plug-in than Silverlight.
The Javascript API has the advantage of more cross-platform reach since the browser plugin's are not needed so it can be used in iOS devices like the iPhone and iPad. The downside is you can often see differences in how the apps behave in the various browsers such as IE, Chrome, Firebox, Safari, etc.
As far as their features they really are very similar which is what esri has always tried to do with these and seems committed to continue to keep strong feature parity between them moving forward. So I think it really comes down to Flex's and Silverlight's strength as rich clients and Javascripts cross-platform reach.
There is an ArcGIS Viewer for Flex.
There is an ArcGIS Viewer for Silverlight.
But there is currently no Esri-supported ArcGIS Viewer for Javascript, nor is there one planned.
See related question.
"Viewer" is a term Esri uses for web apps that allow a user to create mapping web apps without writing any code. Typically these created web mapping apps will be viewers, but with the appropriate add-ins (or widgets) it is possible to create viewers with editing capabilities.
None of them support open standards so you suffer from vendor lock in and the risk of losing your investment if ESRI decides that 3 is 1 or 2 too many.