Click here to Skip to main content
15,116,815 members
Articles / Web Development
Article
Posted 30 Jan 2012

Tagged as

Stats

99K views
1 download
34 bookmarked

The New Emperors Clothes - Abuse of Web Technology

Rate me:
Please Sign up or sign in to vote.
4.95/5 (65 votes)
13 Oct 2017CPOL4 min read
Why JavaScript/JQuery/HTML/CSS/DOM is creating an awful mess

Introduction

The inspiration for this blog post was the following set of error messages displayed on an arrivals screen at Brighton, England railway station on Sunday, 29th January.

The Inspiration for this Article

Image 1

A Recipe for Chaos

What this shows is a broken arrivals computer system which has been completely over, and badly, engineered for the purpose of displaying information about the arrivals of buses to carry train passengers.

The designers/developers have chosen to build a browser based system with client-side JavaScript pulling data asynchronously from a web service. Nothing wrong with that in principal, but for a non-interactive display-only, highly available message board system? I think not, as clearly demonstrated.

The problems shown here are typical and are spreading like wild fire. People, including customers, project managers, inexperienced technical people, and transport staff, all make the same mistake. They think that the web is all about the browser.

This mistaken belief is responsible for the rise (and soon fall) of browser oriented technology, where software houses, designers and developers around the globe, have resorted to breaking all the rules of industrial strength software development in the belief that browser technologies are current 'best-practice'.

What are these current technologies that are not industrial strength?

Separation of Concerns: Client-Side Script and Web Services

Whilst separating display logic from business logic is generally a good principle of software engineering, it is almost impossible to do using the current technologies favoured by the web software development industry today. Client-side code is being implemented in JavaScript and is increasingly gaining more and more business logic because changing JavaScript is easier that redesigning complex web services. This makes for very unreliable and unmaintainable software, and let us not forget that this business logic is available for all to see.

And what of the display logic? A mixture of HTML, CSS and JQuery is creating code which is utterly unmaintainable and unmanageable, throw in the mechanism of dealing with the enormous range of web service protocols, document object models (DOM), etc. and you have a classic spaghetti dish. This is far from the ideal and history teaches us much about what happens when this is the case.

Lowest Common Denominator Web Service Protocols

We have gone from WSDL and ASMX to REST and WCF. XML is being replaced with JSON because it is smaller in size and gets around some browser string problems, but you have to use JSONP to get around many other limitations. So, we are now passing complex data as strings! We get no benefit from sharing classes or strongly typed objects. Another recipe for disaster.

Proprietary Security Protocols

Each browser/web server combination works differently with different security protocols, and oAuth is hard to do properly. You need some good technology on the back end and a good CRM system to manage developer API keys, etc. Web security is always evolving and requires a lot of knowledge, money and time to master. Many projects simply do not have the budget or experienced staff, so instead developers are implementing their own proprietary security mechanisms, resulting in systems which are very fragile and easily hackable.

Development and Maintenance Tool Immaturity

For almost thirty years, we have had highly graphical software development tools with more recently intellisense, edit-and-continue, source code analysis tools, memory checkers, garbage collectors, etc. We get almost none of this with JavaScript, DOM and JQuery. Developing in these client-side web frameworks is like stepping back in time to a prehistoric age of software development.

Script-Kiddie Mentality and Inexperience

Many of the people writing this client-side JavaScript/JQuery/HTML/CSS are young, cheap and inexperienced. They have no concept of industrial strength software design. They do not know or care about reliability or maintenance because they'll be off onto the next job or mountain long before their code catastrophically breaks leaving us with the debris. Good luck to the people who have to fix it under enormous pressure from paying customers, irate investors and frustrated management.

Too Much Focus on Web Design at the Expense of Robustness and Reliability

If it looks good, it must be good eh? Wrong! Almost all web designers know absolutely nothing about complex business processes and the provision of reliable data to service those essential business activities. Project managers and customers are easily captivated by something which looks sexy. Web designers know this and use it as a shield to hide the mess that lies beneath the surface.

There are of course many more, but this is a blog-post not a book.

In summary, the new emperors clothes do not fit, are badly designed and will be torn to shreds as more and more people will be affected by this madness. Anyone contemplating building line of business (LoB) or safety (or transport) critical web applications using these technologies should really think again, to put it mildly.

