Last night on Twitter, I had a discussion with some folk on whether you’d consider ASP a programming language. Actually, it started with: “is ASP.Net a programming languageâ€.
In my opinion: no.
Asp.Net is a framework coupled with a markup language (which is not a programming language, just as HTML nor XML aren’t a programming languages). C#, Visual Basic, Boo, or whatever CLR language you like is a programming language you use in conjuncting with Asp.Net to produce webapps. So ASP.Net supports the code (for example, in C#) to actually getting things done. ASP.Net builds on the .Net framework (which isn’t a programming language either, of course).
And so we got to ASP. “ASP is a programming languageâ€. Well, no, it’s not. Again, ASP is the framework (the objects like Server, Request, …) and the markup (the <% %> stuff in your HTML). It’s (usually) VBscript that’s the programming language. Like in ASP.Net, your perfectly capable to use another (Active)scripting language to power your websites. I’ve done numerous ones in JScript. There’s also PerlScript. It was/is even possible to combine more than 2 languages in the same project (that’s where the <script runat=â€serverâ€></script> blocks were born).
Finally, PHP. PHP is a bit of both. It’s both a programming language AND a framework: the numerous functions and modules included in PHP give you a large codebase to work with, and getting to form values (something for which you need a framework object for in ASP) is built into the language (the variables are right there where you need them, automagically created). I know there’s more to it than that, but basically everything is just right there.
So that’s a fundamental difference between ASP, ASP.net (but also JSP, for example) on one side and PHP on the other side.
I guess Perl is on the PHP side, although it’s “standard†library is much less extensive than PHP’s.
Oh, and another thing: people who claim that PHP shouldn’t be mixed with HTML. ORLY? That’s what was it made for in the first place, n00b. :p PHP begs to be mixed with HTML. That’s where it shines!