Web Programming Languages Overview



Similar documents
Web Server Languages Summer Thomas A. Powell

Web Pages. Static Web Pages SHTML

Credits: Some of the slides are based on material adapted from

Web Cloud Architecture

Server-Side Scripting and Web Development. By Susan L. Miertschin

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

E-commerce. business. technology. society. Kenneth C. Laudon Carol Guercio Traver. Third Edition. Copyright 2007 Pearson Education, Inc.

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

Electronic Commerce Engineering

CSE 203 Web Programming 1. Prepared by: Asst. Prof. Dr. Maryam Eskandari

Web application development landscape: technologies and models

CSE 130 Programming Language Principles & Paradigms

Chapter 1 Programming Languages for Web Applications

Trollhättan, Sweden

How To Build A Web App

A review and analysis of technologies for developing web applications

IT3503 Web Development Techniques (Optional)

Short notes on webpage programming languages

SKILLS HIGHLIGHTS: W e b a n d G r a p h i c D e s i g n e r

Chapter 1. Introduction to web development

ActiveX AJAX ASP. AudioMP3

Introduction to web development

Web Development News, Tips and Tutorials

Deepak Patil (Technical Director) iasys Technologies Pvt. Ltd.

Application Servers G Session 2 - Main Theme Page-Based Application Servers. Dr. Jean-Claude Franchitti

Web Applications Come of Age

Web 2.0 Technology Overview. Lecture 8 GSL Peru 2014

ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT

E-commerce. Chapter 4. Building an E-commerce Web Site. Kenneth C. Laudon. Fourth Edition. Copyright 2007 Pearson Education, Inc.

Business & Computing Examinations (BCE) LONDON (UK)

Introduction to web development and JavaScript

Agenda. Summary of Previous Session. Application Servers G Session 3 - Main Theme Page-Based Application Servers (Part II)

Web Design Specialist

What Is the Java TM 2 Platform, Enterprise Edition?

WWW. World Wide Web Aka The Internet. dr. C. P. J. Koymans. Informatics Institute Universiteit van Amsterdam. November 30, 2007

JavaScript By: A. Mousavi & P. Broomhead SERG, School of Engineering Design, Brunel University, UK

IT3504: Web Development Techniques (Optional)

For Course Details, visit:

Class and Office Hours. Course Requirements. Concepts to Learn. CMPUT 499: Introduction

Preface. Motivation for this Book

Systems Analysis Input and Output 1. Input and Output

RIA Technologies Comparison

Fig (1) (a) Server-side scripting with PHP. (b) Client-side scripting with JavaScript.

Internet Technologies_1. Doc. Ing. František Huňka, CSc.

Syllabus INFO-UB Design and Development of Web and Mobile Applications (Especially for Start Ups)

EWD: Simplifying Web Application Architecture

How To Understand The History Of The Web (Web)

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.

Chapter 4: Networking and the Internet

Web Development Frameworks

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

ASP &.NET. Microsoft's Solution for Dynamic Web Development. Mohammad Ali Choudhry Milad Armeen Husain Zeerapurwala Campbell Ma Seul Kee Yoon

Chapter 12: Advanced topic Web 2.0

Outline. CIW Web Design Specialist. Course Content

Developing ASP.NET MVC 4 Web Applications MOC 20486

Basic Internet programming Formalities. Hands-on tools for internet programming

Maldives Pension Administration Office Republic of Maldives

CIM Courses for Creating Web Pages

A Comparative Study of Web Development Technologies Using Open Source and Proprietary Software

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Developing ASP.NET MVC 4 Web Applications

Performance Testing Web 2.0. Stuart Moncrieff (Load Testing Guru) /

Enterprise Mobile Application Development: Native or Hybrid?

ERIE COMMUNITY COLLEGE COURSE OUTLINE A. COURSE NUMBER CS WEB DEVELOPMENT & PROGRAMMING I AND TITLE:

AJAX The Future of Web Development?

Chapter 4. Learning Objectives. Learning Objectives. Building an E-commerce Web Site. Building an E-commerce Web Site: A Systematic Approach

Accessing Data with ADOBE FLEX 4.6

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

