Tuesday, August 02, 2011

What do SOAP, Flex and GWT have in common?

I suppose that you can find many things if you think about it for a while. However, today I am focused on what I think it is their main problem: they all try to attract developers by, supposedly, making their lives easier, but in the end they just manage to have developers without control of their developments, and this is bad for their users.

SOAP, and its related standards, seem to be more focused on making it easier for a developer to deploy a web service without knowing details of how this web service works, than in helping developers to create well-designed distributed applications. And then it comes REST, and JSON, and SOAP becomes a zombie.

Flex intends to provide developers with a more controlled environment than the web browsers, better development tools and documentation to develop web clients and, of course, lots of GUI bells and whistles; however, they do so by providing yet another virtual machine, never designed to be virtual machine in the first place, with another set of headaches (versions, bugs in different platforms, performance and security issues...). And then it comes Apple, and decides that Flash is not for their products, because Apple, with their many defects, is always thinking in their users' experience. And Flex developers are doomed because it seems that even Adobe has accepted that HTML 5 is the way to go, and should start learning another platform ASAP, if they ask me.

And then is GWT and the supposedly good idea to take a Java developer and allow her to develop web applications in Java by hiding the browser and the JavaScript behind Java objects. And this works, as good as it can work something that is so complex: the browser is a different world, and JavaScript is more flexible than Java, not the other way round. The result: a bunch of Java developers who still need to learn JavaScript, and to learn about the browser as a platform, if they want to create web applications that look and behave as web applications without the constraints imposed by GWT.

Users come first. If something is hard for developers and good for users, then that is the way to go. If something is easy for developers at the expense of the users that is a FAIL (sometimes this is not easy to foresee, other times it is). If something is easy for developers and good for the users, then that is an EPIC WIN (not many of these I am afraid). It seems to me that there are not many shortcuts in software development.