least to know how to manipulate and print out information they needed from their data. Whether the work was done by a professional programmer, or an end-user writing a program to provide them information for their own use, the means to do this in either case is the same. Write a program, submit it to a compiler (another program that converts written programs into instructions the computer can understand), fix any errors, then repeat until the program worked. While this helped fix part of the problem, it created a new one. People who wrote programs, or hired someone to write them (purchasing software was not a thing until the 1970s or 1980s), discovered when their employer or school bought a new computer, their programs no longer worked. History Originally, programming at the written level was done by writing programs in assembly language. The problems with this are that It is the ultimate in vendor lock-in as your programs are not only tied to that vendor's hardware, but to that particular model of that manufacturer's hardware. If you want to move to a more capable or more powerful machine, your code might not work, requiring everything to be done over. If your vendor goes out of business, or does not provide a better model, when you want to upgrade you have to move to another vendor's equipment, and your entire investment is lost, for the same reason as the previous example. Assembly language is slow to develop. A program in a high-level language today, (like C++, Python, PHP, or Go) can have one line of code that would require dozens of assembly-language statements. Many people who want to develop solutions for a particular problem and want to create a program to do so, may not want to take the time to learn the machine language of a computer, but would be willing to learn to learn to write programs to solve their problems using something less complicated. Development of high-level programming languages To combat these problems, various high-level languages were developed that were usable for general purpose application program development, but could be used to provide reports and information for people with specialized requirements. These include: BASIC, a simplified programming language which could be used to build "real world" complex applications, as well as simple programs to solve a problem, and was very accessible for amateur programmers. Its ease of use