What it is: Pascal was an early programming language designed to teach structured programming and good programming practices using a language that would prevent common programming errors.
Back in the early days of the PC, developers quickly found that assembly language was took cumbersome and time-consuming to use. WordStar created their famous word processor using assembly language and when too many of their original programmers left to form a rival company called NewWord, WordStar suddenly realized they couldn’t even understand their own assembly language source code. WordStar bought out NewWord and essentially rehired their assembly language programmers back again.
Because assembly language was so difficult to use, programmers quickly separated into two camps. One camp embraced Pascal, which was designed to teach good programming practices. Pascal was meant to be easy to read, which also meant it was harder to write since you had to enclose groups of statements using BEGIN and END commands instead of simpler { } used in C. Although wordier than C, Pascal’s main goal was to make programming easier to understand by increasing human efficiency.
Pascal required programmers to make an extra effort to write readable, understandable code that could be easy to modify in the future. The original Macintosh operating system was even written entirely in Pascal due to its readability features.
Unfortunately Pascal traded human efficiency for computer efficiency. That meant Pascal programs were easy for humans to read, but difficult for computers to read and compile into equivalent assembly language code. As a result, Pascal programs often ran slower and less efficiently than similar C programs.
That’s why the second camp embraced C since C was the original language used to create the UNIX operating system. While C consisted of symbols and cryptic commands that made it harder to read and understand for humans, its simplicity also made it easier for computers to understand. That’s why C programs typically ran faster and more efficiently than similar Pascal programs.
The debate eventually centered on human efficiency (Pascal) or computer efficiency (C). Eventually, the world chose computer efficiency, which is why C and its variations such as C++, C#, Objective-C, and even Java all closely resemble C while trying to overcome its inefficiencies that allow even experienced programmers to make mistakes. If you’ve ever used a buggy operating system, chances are good it was because C gave programmers the power to do practically anything, but didn’t provided any safeguards to keep them from making horrible mistakes. C essentially gives programmers the ability to drive as fast as they want without guard rails, air bags, or seat belts. As long as everything works right, you’re fine, but make one mistake, and C punishes you for your error.
Although C has dominated the programming landscape for so long, programming languages are now moving back towards Pascal to increase human efficiency while retaining computer efficiency as much as possible. That’s why you see languages like Apple’s Swift appearing to replace Objective-C while Microsoft’s own C# was meant to improve upon C++ and Java. Python is also proving popular for being easy to read and write while still retaining much of its C-based language syntax.
The long-term trend is shifting back towards human efficiency because programs are no good if they run faster but run incorrectly and can’t be fixed easily. For that reason, developers should be focusing on languages like Swift that simplify programming by increasing human efficiency. Languages like Swift will only succeed if they can also equal or exceed computer efficiency over Objective-C and C++ while still retaining human efficiency. When a language can offer both human and computer efficiency, that’s the programming language that will dominate in the future, and for now, the best bet for that language is Swift.
If you’re a developer, Swift may be limited to iOS and OS X programming, but that’s where the growth is anyway. Many programming tools allow developers to use their knowledge of C# to create iOS and OS X programs, but that will always be a less than optimal solution. Essentially C# programmers want to cling to their existing knowledge without learning anything new. That means they’ll always be limited by the programming tools used to make C# run on iOS and OS X. Using C# may be a temporary solution, but in the long-run, learning Swift is a much better option.
Like it or not, Swift is Apple’s programming language of the future that returns back to the roots of human efficiency that Apple originally chose when they adopted Pascal as their official programming language back in the early days of the Macintosh. Apple’s not going backwards to Pascal, but they will continue going forward with Swift.