Web
development is a broad term for any activity
to developing a web
site for the World
Wide Web or an internet.
This can include e-commerce
business
development, web
design,
web content development, client-side/server-side
scripting, and web server configuration. However,
among web professionals, "web development" usually
refers only to the non-design aspects of building
web sites, e.g. writing markup and coding. Web
development can range from developing the simplest
static single page of plain text to the most
complex web-based internet applications, electronic
businesses, or social network services. For
larger businesses and organizations, 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.Since
the mid-1990s, web development has been one
of the fastest growing industries in the world.
In 1995 there were fewer than 1,000 web development
companies in the United States, but by 2005
there were over 30,000 such companies in the
U.S. alone.[1] The web development industry
is expected to grow over 25% by 2010. The growth
of this industry is being pushed by large businesses
wishing to sell products and services to their
customers and to automate business workflow.
In addition, cost of Web site development and
hosting has dropped dramatically during this
time. Instead of costing tens of thousands of
dollars, as was the case for early websites,
one can now develop a simple web site for less
than a thousand dollars, depending on the complexity
and amount of content.[citation needed
]
Smaller Web site development companies are now
able to make web design accessible to both smaller
companies and individuals further fueling the
growth of the web development industry. As far
as web development tools and platforms are concerned,
there are many systems available to the public
free of charge to aid in development. A popular
example is the LAMP (Linux, Apache, MySQL, PHP),
which is usually distributed free of charge.
This fact alone has manifested into many people
around the globe setting up new Web sites daily
and thus contributing to increase in web development
popularity. Another contributing factor has
been the rise of easy to use WYSIWYG web development
software, most prominently WebDev, Adobe Dreamweaver,
Netbeans or Microsoft Expression Studio. Using
such software, virtually anyone can develop
a Web page in a matter of minutes. Knowledge
of HyperText Markup Language (HTML), or other
programming languages is not required, but recommended
for professional results. The next generation
of web development tools uses the strong growth
in LAMP, Java Platform, Enterprise Edition technologies
and Microsoft .
NET
technologies to provide the Web as a way to
run applications online. Web developers now
help to deliver applications as Web services
which were traditionally only available as applications
on a desk based computer. Instead of running
executable code on a local computer, users are
interacting with online applications to create
new content. This has created new methods in
communication and allowed for many opportunities
to decentralize information and media distribution.
Users are now able to interact with applications
from many locations, instead of being tied to
a specific workstation for their application
environment. Examples of dramatic transformation
in communication and commerce led by web development
include e-commerce. Online auction sites such
as eBay have changed the way consumers consume
and purchase goods and services. Online resellers
such as Amazon.com and Buy.com (among many,
many others) have transformed the shopping and
bargain hunting experience for many consumers.
Another good example of transformative communication
led by web development is the blog. Web applications
such as MovableType and WordPress have created
easily implemented blog environments for individual
Web sites.
Open
source content systems such as Alfresco, Typo3,
Xoops, Joomla!, and Drupal have extended web
development into new modes of interaction and
communication. In addition, web development
has moved to a new phase of Internet communication.
Computer web sites are no longer simply tools
for work or commerce but used most for communication.
Websites such as Facebook and Twitter provide
users a platform to freely communicate. This
new form of web communication is also changing
e-commerce through the number of hits and online
advertisement. [edit] Typical Areas Web Development
can be split into many areas and a typical and
basic web development hierarchy might consist
of: [edit] Client Side Coding * AJAX Provides
new methods of using JavaScript, server side
languages (eg ASP.Net or PHP) and other languages
to improve the user experience. * Flash Adobe
Flash Player is a ubiquitous client-side platform
ready for RIAs. Flex 2 is also deployed to the
Flash Player (version 9+). * JavaScript Formally
called ECMAScript, JavaScript is a ubiquitous
client side programming tool.
*
JavaFX is a software platform for creating and
delivering rich Web applications that can also
run across a wide variety of devices. * Microsoft
Silverlight Microsoft's browser plugin that
enables animation, vector graphics and high-definition
video playback, programmed using XAML and .NET
programming languages. [edit] Server Side Coding
* ASP (Microsoft proprietary) * ColdFusion (Adobe
proprietary, formerly Macromedia) * CGI and/or
Perl (open source) * C Server Scripts (TrustLeap
G-WAN, freeware) * Java, e.g. J2EE or WebObjects
* Lotus Domino * PHP (open source) * Python,
e.g. Django (web framework) (open source) *
Ruby, e.g. Ruby on Rails (open source) * Smalltalk
e.g. Seaside, AIDA/Web * SSJS Server-Side JavaScript,
e.g. Aptana Jaxer, Mozilla Rhino * Websphere
(IBM proprietary) * .NET (Microsoft proprietary)
[edit] Client Side + Server Side * Google Web
Toolkit provides tools to create and maintain
complex JavaScript front-end applications in
Java. * 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 lesser known 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. [edit] Database
Technology * Apache Derby * DB2 (IBM proprietary)
* Firebird * Microsoft SQL Server * MySQL *
Oracle * PostgreSQL * SQLite In practice, many
web developers will also have interdisciplinary
skills / roles, including: * Graphic design
/ web design * Information architecture and
copywriting/copyediting with web usability,
accessibility and search engine optimization
in mind
*
Project management, QA and other aspects common
to IT development in general The above list
is a simple website development hierarchy and
can be extended to include all client side and
server side aspects. It is still important to
remember that web development is generally split
up into client side coding covering aspects
such as the layout and design, then server side
coding, which covers the website's functionality
and back end systems. Looking at these items
from an "umbrella approach", client side coding
such as XHTML is executed and stored on a local
client (in a web browser) whereas server side
code is not available to a client and is executed
on a web server which generates the appropriate
XHTML which is then sent to the client. As the
nature of client side coding allows you to alter
the HTML on a local client and refresh the pages
with updated content (locally), web designers
must bear in mind the importance and relevance
to security with their server side scripts.
If a server side script accepts content from
a locally modified client side script, the web
development of that page shows poor sanitization
with relation to security. [edit]
Security
Considerations Web development takes into account
many security considerations, such as data entry
error checking through forms, filtering output,
and encryption.[1] Malicious practices such
as SQL injection can be executed by users with
ill intent yet with only primitive knowledge
of web development as a whole. Not only this,
but scripts can be exploited to grant unauthorized
access to malicious users trying to collect
information such as email addresses, passwords
and protected content like credit card numbers.
Some of this is dependent on the server environment
(most commonly Apache or Microsoft IIS) on which
the scripting language, such as PHP, Ruby, Python,
Perl or ASP is running, and therefore is not
necessarily down to the web developer themselves
to maintain. However, stringent testing of web
applications before public release is encouraged
to prevent such exploits from occurring.
Keeping
a web server safe from intrusion is often called
Server Port Hardening. Many technologies come
into play when keeping information on the internet
safe when it is transmitted from one location
to another. For instance Secure Socket Layer
Encryption (SSL) Certificates are issued by
certificate authorities to help prevent internet
fraud. Many developers often employ different
forms of encryption when transmitting and storing
sensitive information. A basic understanding
of information technology security concerns
is often part of a web developer's knowledge.
Because new security holes are found in web
applications even after testing and launch,
security patch updates are frequent for widely
used applications. It is often the job of web
developers to keep applications up to date as
security patches are released and new security
concerns are discovered.