Software development started with the arrival of the first computers in the 1960’s. Programming started to be hard-wired (fixed programming) or soft-wired (reprogramming was possible by changing the position of plugs). Later, programs could be fed to the computer. First in binary code, then assembler languages were developed (second generation) which were more readable to programmers. The next step in programming was the introduction of procedural languages (third generation) like Cobol and Basic. Although these languages were even closer to the human language and hide a lot of low level procedures and direct addressing of memory from the programmer, they were still modeled close to how a computer works, performing a number of tasks in the right order to get to the right result. But since computers were mainly concerned with heavy data processing and number crunching in those days, procedural languages worked fine.