Software architecture, PHP and Javascript

One of the main goals that Software architects try to achieve is to design solutions that will last a long time. You’ll often hear an architect say that the product will have a life span of about ten years, and that all technical choices should support this goal. This means that any framework you select today should not just solve your technical issues, but should preferable still be around in ten years, so you can still find people to support the software.

One obvious choice is to stick to standards. Many frameworks, especially java web frameworks, come and go, but the JEE standards stick around much longer. In this light, JSF can be considered a save choice, and Seam is a bit more risky.

What if you could go back in time 10 years, and redo the designs you created back then with the knowledge you have today? .Net was still beta, J2EE didn’t contain a standard MVC framework, object persistence was either done using entity beans or plain JDBC. With the knowledge you have today would you have stuck to the standards ten years ago?

Struts was first released in 2000, and it’s still around. So, not a bad choice ten years ago. But, both Java and .Net, the standard choices for enterprise software development, have changed quite a lot in ten years. Maybe picking something like PHP would have been the smart way to go? I think most software architects working in big companies underestimate the value of PHP.

Ok, so web development has changed a lot in the last ten years. We’ve learned a lot, and by now we probably have mature frameworks. It should be saver to stick to the standards, right?

Not so sure. I think putting the web layer on the server will soon be a thing of the past for most web applications. We’re heading back to client-server land. Lot’s of javascript MVC frameworks, like backbone.js, are being created. What’s the Javascript Struts equivalent?

Just like the smart choice for the last ten years might not have been Java or .Net, the smart choice for the future might also not be Java or .Net. Maybe in ten years you will think: if only I picked Javascript from the start…

  • Anonymous

    No, I don’t think so. This article is nothing but a set of assumptions to rant about the known fact that technology rapidly changes. If you want to stand on solid grounds, why don’t you become a physicist? That science changes very rarely and still allows an unlimited number of research options. If you don’t like the idea of being a theoretical physicist, why don’t you become the experimental? Side note: since I’ve been studying at University, I’ve been unwillingly observing the problem-solving ability of most people can be summarized in one word as dubious.

  • http://www.andrejkoelewijn.com/ andrej

    Did you really read the article? Nobody is ranting about rapdily changing technology, just wondering what the best choice is…

  • Pcdiggs

    As far as “web-based” software architecture, I think CSS3 and HTML5 are actually MORE significant than everything else combined.  I believe web pages in the near future will consist of little to no script at all.  Anything CSS3 has implemented that substitutes what only a script could do prior implements the effect as good, if not better (tooltips, transitions, etc.)  Who knows; maybe even MS Windows will one day be virus free thanks to CSS3 and HTML5 (but I wouldn’t bet on it).

  • http://www.andrejkoelewijn.com/ andrej

     I agree that most of the visual stuff that we used to do with javascript will be done using css3 and html5.

    But i think that most of the user interface code, the controller part of MVC, and also the model part will be coded in javascript in the browser, instead of on the server. So expect the amount of javascript to actually increase instead of decrease, just for a different purpose.