Now that I have your attention let me begin.
The language itself does not impose any sort of standard for code creation. You can have everything in one big file if you want, or even in one long line if you really are perverted. There is no official way to create objects, instead a pattern is semi agreed on to be adhere to – “More honoured in the breach than in the observance”.
There is no type checking going on to make sure what you are about to call is indeed still there and is still expecting the type of data you are about to pass to it. You can’t be assured of what type of data is coming back, it could be anything.
This is an intolerable situation for the enterprise. The code the enterprise produces has a long shelf life compared to the code of startups and most web sites. Many developers will cycle in and out of the project/company and this code needs to be maintained, added to and ultimately supported for many years to come.
Yet that isn’t enough.
Ken Scott – Answer at Quora
We’ve seen this before.
1991 was the year Visual Basic burst onto the scene from Microsoft. This powerful drag’n’drop programming didn’t even start out as a true language, but Microsoft decided to add Basic to the company it bought, Tripod, to which Visual Basic then became. Visual Basic revolutionized the computing landscape, and while it was officially retired in 2005, it’s legacy is still powering a vast array of crucial applications and corporate tools world wide today.
What Visual Basic did was to let anyone build complex applications by simply drawing on a canvas, tying components together and before you knew it, you had frontends to databases and systems quickly evolving. Everyone got in on the act. From the spikey hair boss, who fancied himself a developer, to the youngsters in their bedroom, Microsoft made it really easy to do great things.
That is no bad thing, however, what it did, was to create huge amounts of legacy spaghetti code that goes largely unsupported. While you may have a VB app running away, it is slowly eroding as no one wants to crack open the source and start making changes. It was code that was hacked together by those that didn’t really know the techniques of the trade. Microsoft convinced legions of companies that real software engineers weren’t needed, and if it couldn’t be done in Visual Basic then it wasn’t worth doing.
Microsoft was not alone as others got in on the act too. PowerBuilder, Delphi, Paradox are ones that spring to mind that had a similar drag’n’drop concept.
So what is the answer?
I don’t believe the answer lies in tooling. Tooling will only help the situation, but anyone with a text editor can easily bypass any rules or laws the tooling is hoping to enforce. Discipline and code review in following the guidelines and laws set out by companies will get you only so far too.
There is a reason why very few people write actual machine assembly language these days – it is too darn complicated and prone to easy mistakes. It has a very loose structure too, with complete power to do anything in the system. You can’t get much closer to the CPU. However, assembly is not the language you want teams of developers producing. It is too low-level.