Update: October 2017

The madness continues:

Image 2

History

  • Monday, 30th January, 2012: First posted on TriSys' blog
  • Friday 13th October, 2017: Updated

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Garry Lowther
Chief Technology Officer TriSys Business Software
United Kingdom United Kingdom
Software developer

Comments and Discussions

 
GeneralRe: My vote of 5 Pin
Garry Lowther9-Feb-12 0:54
MemberGarry Lowther9-Feb-12 0:54 
QuestionMissing silverlight... Pin
Member 80267326-Feb-12 2:58
MemberMember 80267326-Feb-12 2:58 
AnswerRe: Missing silverlight... Pin
Garry Lowther6-Feb-12 3:16
MemberGarry Lowther6-Feb-12 3:16 
GeneralRe: Missing silverlight... Pin
Lutosław7-Feb-12 0:08
MemberLutosław7-Feb-12 0:08 
GeneralRe: Missing silverlight... Pin
Member 80267327-Feb-12 0:59
MemberMember 80267327-Feb-12 0:59 
GeneralRe: Missing silverlight... Pin
Garry Lowther7-Feb-12 1:06
MemberGarry Lowther7-Feb-12 1:06 
GeneralRe: Missing silverlight... Pin
Peter Shaw17-Oct-17 3:21
professionalPeter Shaw17-Oct-17 3:21 
Questioncorect Pin
Maze6-Feb-12 2:28
MemberMaze6-Feb-12 2:28 
I can add that a lot of programmers are focused only on web programming and think that every problem has to be solved with/within an web application.
who dares wins!

AnswerRe: corect Pin
Garry Lowther6-Feb-12 3:21
MemberGarry Lowther6-Feb-12 3:21 
AnswerRe: corect Pin
Vivi Chellappa6-Feb-12 6:23
professionalVivi Chellappa6-Feb-12 6:23 
GeneralRe: corect Pin
Garry Lowther9-Feb-12 0:56
MemberGarry Lowther9-Feb-12 0:56 
AnswerRe: corect Pin
Lockwood13-Oct-17 7:30
MemberLockwood13-Oct-17 7:30 
GeneralMy vote of 5 Pin
Manoj Kumar Choubey6-Feb-12 0:43
professionalManoj Kumar Choubey6-Feb-12 0:43 
GeneralRe: My vote of 5 Pin
Garry Lowther9-Feb-12 0:54
MemberGarry Lowther9-Feb-12 0:54 
GeneralMy vote of 2 Pin
Pankaj Chamria5-Feb-12 22:04
MemberPankaj Chamria5-Feb-12 22:04 
GeneralRe: My vote of 2 Pin
Garry Lowther5-Feb-12 23:17
MemberGarry Lowther5-Feb-12 23:17 
GeneralRe: My vote of 2 Pin
Pankaj Chamria6-Feb-12 1:26
MemberPankaj Chamria6-Feb-12 1:26 
GeneralRe: My vote of 2 Pin
Garry Lowther6-Feb-12 3:23
MemberGarry Lowther6-Feb-12 3:23 
GeneralMy vote of 5 Pin
tigercont5-Feb-12 6:03
Membertigercont5-Feb-12 6:03 
GeneralRe: My vote of 5 Pin
Garry Lowther5-Feb-12 23:06
MemberGarry Lowther5-Feb-12 23:06 
QuestionFacebook Javascript API Goes Down, Taking Down Likes, Comments And Apps With It Pin
Garry Lowther3-Feb-12 21:56
MemberGarry Lowther3-Feb-12 21:56 
QuestionNode.js is Cancer: A Scalability Disaster Waiting to Happen Pin
Garry Lowther2-Feb-12 23:51
MemberGarry Lowther2-Feb-12 23:51 
QuestionYou could not be more wrong Pin
illiarian2-Feb-12 22:09
Memberilliarian2-Feb-12 22:09 
AnswerRe: You could not be more wrong Pin
Garry Lowther2-Feb-12 23:10
MemberGarry Lowther2-Feb-12 23:10 
GeneralRe: You could not be more wrong Pin
illiarian3-Feb-12 0:34
Memberilliarian3-Feb-12 0:34 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.