Web development is a broad term for the
work involved in developing a web site for the Internet (World
Wide Web) or an intranet (a
private network). Web development can range from developing the simplest static
single page of plain text to the most complex web-based internet applications,
electronic businesses, and social network services. A more comprehensive list
of tasks to which web development commonly refers, may include web design, web
content development, client liaison, client-side/server-side scripting, web
server and network security configuration, and e-commerce development. Among
web professionals, "web development" usually refers to the main
non-design aspects of building web sites: writing markup and coding.
For larger organizations and
businesses, web development teams can consist of hundreds of people (web
developers). Smaller organizations may only require a single permanent or
contracting webmaster, or secondary assignment to related job positions such as
a graphic designer and/or information systems technician. Web development may
be a collaborative effort between departments rather than the domain of a
designated department.
Typical areas
Web Development can be split into many
areas and a typical and basic web development hierarchy might consist of:
- Client side coding
- Ajax Asynchronous JavaScript provides new
methods of using JavaScript, and other languages to improve the user
experience.
- Flash Adobe Flash Player is a ubiquitous
browser plugin ready for RIAs. Flex 2 is also deployed to the Flash Player
(version 9+).
- JavaScript JavaScript is a ubiquitous client
side platform for creating and delivering rich web applications that can
also run across a wide variety of devices. It is a dialect of the
scripting language ECMAScript.
- jQuery Cross-browser JavaScript library
designed to simplify and speed up the client-side scripting of HTML.
- Microsoft Silverlight Microsoft's browser
plugin that enables animation, vector graphics and high-definition video
playback, programmed using XAML and .NET programming languages.
- HTML5 and CSS3 Latest HTML proposed standard
combined with the latest proposed standard for CSS natively supports much
of the client-side functionality provided by other frameworks such as
Flash and Silverlight.
Server side coding
- ASP (Microsoft proprietary)
- ActiveVFP (open source)
- CSP, Server-Side ANSI C
- ColdFusion (Adobe proprietary, formerly
Macromedia, formerly Allaire)
- CGI
- Erlang, with Linux, Yaws, Mnesia, Erlang
(LYME) solution stack
- Groovy (programming language) Grails
(framework)
- Java, e.g. Java EE or WebObjects
- Lotus Domino
- Node.js
- Perl, e.g. Catalyst, Dancer or Mojolicious
(all open source)
- PHP (open source)
- Python, e.g. Django (web framework) (open
source)
- Real Studio Web Edition
- Ruby, e.g. Ruby on Rails (open source)
- Smalltalk e.g. Seaside, AIDA/Web
- SSJS Server-Side JavaScript, e.g. Aptana
Jaxer, Mozilla Rhino
- WebDNA (WSC proprietary)
- Websphere (IBM proprietary)
- .NET and .NET MVC Frameworks (Microsoft
proprietary)
The World Wide Web has become a major
delivery platform for web development a variety of complex and sophisticated
enterprise applications in several domains. In addition to their inherent multifaceted
functionality, these web applications exhibit complex behavior and place some
unique demands on their usability, performance, security and ability to grow
and evolve. However, a vast majority of these applications continue to be
developed in an ad-hoc way, contributing to problems of usability,
maintainability, quality and reliability.(1)(2) While web development can
benefit from established practices from other related disciplines, it has
certain distinguishing characteristics that demand special considerations. In
recent years of web development there have been some developments towards
addressing these problems and requirements. As an emerging discipline, web
engineering actively promotes systematic, disciplined and quantifiable
approaches towards successful development of high-quality, ubiquitously usable
web-based systems and applications.(3)(4) In particular, web engineering
focuses on the methodologies, techniques and tools that are the foundation of
web application development and which support their design, development,
evolution, and evaluation. Web application development has certain
characteristics that make it different from traditional software, information
system, or computer application development.
Web engineering is multidisciplinary and
encompasses contributions from diverse areas: systems analysis and design,
software engineering, hypermedia/hypertext engineering, requirements
engineering, human-computer interaction, user interface, information
engineering, information indexing and retrieval, testing, modelling and
simulation, project management, and graphic design and presentation. Web
engineering is neither a clone, nor a subset of software engineering, although
both involve programming and software development. While web engineering uses
software engineering principles, web development encompasses new approaches,
methodologies, tools, techniques, and guidelines to meet the unique
requirements for web-based applications.
Client
side + server side
- Google Web Toolkit provides tools to create and maintain complex
JavaScript front-end applications in Java.
- Dart provides tools to create and maintain complex JavaScript
front-end applications as well as supporting server-side code in Dart
(programming language).
- Opa is a high-level language in which both the client and the
server parts are implemented. The compiler then decides which parts run on
the client (and are translated automatically to JavaScript) and which
parts run on the server. The developer can tune those decisions with simple
directives. (open source)
- Pyjamas is a tool and framework for developing Ajax applications
and Rich Internet Applications in python.
- Tersus is a platform for the development of rich web applications
by visually defining user interface, client side behavior and server side
processing. (open source)
- However languages like Ruby and Python are often paired with database servers other than MySQL (the M in LAMP). Below are example of other databases currently in wide use on the web. For instance some developers prefer a LAPR(Linux/Apache/PostgreSQL/Ruby on Rails) setup for development.
Database
technology
- FileMaker
- Apache Derby
- DB2 (IBM proprietary)
- Firebird
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- SQLite
- Sybase
- WebDNA
- Redis
- MongoDB
- CouchDB
Practical
web development
Basic
In practice, many web developers will
have basic interdisciplinary skills / roles, including:
- Graphic design / web design
- Information architecture and copywriting/copyediting with web usability, accessibility and search engine optimization in mind
Advanced
- Some more advanced web developers will also have these
interdisciplinary skills / roles:
- GUI (Graphic User Interface) design
- Audio, Video and Animation processing & encoding (for web
usage)
- Flash Capabilities (animation, audio, video, scripting)
- Web content management system Deployment and/or Content management
infrastructure design, development and integration
- Web applications development, integration and deployment
- Web server stress testing (how much traffic can a web server
running a specific application endure before collapsing)
- Web site security analysis & testing
- Web site code optimization (which is an important aspect of search
engine optimization)
- Project management, QA and other aspects common to IT development