Is .NET Today's UCSD Pascal?
Discussion with a colleague reminded me of some work I did related to ASP.NET and ADO.NET a few years ago. The CLI concept is a logical next step for Microsoft. They just need to remember what happened to the last player that tried that...
In the 1980s, UCSD Pascal was gaining in popularity. Versions were coming out for a lot of the microcomputers of the day and people doing serious programming liked it because it was a "structured" language, unlike BASIC's wide-open approach that often resulted in unmaintainable "spaghetti code".
Instead of being interpreted as most of the BASICs were or compiling to machine code like COBOL or C, UCSD Pascal compiled to an intermediate pseudo code ("p-code") that was then interpreted at run time. So it was faster than BASIC but slower than compiled languages like C.
With the success of UCSD Pascal, they started adding languages that would compile down to the same p-code so you could write in whatever language you liked and the end user only needed one interpreter to run it. Great!
Then a little company named Borland came along.
Borland came out with Turbo Pascal which had the first Integrated Development Environment for microcomputers. In that less than 40KB IDE, your program could be compiled and linked in seconds instead of taking several minutes in UCSD Pascal and other compiled languages. It also provided keyword help (very attractive to self-taught programmers) and was very inexpensive (also attractive to starving self-taught programmers). Not only was the development process much faster, but because it compiled to machine code, the resulting programs ran much faster than the p-code interpreted ones.
Turbo Pascal's success took the language makers in a new direction and pretty much spelled the end of p-code languages.
Microsoft's CLI is a p-code system. Different name. Different innards. Same idea. It addresses a problem of large organizations employing many programmers with different backgrounds.
But is it practical for the plethora of portable devices poised to dominate software development?
It may work fine for the new "big iron" ("big aluminum?") environments of large websites though.
At least until a more nimble competitor comes along.
In the 1980s, UCSD Pascal was gaining in popularity. Versions were coming out for a lot of the microcomputers of the day and people doing serious programming liked it because it was a "structured" language, unlike BASIC's wide-open approach that often resulted in unmaintainable "spaghetti code".
Instead of being interpreted as most of the BASICs were or compiling to machine code like COBOL or C, UCSD Pascal compiled to an intermediate pseudo code ("p-code") that was then interpreted at run time. So it was faster than BASIC but slower than compiled languages like C.
With the success of UCSD Pascal, they started adding languages that would compile down to the same p-code so you could write in whatever language you liked and the end user only needed one interpreter to run it. Great!
Then a little company named Borland came along.
Borland came out with Turbo Pascal which had the first Integrated Development Environment for microcomputers. In that less than 40KB IDE, your program could be compiled and linked in seconds instead of taking several minutes in UCSD Pascal and other compiled languages. It also provided keyword help (very attractive to self-taught programmers) and was very inexpensive (also attractive to starving self-taught programmers). Not only was the development process much faster, but because it compiled to machine code, the resulting programs ran much faster than the p-code interpreted ones.
Turbo Pascal's success took the language makers in a new direction and pretty much spelled the end of p-code languages.
Microsoft's CLI is a p-code system. Different name. Different innards. Same idea. It addresses a problem of large organizations employing many programmers with different backgrounds.
But is it practical for the plethora of portable devices poised to dominate software development?
It may work fine for the new "big iron" ("big aluminum?") environments of large websites though.
At least until a more nimble competitor comes along.
Labels: language, programming, windows