[Wolves] Scripting language comparisons

Matthew Revell wolves at mailman.lug.org.uk
Wed Apr 30 17:34:01 2003


Fanastic, thanks for all of that.

I'm really interested in what you say about Java/ECMAScript. I probably 
won't go into a great deal of detail in the article but do you know of any 
examples of its use for more than the client side stuff?

On Wed, 30 Apr 2003 14:04:25 +0100, Aquarius <aquarius-lists@kryogenix.org> 
wrote:

> Matthew Revell spoo'd forth:
>
>> Hi,
>
>> I'm writing an article on the comparative advantages of the various
>> scripting languages that can be used for websites. It's aimed at online
>> content professionals - website editors, information architects, online
>> writers etc. - to give them an idea of the languages that are available.
>
>> The languages/technologies I'm going to cover are:
>
>> PHP
> PHP is either the most popular or second most popular web scripting 
> language. It's widely used, C-based, and canonically embeds code 
> throughout HTML in the same way as ASP. There are a vast array of modules 
> that allow it to do pretty much any task that might be required, along 
> with bindings to externaly-available libraries. It is also open source; 
> in essence, it can be viewed as an open-source cross-platform competitor 
> to ASP. Although primarily developed and maintained as a web scripting 
> language, it can be used for generic (non-web-connected) programming 
> tasks. There are also various templating engines available for PHP, such 
> as Smarty (http://smarty.php.net/), which allow coders to disassociate 
> code from HTML.
>
>> ASP
> ASP is, technically, not a programming language. Instead, it's the name 
> for a technology that allows you to embed a programming language in HTML, 
> and also a technology that provides a consistent object model for input 
> and output of data. For example, it's possible to have "ASP" pages that 
> embed VBScript, JavaScript, Perl, Python, or any other language supported 
> by the Windows Scripting Host. In practice, however, when people talk 
> about "ASP" they generally mean "ASP/VBScript". VBScript is, as mentioned 
> in another mail, a cut-down version of VIsual Basic. It's missing a fair 
> few features that better languages have: for example, variable numbers of 
> parameters to functions (and default values), the ability to pass 
> functions around as objects, and any kind of introspectivity. It is 
> either the most popular or second most popular web scripting system in 
> the world (depending on whether you believe the PHP people or not), and 
> the vast majority of ASP pages are ASP/VBScript. Note that, although 
> ASP/PerlScript and ASP/PythonScript require extra downloads, ASP/JScript 
> (JScript is Microsoft's codename for their version of ECMAScript, as 
> JavaScript is Netscape's codename for their own version) is an out-of- 
> the-box supported configuration. Modern JavaScript is an accomplished and 
> detailed language; although early versions were limited, JavaScript is 
> unfairly tarnished by its reputation as a simple client-side language. 
> See http://www.crockford.com/javascript/javascript.html for more details 
> on how powerful and expressive JavaScript is (much more so than VBscript, 
> and much more so than PHP, too, as a language). Part of the reason that 
> VBScript is limited as a language is that you are supposed to use it as 
> glue; the MS ethos surrounding it is that it will be used as the display 
> layer which talks to a middleware COM layer (of COM objects and DLLs 
> built in a more capable language). This has been superseded in recent 
> years by ASP.NET.
>
>> ASP.NET
> ASP.NET is the web programming section of Microsoft's .NET, a nebulous 
> group of technologies. Again, ASP.NET pages can be written in any .NET- 
> capable language, but the MS-supported choices are VB.NET and C#. VB.NET 
> looks like Visual Basic to a certain extent; like classic ASP, .NET is 
> really about providing an object model to code that runs in a web page to 
> get access to data.
>
>> Perl
> Perl is the 500-pound gorilla of text processing languages, and was 
> heavily used for web programming when all web programming was CGIs. Since 
> the appearance of PHP, its use has dropped somewhat. Being a generic 
> programming language first, and a web programming language only as a 
> consequence of that, a Perl web program will canonically be a script 
> which generates HTML, as opposed to the ASP/PHP model of having code 
> distributed through HTML. Perl is an extremely powerful language, 
> especially in the text processing domain, but there is a high learning 
> curve, particularly for novice users (the typical 17-year-old-with- 
> Dreamweaver who populates a fair portion of web "design" shops). More 
> suited to back end code than display code, unlike PHP and ASP which are 
> the other way around. The Apache::ASP module (http://www.apache-asp.org/) 
> provides the ASP object model and code-embedded-in-HTML ethos to Perl 
> running on Apache, but it's not the canonical use of Perl as a web 
> language.
>
>> Python
> Python, like Perl and unlike the other suggested languages, is a generic 
> language that can be used for web programming rather than a web 
> programming language (which can potentially be used generically, as PHP 
> can). While not as strong in the text processing arena as Perl, it is 
> mostly conceded to be simpler to learn, especially for programming 
> novices. Much like Perl, again, a typical Python web program is a CGI 
> which generates HTML (although there are ASP/PHP-style embed-Python-in- 
> HTML processors, such as my own Castalian 
> (http://www.kryogenix.org/code/castalian/)).
>
>> JSP
> Much like Java, JSP is popular in the enterprise arena, especially by 
> those who develop cross-platform products with a web interface (MS-only 
> enterprise products will often have their web interfaces in ASP + COM). 
> JSP also comes with the idea of "servlets" as part of the package; 
> servlets are encapsulated bits of code, much like Microsoft's COM 
> objects.
>
>> Coldfusion.
> Cold Fusion takes a different approach to both Perl and ASP; instead of 
> embedding code in HTML, or writing code that generates HTML, it looks 
> like HTML. THe language is made up of a series of tags which are actually 
> commands, such as <cfloop>...</cfloop>, which defines a loop. CF has 
> fallen out of favour in recent years, although it is still developed by 
> its parent company (MacroMedia) as part of their "MX" range.
>
> ...oooOOOooo...
>
> I've tried to be as objective as possible here. Anyone who knows me will 
> tell you that I'd recommend Python heavily as a scripting language, both 
> generically and for web tasks. I'd also strongly recommend against Cold 
> Fusion (Steve Champeon once said that "using Cold Fusion to teach 
> programming concepts is like using collage to teach surgery".) I'm a 
> little light on JSP and ASP.NET experience, so someone else can fill 
> those in. The bit about JavaScript actually being really powerful as a 
> language is important: those of you (which is pretty much all of you, I 
> bet) who think that it's just for noddy client-side web stuff like 
> swapping images should follow the link and see how accomplished a 
> language it is.
>
> sil
>