Table 4.1 Here are some of the disadvantages of tag-language development on the server when
it is used as a replacement for the model-view-controller architecture.
Model logic is tightly coupled with
Extension and maintenance are difficult because changes
cannot be isolated to the model or view.
Model logic is handled in a tag
language or script.
Many times, a language like Java is superior to tag lan-
guages for models, because high-level languages are more
flexible and robust for this task. Tag languages are better
suited for the interface.
Concerns are not separated.
Programmers must be good designers and designers must
be good programmers, leading to more expensive staffing.
Communications are proprietary.
After the initial implementation, choices for model imple-
mentation architectures are limited.
Tags are proprietary.
Choices for the user interface development are limited,
because the proprietary tags make basic HTML editor inte-
Lacking a clean delineation between model, view, and controller, we simply
have another version of the antipattern created in chapter 3. Intuitively, this
antipattern “feels” slightly different; you're dealing with a tag language rather
than procedural or object-oriented development. In general, environments
based primarily on server-side tag languages will tend to break down as
entropy increases over time because they don't have a rich enough language to
express a clean model-view-controller architecture. These are the symptoms:
the efficiency of the environment begins to slip. The return page becomes
progressively more difficult to edit. Since the coupling between the user inter-
face and model is tight and difficult to break, it grows increasingly complex
with each revision and cannot be refactored easily.
User interface redesigns take much longer than expected. Again, tight cou-
pling forces too much model and controller logic into the view. Redesigning
such logic is difficult, and attempts to refactor to a more scalable architecture
fail. New programmers resist using the scalable architecture. This happens
because the toolset expresses tagged user interfaces well but is more limited
for true object-oriented development. Most programmers under these cir-
cumstances will try to stay in the most efficient realm, which in this case is the
tagged user interface development environment.