|
|
Compiled Assignments |
Brief Introduction to Web Programming LanguagesIntroductionI have chosen this topic for my assignment as to find out how many programming languages do exist in the field of developing World Wide Web applications. The idea came to my mind when I was thinking about writing my paper on HTML (Hyper Text Markup Language) and then I switched my idea to read about different web programming languages and write about each of them shortly. So that at the end I would have a short introduction to most of programming languages that are world wide used to develop web based applications. My search put me into a great surprise as I started to work on my topic, because there were plenty of web programming languages. I have picked up some important and useful information about each programming language which only shows how they are and how do they work and I have included the right links that could get the reader to further more details about each programming language; in case he/she was interested though. Before jumping into the introduction of each language, I have put some information on the characteristics that a web programming language should have. This search helped me identify various languages that are currently used and provided me some insight into the context in which the language is used. Characteristics of a Web Programming LanguageJust as there are various programming languages available and suitable for conventional programming tasks, there are also various languages available and suitable for Web programming. There is no reason to believe that any one language will completely take over the Web programming scene, although the varying availability and suitability of the current offerings is likely to give a preference of some over others. Java is both available and generally suitable, but not all application developers are likely to prefer it over languages more similar to what they currently use, or, in the case of non-programmers, over higher level languages and tools. This is OK because there is no real reason why we must concentrate on a single programming language for the Web any more than we must concentrate on a single programming language in any other domain.The Web does, however, place some specific limitations on our choices: the ability to deal with a variety of protocols and formats (e.g. graphics) and programming tasks; performance (both speed and size); safety; platform independence; protection of intellectual property; and the basic ability to deal with other Web tools and languages. These issues are not independent of one another. A choice which seemingly is optimal in one dimension may be worse in another. [Berners-Lee, CACM, Aug. 1994]. Programming Languages used for developing Web ApplicationsThe languages listed below represent various attempts to create the "ideal" Web programming language, usually by extending and restricting existing languages. Web programming languages have a variety of families: scripting languages, shell languages, mark-up languages and conventional programming languages. The resultant Web programming languages show their origin in their syntax, computational and data model, and implementation style.Ada95Ada95 is the latest version of the Ada programming language, which now supports object-oriented programming. Ada is used widely in government and industry. Programming the Internet in Ada95 describes efforts by Intermetrics, the principle of Ada compiler vendor, to retarget its compiler to generate Java byte-code, in the interest of making the vast body of Ada software suitable for the web. [10 May 07; www.adahome.com]AppleScriptAppleScript is Apple's object-oriented English-like scripting language and development environment for the Macintosh. It is bundled with Mac OS, and is used widely for all variety of scripting tasks on the Mac. Recently, it has been applied to web programming tasks. WebRunner enables the execution of AppleScript scripts embedded in HTML files to be executed on a client running Netscape. [10 May 07; http://product.info.apple.com/productinfo/datasheets/as/applescript.html]BEFBEF is an object-oriented PASCAL-like scripting language for describing behavior in VRML. [10 May 07; http://www.besoft.com/bef/]CMMCMM, now renamed ScriptEase WebServer Edition, is a streamlined version of the C computer programming language. C and CMM differ in one major area: memory management. With CMM all memory management is handled automatically, so there is no need to create buffers, declare variables, or cast data types. With this major exception, CMM and C are virtually identical. CMM supports all of the standard C functions and operators (including structures and arrays), and they are used in the same way as in C. [10 May 07; http://www.nombas.com/sewse/index.htm]DylanDylan is a dynamic object-oriented programming language with a pascal-ish syntax, and a lisp-ish semantics. It was designed at Apple's Cambridge lab in cooperation with Carnegie-Mellon University and Harlequin, Inc., and reviewed by its potential user community, mostly former Common Lisp programmers disappointed with C++. [10 May 07; http://www.cambridge.apple.com/dylan/dylan.html]GuileGuile is GNU's extension language library. It includes a virtual machine, a run-time system, and front ends for multiple languages (e.g. Scheme, Ctax (scheme with C syntax, Emacs Lisp (future)). Guile interacts at several levels with TCL/TK. TCL programs can call Guile programs written in any of the extension languages, like Scheme. The Guile Virtual Machine is similar to Java's. A byte-code interpreter is being developed. Guile is implemented in a mix of Scheme and C, and C and Scheme libraries are available to programmers using the extension languages. [10 May 07; http://www.cygnus.com/library/ctr/guile.html]HyperTalkHyperTalk is the English-like scripting language for Apple's HyperCard. It is described by its fans as similar to AppleScript, but simpler and more forgiving. Given the large number of HyperTalk-literate programmers in the Mac world, HyperTalk might very well be preferred by many over AppleScript and UserTalk for many web scripting tasks on the Mac. [10 May 07; http://matia.stanford.edu/~pinto/hc2.html]IconIcon is a full-featured programming language developed at the University of Arizona with a C-ish syntax and a SNOBOL heritage, making it particularly suitable for string processing, and, therefore, similar in this way to other languages being used for Internet programming. I've seen Icon mentioned in this context, but haven't come across any active efforts towards that end. [10 May 07; http://www.cs.arizona.edu/icon/]JavaJava is the leading competitor for a full feature programming language targeted at Internet applications. Its advantages are: familiarity (derived from C++), platform independence (will run on any platform which implements the Java Virtual Machine), performance (byte-code compiled faster than fully interpreted), and safety (downloaded applets are checked for integrity, and only interpreted by trusted Virtual Machine). Java is being aggressively distributed and promoted by Sun Microsystems, which developed it, and, evidently, sees it as a way to loosen Microsoft's and Intel's grip on the computer platform. Netscape, the leading web browser, now includes the Java VM, and Java applets are appearing on web sites everywhere. Even Microsoft, which is promoting Visual Basic Script for this purpose, has licensed Java from Sun and will be supporting it in its browsers. Sun is distributing a Java developer�s kit free of charge in the interest of promoting Java's widespread use. It recently announced the development of microprocessors optimized for Java for different markets (from cellular phones to high performance 3D "Network Appliances". [10 May 07; http://java.sun.com/]JavaScriptJavaScript (also named LiveScript) is Netscape's scripting language for integrating HTML, Netscape plug-ins, and Java applets. It is based on Java, and is mostly syntactically compatible, but differs from Java in that it is interpreted, rather than compiled, only supports certain built-in objects and user-defined functions, rather than full support for user-defined classes with inheritance and methods, it is integrated with HTML, rather than invoked from HTML files, weakly typed. JavaScript is meant to extend HTML to be more of a full programming language, but retaining HTML's ease of use. The principal criticism of Java programming is that it much more complex than HTML programming, more like C++ programming, and therefore is not as accessible to users as HTML. This is an issue that JavaScript attempts to address. [10 May 07; http://home.netscape.com/comprod/products/navigator/version_2.0/script/]KQML (Knowledge Query and Manipulation Language)KQML is a language for describing the exchange of information among agents. Agents are one of the paradigms for how knowledge is accumulated and processed in a distributed heterogeneous environment like the World Wide Web. Telescript uses the agent model. Standards for the interoperability of such agents are crucial to their use on the web, and KQML and its siblings provide such a standard. [10 May 07; http://www.cs.umbc.edu/kqml/]PerlPerl is described as a compiled scripting language. It combines elements of C with some UNIX scripting and text manipulation languages (e.g. sh, awk, sed) into a more complete language that includes the functionality of all into one consistent whole, and is compile able, and, therefore faster than its ancestors. Perl's supporters advertise its ease of use when comparing it to Java, especially. One of the motivations in developing Perl was to provide an alternative to C for tasks that were a little too hairy for an existing UNIX tool, or where performance was an issue. C was seen as unnecessarily low level, and C development too time consuming. Perl tries to delay the need to program at a lower level. It�s been very successful, especially among system administrators. Since CGI scripts are often built by systems folks, Perl are widely used for this, too. [10 May 07; http://www.perl.com/]PhantomPhantom is an interpreted language targeting large-scale, interactive, distributed applications such as distributed conferencing systems, multi-layer games, and collaborative work tools. Phantom combines the distributed lexical scoping semantics of Obliq with a safe, extended subset of Modula-3. Objects, static-typing, threads, exceptions, garbage collection, and an interface to the TK GUI toolkit, are included. [10 May 07; http://www.apocalypse.org/pub/u/antony/phantom/phantom.html]PythonPython is an interpreted, object-oriented language developed as a full-featured, but easy to use, scripting language, by Guido van Rossum at CWI in the Netherlands. Initially developed in a UNIX environment, Python is now available on PCs and Macs, and applications are portable across platforms. Python has developed a substantial, although still modest, following, as a scripting language, an application development language, and an embedded extension language. Python's design was most influenced by ABC, a little known language also developed at CWI. Python's syntax evokes C and C++, but doesn't stick too closely to those languages. [10 May 07; http://www.python.org/]ScriptXScriptX, a multimedia object-oriented programming language, was the principal technology produced by Kaleida Labs, a joint venture of IBM and Apple started along with Taligent and PowerPC. Kaleida Labs was shut down late in 1995, with ScriptX considered two years behind schedule and having lost a significant portion of its potential market to MacroMedia's Lingo. Release 1.5 of ScriptX and the associated Media Player (required to view ScriptX scripts) was announced in January, as control was passed to Apple. [10 May 07; http://devworld.apple.com/dev/tools&software/scriptx/text/scriptx.html]SmalltalkSmalltalk is a dynamic, object-oriented programming language with an integrated GUI development environment and execution environment. It has a considerable following. It was developed by Alan Kay and others at Xerox PARC in the early seventies. Smalltalk is the central language of the object-oriented programming community. The fully integrated nature of Smalltalk has been both strength and a weakness. It provides a very consistent conceptual model and look and feel across all components of the system. It has kept the Smalltalk world somewhat isolated from the rest of the application development world, although the rise of the object-oriented analysis and design, the success of C++, and the adoption of the object-oriented model as a standard for interoperability in many domains has brought Smalltalk into the mainstream in the last several years. Smalltalk's dynamic nature, and extensive GUI orientation, makes it a natural for Internet programming, but the Smalltalk community has been slow to capitalize on this. [10 May 07; http://st-www.cs.uiuc.edu/]TCLTCL (tool command language) is a widely used scripting language generally used in conjunction with the TK GUI library for building quick and easy X windows GUIs on UNIX platforms, but also valued for the ease by which C libraries can be imported and referenced from TCL. TCL/TK was developed by John Ousterhout at UC Berkeley. Development continues at Sun Labs under his leadership. It's interesting to see this going on at Sun, also Java's home. Java is probably Tcl's principle competitor. John Ousterhout addresses this in The Relationship Between TCL/TK and Java. His point is that it�s true that both languages are appropriate to Internet programming, but they are different, have different strengths, and are likely to complement each other. TCL is higher level, quicker to program, and slower to execute; Java is lower level, harder to program, quicker to execute. [10 May 07; http://www.sunlabs.com/research/tcl/]VBScript (Visual Basic Script)VBScript is Microsoft's planned candidate for an Internet scripting language. It is expected in mid-1996. It is a subset of Visual Basic, Microsoft's popular visual programming language, with no GUI building capability, with unsafe operations removed, and with access to other applications via OLE. VBScript source code is embedded in HTML, and downloaded to the client in the HTML file, where it is compiled and executed in association with its runtime libraries. Microsoft envisions an OLE Scripting Manager on the client-side with which browsers interact with a specified interface. The Scripting Manager would manage compilation and invocation of downloaded scripts in Visual Basic Script or any other scripting language. Microsoft also intends to support Visual Basic and Java in this way. The idea is to make multiple language runtimes pluggable into browsers. Microsoft intends to obtain the cooperation of various groups and vendors in defining and standardizing this interface. Microsoft intends to support VBScript on its various Windows platforms and on the Macintosh and will license the technology to UNIX vendors. [10 May 07; http://www.microsoft.com/vbscript/]VRML (Virtual Reality Modeling Language)VRML is a specialized language for describing 3D worlds and movement through them. VRML is the standard language in describing such scenes in the context of the Internet and the World Wide Web. As more and more sites include 3D simulations, VRML will become more universal. VRML, like HTML, is downloaded from a server and executed using an interpreter on the client, just as a Java applet might be downloaded and executed. Netscape now supports such an interpreter, and there are many others. [10 May 07; http://www.sdsc.edu/vrml/]WebScriptWebScript is the object-oriented scripting language for NeXT Software's WebObjects development environment for web-based applications. WebScript is an interpreted subset of Objective-C, in much the same way that JavaScript is a subset of C++. WebScript, however, is used in WebObjects primarily for web server scripting, where CGI and Perl might be more commonly used, rather than for client-side applets. WebObjects is expected to support Java and JavaScript on the client side, and JavaScript on the server side, in addition to WebScript, which may relegate WebScript to the scripting language of choice only for Objective-C users. [10 May 07; http://www.next.com/Pubs/Documents/WebObjects/DevGuide/WebScript/WebScript.mif.book.html]Only NamesAs the number of pages were getting increased than those of assigned, here after I have only put the names and their related URL links for further studies:CGI (Common Gateway Interface) [10 May 07; http://hoohoo.ncsa.uiuc.edu/cgi] Eiffel [10 May 07; http://www.eiffel.com/eiffel/] GEL (Gain Extension Language) [10 May 07; http://mail.tritonsvc.com/gain/gain3.html] Glyphic Script [10 May 07; http://www.glyphic.com/glyphic/codeworks/ovecrview3.html] Linda [10 May 07; http://www.cs.yale.edu/HTML/YALE/CS/Linda/linda.html] Lingo [10 May 07; http://www.mediaband.com/lingo/index.html] Lisp [10 May 07; http://www.cis.ohio-state.edu/text/faq/usenet/lisp-faq/top.html] Common Lisp [10 May 07; http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/lang/lisp/0.html] Emacs-Lisp [10 May 07; http://www.cs.indiana.edu/elisp/elisp-intro.html] Logo [10 May 07; http://158.38.33.18/~dennisgl/logo/logo-faq.html] ML [10 May 07; http://www.cis.ohio-state.edu/hypertext/faq/usenet/meta-lang-faq/faq.html] Modula-3 [10 May 07; http://www.research.digital.com/SRC/modula-3/html/home.html] NewtonScript [10 May 07; http://www.amug.org/amug/sigs/newton/nwtfaq.html.txt] Obliq [10 May 07; http://www.research.digital.com/SRC/Obliq/Obliq.html] REXX [10 May 07; http://www2.hursley.ibm.com/rexx/] SDI [10 May 07;http://www.spyglass.com:4040/newtechnology/integration/iapi.htm] Self [10 May 07; http://self.smli.com/] SIMPLE [10 May 07; http://www.crystaliz.com/logicware/w395rev2.html] Sloth [10 May 07; http://www.crystaliz.com/Sloth/sloth.htm] SMSL [10 May 07; http://www.cs.tu-berlin.de/~mfx/h/smsl.html] Spynergy [10 May 07; http://205.229.151.4/spynergy/spynergy.htm] Telescript [10 May 07; http://www.genmagic.com/Telescript/] Tycoon [10 May 07; http://idom-www.informatik.uni-hamburg.de/Projects/Tycoon/entry.html] UserTalk [10 May 07; http://www.scripting.com/frontier/manual/chapter04.html] Viola [10 May 07; http://xcf.berkeley.edu/ht/projects/viola/violaHome.html] References:
|
| JavaScript | Games | Books | OldGold | Hobbies | Gallery | Contacts | Site Map | About Me |
© Hamid Rahman M
Computer Science Faculty
Herat University®