Source for this rant was a forum located here
To my mind there is a fundemental problem that we encounter in the industry today. In that increasingly (and this has been the case for ten years or so) people -laymen and some in the industry- see "designers" as "coders" when this is not the case. Although HTML, CSS are code based systems, they are for the most part just a series of linear instructions for the markup and layout of text. This is the realm of a designer in the first part, the visual display that the user interacts with, it is his title and something he should strive to be good at.
A designer may have the ability and knowledge to start using some levels of script (javascript, PHP, Rails -intentional dig-) and will integrate them into his designs providing the hooks to server based code and function, and this is where we encounter some initial problems. As we pass from the skin of a site to the functionality we often encounter a range of badly coded sites.
This is because we have designers using many systems without fully understanding the implications of their actions. They often do not understand load balancing, processor prioritisation, memory allocation (those are just system problems), there is also a whole range of differing issues between distros/server OS and the specific language or script in use, and if the site uses a database then we enter a whole new world where some level of object relations and object mapping must be understood. Such as the usage of primary keys and foreign keys for example.
They are in fact just doing simple scripting, they often are still not coding the entire functionality but using command scripts to interact with other modules. Now, we can introduce a high degree of complexity by this process and in fact can enter the realms of full OO programming, but what is common is that designers with loose grounding in OO skills are unleashed upon complex systems with little or no formal training. Even worse they do it on an occasinal basis so do not keep up to date with their code. Code works best when it is constantly re-worked, using new development process and triage to keep it trim and functional. As hardware systems develop so should the software that runs on them. There is almost always new libraries, or a better way of achieving your goal with less code and less excess functionality, which is why a scripter should do just that, and leave the design to the designer.
Some of the reason we have sites that lag, or produce odd effects, or are open to abuse from hackers and malicious code are because we have a jack-of-all-trades running the entire show. Now, I am not suggesting that the designer -shouldn't do any functional work- but I am suggesting that if they do use complex systems, and they do not work exclusively within these areas, they seek to collaborate with people who do.
– Hmmm, I have more thoughts on this but no time to go with them yet 😉 –