Curl Building RIA Beyond AJAX

Glassfish, JAVA EE, Servlets, JSP, EJB

How To Develop A Mobile App With Phonegap

WEB PROGRAMMING DESKTOP INTERACTIVITY AND PROCESSING

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development

Equipment Room Database and Web-Based Inventory Management

Visual WebGui for ASP.NET Ajax (and other Ajax) Web Developers Learn what makes Visual WebGui not just another Ajax framework

University of Phoenix - Prior Learning Assessment - Corporate Articulation BODWELL COLLEGE. Credit Recommendation Guide (CRG)

How To Understand Programming Languages And Programming Languages

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

A Performance Comparison of Web Development Technologies to Distribute Multimedia across an Intranet

maximizing IT productivity

ICS 434 Advanced Database Systems

Appendix N INFORMATION TECHNOLOGY (IT) YOUTH APPRENTICESHIP WEB & DIGITAL COMMUNICATIONS PATHWAY WEB & DIGITAL MEDIA UNIT UNIT 6

Modern Web Development From Angle Brackets to Web Sockets

Distributed Systems. 25. Content Delivery Networks (CDN) 2014 Paul Krzyzanowski. Rutgers University. Fall 2014

How To Write An Ria Application

Release 1. ICAPRG604A Create cloud computing services

4D as a Web Application Platform

1. Introduction. 2. Web Application. 3. Components. 4. Common Vulnerabilities. 5. Improving security in Web applications

Transcription:

Web Programming Languages Overview Thomas Powell tpowell@pint.com

Web Programming in Context

Web Programming Toolbox ActiveX Controls Java Applets Client Side Helper Applications Netscape Plug-ins Scripting Languages * JavaScript * VBScript CGI scripts and programs Server API Programs * ISAPI * NSAPI * Apache Modules Java Servlets Server Side Server-side scripting * Active Server Pages (ASP) * ColdFusion * PHP

Why do we need Web oriented PLs? There are numerous reasons that the Web is motivating a change in Programming too many moving parts developer education background Network, etc. The goal is not simply to create a single best of breed Web language Historically this do everything language has not done well and ended up doing nothing However, we do need to address some of the problems

Problem 1: Too Many Moving Parts A Web application has too many things that can go wrong First it is a client/server programming environment with significant network issues (see later slide) Second we find a multitude of client and server-side technologies used in a typical Web project Example: HTML/XHTML, CSS, JavaScript, some plug-ins and Active on client-side with Web server with PHP scripts, a database and maybe some Web server modules on the server-side Too many skill sets, rough edges between the technologies and interdependency problems that are not well understood Example: The HTML compression problem example Idea: Need more glue Document Object Model idea

Problem 2: The Network As a client-server programming environment network effects (latency, outage, etc.) can pretty much ruin our Web programs at least for a moment The Internet using TCP/IP doesn t guarantee end-to-end transmission times Real time follies Many hops = many points of failure Edge service idea -> introduces replication problems Simple ideas hit you left and right basic example with JavaScript <script> tag vs <script src= > external scripts Transitory error due to load time problems Idea: Network level exception handling Idea: Network protocols in the language directly or easily added

Problem 3: Security Given that we are talking about a public network you are never sure what end users are going to do and what they might send you Users are not to be trusted Form overloads, URL attacks, etc. We need to make security part of the application development process not something we add on at the end Idea: positive model security Idea: trust or lack of trust in the input/output aspect of the language

Problem 4: Content Concerns Like it or not Web programs are very much about content in fact one might argue that content is now more important than ever Most programmers and CS profs sell content and presentation short HTML, XHTML, XML, CSS and other presentation level technologies have to be mixed in and it makes a big mess Is that code in my template or is the template in my code? Rise of server and client scripting languages which intermix into markup languages easily Is <if> really any less powerful than if?

Problem 5: Multiple Platforms and Presentations How do you target to multiple browsers and devices with different computing and display possibilities? Ultimate portability problem The Java applet promise undelivered Adaptive technologies The fallacy of the ultimate transcoder This is a very hard problem and something that is being worked on at UCSD

