30
Comparing Server-Side Languages Empirical Comparisons Comparing Server-Side Web Languages Server-Side Web Languages Uta Priss School of Computing Napier University, Edinburgh, UK Copyright Napier University Comparing Languages Slide 1/13

Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Comparing Server-Side Web Languages

Server-Side Web Languages

Uta PrissSchool of Computing

Napier University, Edinburgh, UK

Copyright Napier University Comparing Languages Slide 1/13

Page 2: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Outline

Comparing Server-Side Languages

Empirical Comparisons

Copyright Napier University Comparing Languages Slide 2/13

Page 3: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php -

Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 4: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 5: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl -

Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 6: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 7: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET -

Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 8: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 9: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python -

Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 10: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 11: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets -

Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 12: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 13: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP -

Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 14: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Which Server-Side Web Language is best?

What about ...

I Php - Probably currently most popular! But not a generalpurpose language.

I Perl - Older than Php. More difficult to use, but generalpurpose. Good for general Unix system admin tasks.

I ASP.NET - Microsoft’s server-side language; commercial;platform dependent.

I Python - Object oriented multi-purpose scripting language.Really good for server-side tasks! But not that well known.

I Java Servlets - Java server-side programming, requires ApacheTomcat engine or similar.

I JSP - Sun’s version of Java server-side programming.

Copyright Napier University Comparing Languages Slide 3/13

Page 15: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Differences among Server-Side Languages

I Embedding: is HTML embedded into the code (using printstatements) or is the code embedded into HTML (usingtemplates)?

I Flexibility: are there many ways to achieve a solution?

I Usability: how difficult is it to learn and to use the language?

I Security: is security built into the language or doprogrammers have to write code to ensure security? Are theresecurity holes in the language?

I Speed of execution: how fast is a script executed?

I Generality: is the language special purpose or generalpurpose?

How do Perl and Php compare with respect to these categories?

Copyright Napier University Comparing Languages Slide 4/13

Page 16: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Differences among Server-Side Languages

I Embedding: is HTML embedded into the code (using printstatements) or is the code embedded into HTML (usingtemplates)?

I Flexibility: are there many ways to achieve a solution?

I Usability: how difficult is it to learn and to use the language?

I Security: is security built into the language or doprogrammers have to write code to ensure security? Are theresecurity holes in the language?

I Speed of execution: how fast is a script executed?

I Generality: is the language special purpose or generalpurpose?

How do Perl and Php compare with respect to these categories?

Copyright Napier University Comparing Languages Slide 4/13

Page 17: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Differences among Server-Side Languages

I Embedding: is HTML embedded into the code (using printstatements) or is the code embedded into HTML (usingtemplates)?

I Flexibility: are there many ways to achieve a solution?

I Usability: how difficult is it to learn and to use the language?

I Security: is security built into the language or doprogrammers have to write code to ensure security? Are theresecurity holes in the language?

I Speed of execution: how fast is a script executed?

I Generality: is the language special purpose or generalpurpose?

How do Perl and Php compare with respect to these categories?

Copyright Napier University Comparing Languages Slide 4/13

Page 18: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Differences among Server-Side Languages

I Embedding: is HTML embedded into the code (using printstatements) or is the code embedded into HTML (usingtemplates)?

I Flexibility: are there many ways to achieve a solution?

I Usability: how difficult is it to learn and to use the language?

I Security: is security built into the language or doprogrammers have to write code to ensure security? Are theresecurity holes in the language?

I Speed of execution: how fast is a script executed?

I Generality: is the language special purpose or generalpurpose?

How do Perl and Php compare with respect to these categories?

Copyright Napier University Comparing Languages Slide 4/13

Page 19: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Differences among Server-Side Languages

I Embedding: is HTML embedded into the code (using printstatements) or is the code embedded into HTML (usingtemplates)?

I Flexibility: are there many ways to achieve a solution?

I Usability: how difficult is it to learn and to use the language?

I Security: is security built into the language or doprogrammers have to write code to ensure security? Are theresecurity holes in the language?

I Speed of execution: how fast is a script executed?

I Generality: is the language special purpose or generalpurpose?

How do Perl and Php compare with respect to these categories?

