Monday, August 5, 2019

Evolution of Server-side Technologies

Evolution of Server-side Technologies Chris Avgerinos Introduction A fundamental change has been occurring for the last fifteen years in the way people write computer programs. Scripting languages such as Perl and Tcl replaced the system programming languages such as C and C++. There are tremendous differences between the languages due to the fact that scripting languages were designed for completely different tasks than system programming languages. The main operations of system programming languages are for building data structures and algorithms from the beginning using elements such as words of memory. Scripting languages assume the sets of powerful components and connect them together. Management of complexity is the main use of system programming languages. On the other hand, scripting languages simplify connections between components and provide rapid application development. (J.Ousterhout, 1998) The main focus of this paper is the evolution of scripting languages and the improvements on web-applications. The history of Scripting Language Scripting is as old as computers due to the fact that in order to use a computer you would need scripting. It begun in the 1950s and ‘60s were programmers subjected punch cards into mainframe operators and the machines used to ran in batch mode. The first scripting language was Job Control Language (JCL) and while they were very functional, their response time was very slow. (Delony, 2012) The idea of scriptable shells came into practice in the 1960s when programmers started developing interactive time-sharing systems. One of the earliest projects was MULTICS and late when some of the Bell Labs programmers left the project, they created another project called UNIX using their own system that they used in the MULTICS project. UNIX shells made it possible to do various complex tasks in one line of shell code using the ability to send the output of one program into the input of another. (Delony, 2012) In 1987, Larry Wall created Perl which was popular in the 90s for creating web-applications. Languages such as Python and ruby were invented and Python was the main rival of Perl. (Delony, 2012) Application areas In this section of the paper, we are going to categorize these languages in order to analyze them correctly. The four main categories are Command, Application, Markup and Universal scripting languages. Command scripting languages These are the oldest class of scripting languages appearing in 1960 when there was a great need for programs and task control managers. As we said before, the most famous of the earliest languages was JCL which was created for IBM OS/360 operating systems. We have also Sed and Awk which were text-processing languages. These languages were the first to include regular expression matching and later implemented into Perl. (A.Kanavin, 2002) Application scripting languages These languages were created in 1980s. Such a language was Microsoft-created Visual Basic and later crated its subset Visual basic for application programming. It emphasizes on user interface programming and component embedding. Later on, earlier languages such as Word Basic and Excel Macro Language were replaced by VBA as the main language for programming Microsoft office suite. Its influence spread and soon VBScript and LotusScript adapted these changes. Table 1: Command Scripting Languages In this class we have also JavaScript which is client parts of web-programming projects. This language has a few dialects such as Jscript and it was first introduced in the Netscape Navigator 2.0 browser. (A.Kanavin, 2002) Table 2: Command Scripting Languages Markup Languages Markup languages differ from the other languages due to the fact that they are not programming languages rather than special command words called ‘tags’ that markup parts of text documents which later used by programs called ’processors’ and had the ability to transform a text so it could be displayed in the browser or converting it to some other data format. The main use of Markup languages is the separation of contents and structures. In addition, they include formatting commands and interactive objects into documents. (A.Kanavin, 2002) In 1969, GML (Generic markup Language) was the first Markup language that was created by IBM. Based on the idea of GML, ISO created a standard called SGML in 1986. Among the Markup languages, TeX, HTML and XHTML became the most known languages. In 1979, Donald Knuth, created Tex which was basically designed precise description of how the documents look overlooking the complexity of the structure. This language aim at people who do not necessarily need to know how to program in contrast with Postscript, which was created by Adobe. In the scientific community, TeX achieved enormous popularity because it can fulfil the need for high-quality rendering of complex formulas. HTML is the basic language of the World Wide Web. It is basically an SGML application. XML is a simpler and streamlined version of SGML which emphasizes on transporting, storing data and exchange data between all kinds of systems. It is used for transforming complex data and hierarchical storing data. HTML was redefined in the terms of XML in 2001 and it was called XHTML. (A.Kanavin, 2002) Table 3: Markup Languages Universal scripting languages In this class, we have the languages that are well-known and were originally created for the UNIX environment. However, the goals were very different. The Perl programming language was made for report generation but it became known for its enormous popularity is the ability to write simple and efficient CGI scripts for forming dynamic web pages. First, Python was a tool for accessing system services of the experimental operating system Amoeba but later on, it became an object-oriented scripting language. Applications languages exist that are used by Microsoft.NET platform. Tcl was mainly used as an application extension but it was first created as string processing and close integration with Tk library. It differs from Perl and Python because it relies on C and C++ extensions. Other languages appeared with web services. PHP is the most popular language and is a combination of HTML and traditional programming procedures. (A.Kanavin, 2002) Table 4: Universal Scripting Languages Languages overview Python Python is an object-oriented language which provides high-level data structures. For example, associative arrays, dynamic typing and binding, etc. Python is a powerful programming language that has a flexible and simple syntax. In 1990, Guido van Rossum created Python and since then it is free and can be run on any computer. Python is modular by nature meaning that the core of Python can be extended by importing new extensions. Various standard extensions for operations such as script manipulations and Perl-like extensions are included in the Python distribution. Moreover, it has Graphical User Interface (GUI) generators, web-related utilities, operating system services, etc. Furthermore, we can create new extensions with new or old code. There has been a remarkable amount of extensions that have been created such as GADFLY, which is an SQL database manager written in Python, PIL the Python imaging library, FNORB, OmniBorker, Numeric Python, etc.(Sanner, 1999) Figure 1: â€Å"The molecule viewer application showing the protein Carmbin (1crn) with its secondary structure shown as a ribbon. The molecular surfaces corresponding to helix1 and sheet2 are displayed and colored using, respectively the â€Å"RASMOL residue† coloring scheme and the â€Å"by atom type† coloring scheme. Some pull down menus have been torn off to show the commands they provide. This set of commands can be extended dynamically by loading modules and commands from libraries.†(Sanner, 1999) Perl Perl was created in 1986 by Larry Wall and is basically a combination of C and various UNIX utilities and the convenience of shell scripting. Some of the languages strength is: easily accessing regular expressions, lists, associative arrays, the ability to treat any value as a string, resource management has become automatic. And if you want to create something, you can do it with many ways. This is called TIMTOWTDI (There Is More Than One Way To Do It). In order to handle complexity, you can use object-orientation. However, some languages force the use of it and usually add unnecessary complexity to almost every project. To tackle this problem, Perl added support for objects; it did so in a way that complex modeling can be achieved if needed.(Chip, n.d.) #!/usr/local/bin/perl $count = 0; while () { @w = split; $count++; for ($i=0; $i $s[$i] += $w[$i]; } } for ($i=0; $i print $s[$i]/$count, t; } print n; â€Å"This is a simple script that computes the average of each column in a table of data. It shows one common usage: read in the data and split each line directly to words and store these words in an array.† LISP The LISP language is designed for symbolic data processing using differential and integral calculus, electrical circuit theory, mathematical logic, game playing and other various fields of artificial intelligence. Since LISP is mathematical language, it is possible to give a complete description of it. It is different from other languages in three ways. First of all, it differs in the nature of the data. S-expressions are data arc in the form of symbolic expressions. Significant sub-expressions can be readily isolated due to the fact that S-expressions have indefinite length and a branching tree type of structure. The source of the language itself is the second difference from the other languages because it specifies in what way the S-expressions are to be processed. The third and final difference of LISP is that it can interpret and execute programs written in the form of S-expressions.(McCarthy, 1965) (defparameter *small* 1) (defparameter *big* 100) (defun guess-my-number () (ash (+ *small* *big*) -1)) (defun smaller () (setf *big* (1- (guess-my-number))) (guess-my-number)) (defun bigger () (setf *small* (1+ (guess-my-number))) (guess-my-number)) (defun start-over () (defparameter *small* 1) (defparameter *big* 100) (guess-my-number)) â€Å"This is a super simple number guessing game. Its also designed to illustrate what its like to work within a REPL.† Improving Web Application performance The need for Client-Side Scripting Nowadays, people expect that web applications function just like a windows application due to the fact that web applications have become more powerful and sophisticated. Basically, web applications reside the source code and assemblies and are processed on a web server. What a web server does is that it accepts an incoming HTTP request and then it returns the requested resource in an HTTP response. (Fote, 2013) The process of submitting an ASP.NET page to the server for processing is called PostBack. The HTML page is sent to the web server every time a PostBack happens. What happens is this: the server loads the page, it processes events and renders the new HTML back to the client but on a PostBack the entire page is refreshed. Due to the fact that large web applications consume large amount of view state, it can be very consuming for the client and as a result it will become a major problem for the web server. (Fote, 2013) Inside a client’s HTML page, there are embedded scripts which are called Client-Side scripting. What it does is that the code will be processed on the client machine rather than perform a PostBack to the web-server. Moreover, it is basically used for navigating on pages, date validation and formatting and the language that is used is JavaScript which is compatible to any browser. Client-Side scripting has two benefits. The first is that it is very fast and the second is that it requires fewer resources an the web-server. (Fote, 2013) Ajax Part of Ajax is an object called XMLHttpRequest. What Ajax does is that it makes possible the transfer of data between the browser and the server, using XMLHttpRequest API, without having to reload the web page. This object quickly become popular and web applications such as Google maps and Gmail were created using XMLHttpRequest to get new map titles without reloading the page. The requests that Ajax uses, are triggered by JavaScript code. This is what happens: your code sends a request to a URL, and then it receives a response, that triggers a callback function to handle the response. The rest of the code continues to execute while the request is being process due to the fact that the request is asynchronous.(â€Å"Ajax | jQuery Learning Center,† n.d.) Conclusion To conclude, server-side technologies have been greatly evolved over the years. Languages such as Python, HTML and Perl have raised the standards of scripting languages. Web applications have been improved with the help of Client-Side technologies such as Ajax which played a significant role in the improvement of web applications. I believe that in the future we will see new languages that will surpass the current languages by far. References A.Kanavin, An overview of scripting languages (2002) Lappeenranta University of Technology [online] Available at: http://www.sensi.org/~ak/impit/studies/report.pdf Date of Access: 25/3/2014 Ajax | jQuery Learning Center, n.d. Chip, n.d. The ascent of scripting languages. Geeks Are Sexy Technol. News. Delony, D., 2012. Scripting Languages 101 [WWW Document]. Techopedia.com. URL http://www.techopedia.com/2/28762/development/programming-languages/scripting-languages-101 (accessed 3.12.14). Fote, B., 2013. How Does Client-Side Scripting Improve Web Application Performance? [WWW Document]. Segue Technol. URL http://www.seguetech.com/blog/2013/02/07/what-are-the-pros-and-cons-of-client-side-scripting (accessed 3.13.14). J.Ousterhout, Scripting: Higher Level Programming for the 21st Century (1998) Tcl Developer Xchange [online] Available at: http://www.tcl.tk/doc/scripting.html Date of Access: 25/3/2014 McCarthy, J., 1965. LISP 1.5 Programmer’s Manual. MIT Press. Sanner, M.F., 1999. Python: a programming language for software integration and development. J Mol Graph Model 17, 57–61.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.