Problem 6: Developer Knowledge There are more of them then there are of us How many programmers really are formally trained? What happened to the big productivity gains we should get from OOP? What kind of learning curve do we face with OOP, Java,.NET? Job security or business stupidity? The lessons of Visual Basic The rise of ColdFusion, PHP, etc. Idea: Simplicity makes sense but is often filled with danger (e.g. typing in JavaScript)

Other environmental issues Users still have too much control and can mess you up on purpose or on accident I m anti-view source! Browser preferences fun Where s install shield for the Web!? Ridiculous time and cost restrictions.com boom and hangover effects create failure guaranteed projects Much of this will come with time as the Web grows up and may not address by a part of a language, but some aspects may be included

Web Language Examples Java On the right track but promise not delivered Moving parts good Performance issues - so so / Pass Security looks reasonable - Pass Portability reasonable - so - so VM incompatability problems Networking interaction so-so Non-skilled developer failure Proof: what s JSP all about Content issue - failure

Web Language Examples JavaScript Originally not designed to do what it is doing now Moving parts fail at worst / so-so at best HTML / CSS / DOM troubles Networking better with AJAX but need to engineer your own extra stuff so fail Content interaction pass Developer issue so-so (easy and hard) Security not so good Portability surprisingly ok Issues: just client-side, object model and programming in the large, content protection

Web Language Examples PHP / ColdFusion / Simple Server-side Scripting Portability pretty good Network pretty good, but could be better Security no better or worse than most other langs - careless programming problems and no built-in help for developer Content integration pretty good - can be done well but can get messy Developer issues good - interestingly high productivity with these languages and uptake with novice programmers, downside some large scale system concerns Moving parts Fail Issues: Large language design problem, standards/syntax issue, lack of solid OOP foundation vs. use in big sites, just server-side, scalability concerns

Web Languages Contd. ASP.NET and J2EE platform provide the appropriate large system building framework Both platforms try to address the speed concerns that face the parsed-template scripting languages with a compile to IL or make a server module approach. Side-effect of portability tends to be a non-issue in any environment other than very large heterogeneous enterprise Client-side is still problematic Both attempt to encapsulate some scripting and UI logic in components Both environments suffer from complexity problem locking out smaller sites from reasonable use as well as causing some issues with rapid development (see Ruby) Current attack plan: IDE, partnership with PHP, etc.

New Directions? Rebol Rebol(www.rebol.com) REBOL is the first messaging language designed specifically for distributed Internet applications and data exchange across all devices. Protocols built-in read http://www.pint.com/index.html Read a Web page write/binary %logo.gif read/binary http://www.pint.com/images/logo.gif Fetched and saved an image send tpowell@pint.com read http://www.news.com Fetched a page and emailed to myself

New Directions: Rebol Contd. Link checking spider example http://www.reboltech.com/library/html/sitecheck.html Shows good markup and networking support Downsides syntax Client-side issues not really addressed properly popularity

New Directions: Water Water(http://www.waterlang.org/) XML oriented programming language Hmmm seen this before Tag oriented language http://www.waterlang.org/doc/tutorial_fast_intro.html Lofty goals Desire to intermix Java, XML, and content cleanly Web services focus Easy integration into HTML/XML templates Very new and not understood Maybe be more marketing than anything

New Directions: Super Client Side Macromedia (www.macromedia.com) ColdFusion MX & Flash = Rich Internet Applications Flash player with XML data passing over the network Upside: Flash player Downside: Flash player Constant: ActionScript = JavaScript Lazlo (http://www.laszlosystems.com/) Pretty similar to Macromedia approach Curl (http://www.curl.com) Of course all these loose out to AJAX which is the market leader but yet we now have concerns Integration with the server-side! Browser compatibility concerns well beyond what we did before

Conclusions No clear winner other than what we have to do tag soup + JavaScript + server side + etc. Can t force developers to embrace new platforms that easily Web sites as legacy apps already! Web programming is pretty hard because it is a messy intersection of content, presentation, logic, and the network Infrastructure improvements will help at the network level but still need to address planning and development of Web apps (see you in 134, 135,etc.)