This analogy jumped into my mind the other day. As a (DNN module) developer I feel somewhat like a cook. A cook, taking various ingredients and combining them into something hopefully very tasty. A cook, because we use other people’s work to create our own unique work. It is not just using .net and DNN as a platform that I’m talking about. Here I was thinking about the myriad of libraries and programming paradigms that I’ve used over the years.
Over the years the time you’re not spending hammering out code for a client is often spent looking at knew tech stuff being peddled by your dev gurus. For instance, in our world Scott Hanselman is probably one of the best known dev gurus. And over the years I have regularly surfed over to his corner on the web to see what’s new. But as much as it was interesting it was also frustrating. One such frustration is that our day-to-day work requires us to work with established technologies that have a reasonable promised lifespan still ahead of them. Although for developers it may be exciting to try and create something new with some new technology, it’s no use to our clients if the underlying technology is deprecated a year later and we have to explain that everything needs to be reprogrammed. But this frustration comes with the territory. New stuff is unproven and you need to be patient to see where it goes.
Another frustration I have is more related to the way new technologies are often presented and how some of your fellow techies can get swept up in the maelstrom. It’s the hype. I understand that if you’ve worked hard on some new technology that you want everyone to know about it. It is a competitive world out there and you want your precious idea to reach as many as possible. But the overhyping can get irritating, specifically when someone loses it and claims it can “solve all my problems”. Coming back to my analogy, it’s like some supermarket chief telling me I should buy all my ingredients from them and I’ll make better meals. Stop it. It’s insulting. And frankly it’s off putting. At that point the pundit is putting himself in my seat (by the way, Scott does not do this, but many “lower gods” do). I’d like to make my own decisions on where I get my ingredients, thank you very much.
Currently our community is swept up in a bit of a storm because Microsoft have announced that Web Forms is being mothballed. This has fragmented our community with some who wish to keep the status quo and keep tweaking the existing code base and those who wish to migrate to a totally new architecture. But to the latter group I have this warning: although it may seem like everyone is united under the MVC banner there are many more architectural decisions to make. And with every turn there will be different groups shouting for us to go in some direction and not another. And to those who claim their approach will solve all my problems I say: please be more humble and widen your own view. Just yesterday I was looking at a presentation on Flux by Facebook (thanks, Charles). And interestingly the talk started off by establishing that MVC did *not* solve all of Facebook’s problems and in fact introduced others. And some observations about development using two-way-data-binding that I could relate to (i.e. when apps get more complex it is hard to figure out what is happening).
One of the most common causes of this “seeing everything through your own prism” approach is that the pundit has not fully grasped the breadth of the market. Just now I was trying to create an Angular directive in a particular way only to find out that what I wanted to do was impossible without the “form” being passed in which is impossible in Web Forms as we have only one form. So sometimes the ingredients passed to us don’t play well with others and we may look elsewhere to see how we can achieve our goal.
The truly hard part at this juncture in time is to get a grip on where the web development sector is heading, which technologies are there to stay and how they relate to our world. And our world is building an extensible framework supporting portal virtualization and as much as possible in-situ editing. This, with support for localization of course.
So before anyone claims MVC or any other library is the terminal of all web development, please keep in mind we’ve passed many other stations on the way and there were always people claiming it was the terminal. And it wasn’t. No. This train will keep moving. And choosing the next platform architecture is going to be tricky because we’d like it to survive for another 10 years. So come to our event riding your hobby horse, but keep it on leash.