Copyright Napier University Comparing Languages Slide 4/13

Page 20: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Differences among Server-Side Languages

I Embedding: is HTML embedded into the code (using printstatements) or is the code embedded into HTML (usingtemplates)?

I Flexibility: are there many ways to achieve a solution?

I Usability: how difficult is it to learn and to use the language?

I Security: is security built into the language or doprogrammers have to write code to ensure security? Are theresecurity holes in the language?

I Speed of execution: how fast is a script executed?

I Generality: is the language special purpose or generalpurpose?

How do Perl and Php compare with respect to these categories?

Copyright Napier University Comparing Languages Slide 4/13

Page 21: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Differences among Server-Side Languages

I Embedding: is HTML embedded into the code (using printstatements) or is the code embedded into HTML (usingtemplates)?

I Flexibility: are there many ways to achieve a solution?

I Usability: how difficult is it to learn and to use the language?

I Security: is security built into the language or doprogrammers have to write code to ensure security? Are theresecurity holes in the language?

I Speed of execution: how fast is a script executed?

I Generality: is the language special purpose or generalpurpose?

How do Perl and Php compare with respect to these categories?

Copyright Napier University Comparing Languages Slide 4/13

Page 22: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

CGI - Common Gateway Interface

HTML requests are handled by a webserver, such as Apache.

There are different ways in which server-side scripting languagescan interact with webservers. CGI is fairly old-fashioned, slow, butsimple. Problems of CGI are:

each new CGI request spawns a new process andsession tracking is difficult.

Copyright Napier University Comparing Languages Slide 5/13

Page 23: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Webserver Extensions

Webserver extensions (such as mod perl and mod php) are fasterthan CGI because the server-side language is loaded into Apacheinstead of restarting it new for each request.

Database connections and session parameters can be keptpersistent.

Although most of the Perl code is the same for use under CGI ormod perl, mod perl requires a bit more programming experience tobe used safely.

Copyright Napier University Comparing Languages Slide 6/13

Page 24: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Empirical Comparisons

Below are some examples from a paper by Lutz Prechelt

An empirical comparison of C, C++, Java, Perl, Python,Rexx, and Tcl

Even though the paper is a bit old (from 2000), it illustrates thekinds of methods which can be used to compare programminglanguages.

Copyright Napier University Comparing Languages Slide 7/13

Page 25: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

From Prechelt (2000):

Copyright Napier University Comparing Languages Slide 8/13

Page 26: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

From Prechelt (2000):

Copyright Napier University Comparing Languages Slide 9/13

Page 27: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

From Prechelt (2000):

Copyright Napier University Comparing Languages Slide 10/13

Page 28: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

A similar paper is Gousios & Spinellis (2002) ’A Comparison ofPortable Dynamic Web Content Technologies for the ApacheServer’.

The paper explains in more detail how CGI, templating (Php),servlets and so on work. It contains sample code for severaldifferent languages and some benchmark results for comparisons.

Both papers can be downloaded from the module website.

Copyright Napier University Comparing Languages Slide 11/13

Page 29: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Questions for the Gousios/Spinellis paper

I What are the four different approaches for server-side weblanguages?

I Which of the following three use essentially the same scripts:Perl/CGI, FastCGI, mod perl?

I Which of the following three is slowest/fastest: Perl/CGI,FastCGI, mod perl?

I What is the main difference between PHP/ASP andPerl/Servlets?

I Which of the following six is worst/best at maintaining states:FastCGI, Perl/CGI, mod perl, ASP, Servlets, PHP?

Copyright Napier University Comparing Languages Slide 12/13

Page 30: Comparing Server-Side Web Languages · Title: Comparing Server-Side Web Languages Author: Server-Side Web Languages Created Date: 9/18/2008 12:50:53 PM

Comparing Server-Side Languages Empirical Comparisons

Questions for both papers

I Which server-side technologies are best for fast prototyping?

I Is there any technology among the following that runs soslowly that it should not be used for complicated applications:Perl/CGI, FastCGI, PHP, Java Servlets, Python, C++?

I Describe a low-cost method for comparing different server-sidetechnologies.

Copyright Napier University Comparing Languages Slide 13/13