When most of us first learned computer programming, BASIC was still strung together in one long execute path. Any jumps to different parts of the code had to use the GOTO statement. This lead to overly complex programs which were very difficult to write, for beginning programmers, a extremely hard to understand. This type of computer coding, over reliance on the GOTO statement, is known as spaghetti coding because following the flow of the program creates many complex lines resembling a bowl of spaghetti.

Example of BASIC code flow that resembles spaghetti.

Spaghetti Code

Today's programming in BASIC is much easier and far more powerful than the old methods. But "Why learn computer coding at all when there are so many authoring tools out there?" you may ask. It is true that that you may find an authoring tool that fits your needs, however, by the time you get the most out of such a tool, I could ask you why didn't you just learn to program to start with? The fact of the matter is that to have a flexible and powerful way to create programs, be it through actual coding or authoring, you are going to have to get over a learning curve. Coding learning curves are way down from just a few years ago, while the opportunity for integration of coding into our everyday programs has increased.



1. Authoring tools' features are limited to the features of the authoring program 1. Coding languages' features are limited only by the operating system and the hardware
2. Authoring tools can experience drastic changes over time as new version are released and changes made to feature sets; additionally, these programs are proprietary and only continue to exist if the company that owns them continues to exist and actively supports the product 2. Programming languages evolve slowly and tend to support all previous commands and techniques; these languages do not belong to any one company and versions differ only slightly between companies
3. Authoring tools often require run-time modules to execute the resulting programs; this means that users must obtain, sometimes at a financial cost, the run-time software 3. Programming languages compile completed code into an executable file that requires no run-time module and can be freely distributed
4. Because authoring tools attempt to offer many features, the resulting programs are large and slow, even for the simplest of tasks 4. Coding languages only include the code determined to be necessary by the programmer, so the resulting program can be lean and fast to execute