M8 Programming Technology Survey

Web Technology

Servers

Web Servers – in protocol terms these are HTTP servers. Main servers are Apache and variants, usually running under Linux, and Microsoft IIS,  running under Microsoft server operating systems.

Both systems can run under virtualization software. This enables companies like Amazon to sell “virtual hardware” allowing businesses to “rent” variable amounts of computing power from Amazon and pay a monthly bill. Operating system and server software can be configured and installed using Amazon utilities.

You have to have a very large company in order for running your own web servers to make sense. Companies you may be familiar with who use Amazon web server technology include Pearson and Blackboard.

HTML

The appearance of a web page is controlled by the Images on it (JPG, PNG, and GIF files), the HTML code, and the CSS  style sheets. Most code is generated today by programs which assist in this process. Adobe has a web page generating program called Dreamweaver which combines this elements into a web page and combines web pages into a web application. Other applications to develop web pages exist which will help develelop web pages with varying degrees of automation.

Applications

Web browser software standards include ways to run computer programs on the client machine downloaded from the server as part of the web page. A trivial example of this would be the code that checks an entered date for the correct format in a web form. You enter the date in a box, the computer tells you to enter a date in the format mm/dd/yyyy. The format will be checked by a program downloaded with the web page and running on your local machine (the client) rather than uploading the form to the server and having the server check the format.

A good explanation of how modern web applications work is here:

http://www.red27.net/2010/12/15/what-makes-web-applications-work/

An explanation of the environment which web application work in, that is the web server environment, is here:

http://www.red27.net/2010/12/28/web-and-database-servers-for-web-applications/

Web Languages

Languages which run in the browser environment, that is, locally on your computer, include Java, Javascript, VBScript (a variant of Visual Basic), Python, and ActionScript.  .

Programming Frameworks

Web programming presents unique challenges for programmers. The web environment does not provide easy ways of communicating information from the client to the server and remembers what it communicated. To help with this and other complexities in web programming, frameworks have been developed. Frameworks are collections of programs written in the languages of the framework which typically handle complex tasks in a uniform and correct fashion.  Different languages have different frameworks. Javascript can be used with a framework called Mootools. Ruby has a framework called “Rails”, as in Ruby on Rails.

Many of these frameworks were informally developed. The stability and reliability of these frameworks is a major problem for contemporary web developers. Bugs can be introduced in code when the frameworks have bugs or security issues.

Already Written Applications

“Fill in the blanks” applications exist which allow you to develop a website simple by writing text and uploading photos.Google has an application to do this, called Google Sites. Many other companies have similar “web sites which generate web sites”.  These applications work well for simple web sites.

Specialized web application programs exist which allow you to create a blog, or run a web store. These applications vary with the amount of customization they allow and the amount of sophistication they bring to the problem.

Server Programming Languages

http://www.red27.net/2011/01/26/top-5-web-application-languages/

 

 

 

API stands for application program interface. A good description of an API used in the real world is here:

http://www.slate.com/blogs/future_tense/2013/01/22/nextbus_a_broken_metrobus_arrival_app_demonstrates_the_problem_with_open.html

If you write a program or you have a data store, and you want to other programs to use your stuff, you write and publish an API. Other programmers study the API and use it to access your program.