Silverlight Killing the Market for Flash Developers
So we hear this all the time don't we. Well, since GWT allows Java developers to create AJAX, we don't need our front-end people anymore, or since JFaces / SWT allows Java developers to create AJAX front ends. We don't need our front end developers anymore since Visual Studio allows our back-end developers to create AJAX applications with AJAX.net or whatever. Every time I hear this, I would hope that software architects at these companies cringe.
On Silverlight, an article on an article on CNET highlighted companies thinking on this topic.
“Online banking application developer Intelligent Environments, for instance, said Silverlight is appealing because the company's staff of C# programmers will be able to write Web applications with a compelling user interface. Until now, it had hired Flash developers as contractors, said Mike Warriner, chief technology officer of Intelligent Environments.”
There are two fundamental problems with this line of thinking. The first is that the MVC pattern indicates that there should be good separation of logic tiers. It also then makes sense that the work in any application should be divided up among developers who have core competencies in those areas. The second is that traditionally creating compelling UIs has been something that requires a slightly different skillset than traditional software engineering.
Let's look at the first. The MVC pattern, which some thing should be MCV, or VCM depending on your point of view, allows applications to be built in tiers with the model representing the data, the controller the interface, and the view the display. If you mix business logic in this tier you will get spaghetti, if you mix the view in your controller, you will get spaghetti. This is extremely well known, and you know what you will get if you mix either of the other two tiers in your model. Software architects should enforce this separation through division of labor and a Service Oriented Architecture. Therefore, UI developers will still be required.
Then from an aesthetic point of view, people who are trained to do back-end coding, in my experience, could do UI appropriately. They don't however, and the reasons I've heard are that it takes too much time and they don't want to mess around with consistent spacing, matching colors based on solid color theory, iterating through mockups with marketing, etc… They also don't worry about usability often because they assume, inadvertently, that all of their users will have their level of understanding of systems. All of these things result in UIs built by back-end people that are unacceptable.
Any back-end developer can build a slick, interactive AJAX based UI, just like they can a flash UI today, but they don't. I know that this isn't the last time a company is going to try to get rid of their UI staff, but it isn't the first. They will be hiring UI people in the future, but in the future, it won't be flash, it will be Silverlight and if Adobe is clever enough, Apollo.