Programming Languages and Web Development
Basics of Programming Languages and Web Development
The central activity of software development is programming or writing actual code. This requires an in-depth understanding of one or more computer programming languages.
In web development, a certain number of specific programming languages are required, and several others are simply very popular. Each language carries with it its own peculiar uses, strengths, and weaknesses. Additionally, the tools available in each language go a long way to determining their overall suitability for a particular task.
Why Are There So Many Different Languages?
If you are just getting started with web development, you might find it overwhelming when you realize that you might have to learn more than one programming language — it is hard enough to learn one language! So, why are there so many different programming languages out there?
Different Types of Languages
The first reason for the multiplicity of programming languages is that very different types of languages are needed. Even if no two languages overlapped in terms of functionality (which isn’t the case), it would probably take a half-dozen different languages to cover all the various language needs.
The three most important types of languages for web use are:
- Markup Languages, which are used to annotate data and content with semantic information about that content.
- Style Sheet Languages, which are used by rendering engines to determine how to display data and content.
- Programming Languages, which are used to instruct a computer to do certain things.
Programming Languages
Programming languages are further divided into low-level languages and high-level languages. The latter are relatively human-readable — they tend to follow the structure and syntax of real languages.
Such languages need to be interpreted or compiled by the appropriate tools before the computer recognizes the commands provided.
Low-Level Languages
Low-level languages (which generally refer to machine code or assembly languages) are those that can be read by the computer with little to no additional assistance.
In addition to being difficult for humans to read, low-level languages aren’t typically portable between different types of systems. High-level languages usually are.
Do I Need More Than One Language?
As you can see, there isn’t really a way for you to do everything you need to do without utilizing multiple languages. Gone are the days when you can throw a simple website on the internet without focusing attention on the way it looks or its interactive features.
Luckily, the high-level languages in use today are much friendlier to developers than even the high-level languages frequently used in the years past.
Different Focuses of a Programming Language
Each programming language has a certain focus, which affects how it is used and what types of use cases make it the best option.
Website and Application Development
For example, PHP is designed to be embedded into HTML documents. This makes it particularly useful for building websites and web applications.
C and its derivatives (C#, C++) provides access to low-level hardware manipulation, which makes it particularly useful for foundational software like operating systems and language compilers.
Specialist Purposes of a Language
There are also programming languages that are specifically geared for a number of different type of specialty domains. Some of these include command-and-control, artificial intelligence, data analysis, and graphics processing.
You can certainly use a language for a purpose other than the one for which it is intended, but there are certainly downsides to doing so. We cannot make a categorical statement on what the ramifications of such a choice are, but they may include a sub-optimal feature set, lowered levels of performance, and so on.
Popular Web Languages
Because of a combination of requirements, popularity, and historical accident, certain programming languages have become especially associated with web development, rather than with desktop applications.
Such programming languages fall into two broad categories:
- Client-Side languages: Files written in client-side languages are sent directly to web browsers, which interpret the files and display the content to the end-user of a website.
- Server-Side languages: Server-side languages are programming languages that are used to build web applications which run on the server (the computer that hosts the website, not the computer of the person visiting it).
The Importance of Differentiating Client-Side vs Server-Side
However, these are not hard-and-fast categories. While there was, at one point, a strict separation of concerns between the front- and back-ends of apps and websites, there is increasing overlap between the two.
For example, some things that were once considered exclusively the domain of the front-end are now done on the back-end, such as certain types of rendering. Nevertheless, these two categories are useful for general classification of languages.
Client-Side Languages
If you are doing any type of client-side web or front-end development work, you will likely be using the following programming languages. These three options are essential.
Even if you do not become an expert in them, you will need to have some degree of proficiency when working in web development. If anything, these are commonly used in conjunction with server-side/back-end languages, not instead of such languages.
- HTML — Hypertext Markup Language
- CSS — Cascading Style Sheet
- JS — JavaScript
HTML — Hypertext Markup Language
Website pages and documents are written in HTML, which consists of base content combined with inter-linear tags that provide semantic information about the content they enclose.
CSS — Cascading Style Sheet
CSS provides a set of detailed instructions to the browser (or a printer) about how the content of an HTML document should be displayed. CSS includes details like font declarations, sizing, color, on-page placements, and layering precedence.
JS — JavaScript
JavaScript is a scripting language that can be used to provide rich web interaction inside a browser. JS is event-driven, responding to actions taken by the user (such as clicking, mousing, hovering, and typing).
JS scripts have full access to the document structure of their associated web page. Do not confuse JavaScript with Java, however. They are wholly different languages and have little to do with one another. Java is to JavaScript the way grapes are to grapefruits.
Components of a Functioning Outcome
You can think of these three languages acting together with the way different components of a housework together. HTML is like the foundation and the frame of the house.
CSS is what determines how the house will look — paint colors, windows types, and so on. JavaScript makes things interactive — in our house analogy, this would be items like the garage door opener, light dimmers, and so on.
Server-Side Languages
Almost any programming language (C#, Objective-C, etc.) can be used to build server-side applications, but a handful of specific languages have come to be especially popular for doing so.
Some of them were designed for the web (PHP, ASP), while others began as general-purpose languages that have been extended with a set of standardized tools for doing web development.
ASP
ASP — Active Server Pages — is an early attempt to provide dynamic scripting functionality into HTML documents. In some ways, it was a precursor to PHP. It has since been succeeded by ASP.NET.
ColdFusion
Technically an application development platform/framework, ColdFusion utilizes the scripting language ColdFusion Markup Language (CFML), ColdFusion is designed to make it easier for developers to connect HTML web pages to databases.
Java
Java is a general-purpose, object-oriented language used for desktop, web, and embedded applications on a wide variety of platforms. Has been used as a client-side scripting language, but this requires a browser plugin, so it is no longer common.
Its server-side usage has largely been replaced by the similarly named, but otherwise unrelated, JavaScript.
PHP
PHP — PHP hypertext preprocessor — is the most popular server-side scripting language in the world. PHP is behind the most popular content management systems like WordPress, Drupal, Joomla, and Mediawiki.
Python
Python is a popular general-purpose, object-oriented programming language that is popular for shell scripting, and popular for other uses among the type of people who really get into shell scripting.
Ruby
Ruby is a very popular, elegantly constructed, high-level programming language with an devoted user base. Can be used on its own as a general purpose language for desktop applications or shell-scripting.
For web use, it is usually used in the context of the Ruby on Rails application framework.
Other Notable Server-Side Languages
SSI
SSI — Server Side Includes — is a very simple server-side scripting language for including HTML document portions into other HTML documents.
VB.NET
VB.NET — Visual Basic .NET — A part of Microsoft’s .NET family.
Perl
Perl is known as a general-purpose programming language, particularly popular with hip Comp Sci geeks.
A Note About JavaScript
While JavaScript was seen as strictly a client-side programming language at one point, this is no longer the case. JavaScript can now be used in a wide variety of applications, including server-side/back-end ones, as well as databases, non-web programs, and mobile applications.
For example, you will sometimes see apps that utilize JavaScript on the front-end and back-end, as well as the middle database layer, as full-stack JavaScript apps.
Is JavaScript Popular?
Essentially, JavaScript is extremely popular in today’s web development world. It is an integral portion of what is often referred to as the MEAN stack, a full-stack JavaScript framework. The MEAN stack consists of:
- MongoDB, one of the leading NoSQL databases available
- Node.js, which is server-side JavaScript
- Express.js, a Node.js-based web application framework
- Angular.js, a web application framework used for creating interactive and dynamic front-ends
We do want to note that the MEAN stack is not the only option available — there are other options that might be better choices for your project.
Other Web Languages
The web isn’t just about websites anymore. As the internet increasingly encompasses devices, real-time gaming, virtual reality, and a whole host of other new technology paradigms, new languages are being created. These are being put into service to implement new ideas. Some that you might see include:
- TCL — Tool Command Language — Open source, powerful programming language often used for command-and-control applications.
- WAP/WML — Wireless Application Protocol & Wireless Markup Language – Commonly used for things like data transfer and presentation (the languages are deprecated, but you may still see it in use)
- VRML — Virtual Reality Modeling Language – Format for representing 30D items, such as vector graphics (has been superseded by other languages)
Should I Pick a Specific Language?
Generally speaking, you would try to avoid using such specific languages (otherwise known as domain-specific languages). The internet has certain de facto rules for which languages “should” be used and which languages should be avoided.
We do not think there is never a time where you would pick a specialized language — we just think that choosing commonly-supported languages means that you will:
- Have an easier time finding tools and services, such as web hosting, that work well with what you have built
- Have an easier time reaching a wide audience due to widespread support and acceptance of popular languages and technologies
How Does My Choice of Programming Language Affect My Web Hosting Choices?
Not all providers support all programming languages. If you are using the more popular options, such as JavaScript or PHP, you will not have a hard time finding a web host that fully supports your websites and applications.
If, however, you opt for a less-commonly used option, such as ColdFusion, you will have fewer options. Furthermore, the options that are available will typically cost more.
Go for Popular Options If Possible
If you can, try to pick widely-used, widely-supported options if at all possible. Pretty much all web hosting providers support CSS, HTML, and JavaScript.
It is up to you which you choose first (your web hosting provider or your programming language(s)), but it is important to make sure the two will play nice with each other.
Summary
There are a lot of programming languages out there, even for a subset of software engineering, such as web development. Different languages have different strengths and weaknesses, so the options that best fit your needs are dependant on what you are trying to do.
Hosting Frequently Asked Questions
-
How many programming languages are there?
There are hundreds of different programming languages and new ones are emerging every day. Some programming languages are even created as jokes, although sometimes those jokes become serious.
Programming languages generally belong to language families, having taken aspects of a “parent” language or influence from multiple languages. In such a way, you might look at the history of programming languages as an evolving ecosystem.
This history is deep, starting with Fortran and BASIC in the 1950 and 1960’s, which influenced most of the languages to ever exist. “C” was created in the 70’s which is one of the most influential languages, resulting in C++ as one of the most influential object-oriented languages.
-
What are the most popular programming languages?
The most popular programming language is “C” it is the root of almost all object oriented languages, runs the fastest, and for the most part is required for software development of operating systems.
Following that is JAVA, which is a very general purpose language which can run on any computer without the need for recompilation by using bytecode designed to run on a Java virtual machine (JVM), making it extremely popular for web applications, with reported use of over 9 million developers.
Following that is PHP and Javascript, which are very popular for web development, then C++ and Python, which are object oriented but with a lot of extra functionality built in. Finally Shell, Ruby, Objective C, C#, SQL and Perl are popular choices after that.
-
What is a programming paradigm?
A programming paradigm is a style of constructing the elements and structures of a language which describe how a language works or what it is used for. The most distinguished paradigms are imperative, declarative, functional, object-oriented, procedural, logic and symbolic.
A programming language can have more than one of those concepts, but generally focuses on a just a few at once. These paradigms have different ways of handling the “state” of a program, or controlling certain portions of data as declared values. Functional programming is useful for mathematical expressions and deals with using the power of recursion highly effectively.
Perhaps the most prolific paradigm though is object-oriented programming (OOP) which allows for the creation of “objects” as structural blueprints. Generally those called “classes,” which create unique instances of an object, each of which contain data (called fields) and special procedures (called methods). These objects, once constructed, can communicate with other objects and interact with the fields, or invoke the method in another object.
-
How does a compiler work? Do I need to use a compiler?
For most programming, you don’t need to know how a compiler works, just how to use one to debug code. A short synopsis of how a compiler works though, is that a computer has a certain “finite” number of “states” and that once put into motion, the system becomes known as an automata which operate with the states together as what is called a “finite state machine.”
While these terms sound exotic and difficult, understanding them will help understand how regular expressions work, and thus why programming languages often have very strict rules about syntax. Very often, a missing parenthesis or semi-colon can break software completely, automata-based compilers or script interpreters breaking is the reason why the code won’t work.
-
What’s the difference between a programming language and a scripting language?
A scripting language is a sub-set of programming languages which generally doesn’t need to be compiled. Javascript and PHP are great examples here, these languages work without the need to compile, they use pre-compiled software in a special way such that they’re recycling machine-level operations without the need to transform your scripts into byte-code in order to run.
This means the code won’t be as efficient in speed, but that it will take less time to write/debug since it doesn’t have to be compiled every time. Also, this is extremely useful for web applications, since Javascript code will be delivered to the user and will run automatically without needing to compile first. What is an Interactive Development Environment (IDE) and should I use one?
For programming languages which do compile (and even some that don’t) using an IDE can make software authoring happen a lot faster.
When writing programs from a text editor or command line, using a lot of “print” statements is necessary to debug issues. Within an IDE however, debug tools will print errors for you in many cases, and with the use of “intellisense” you can very often browse the methods of a class without needing to type out the whole name. Also, an IDE will use syntax coloring based on the language, highlighting different parts of the code with different colors, making it easier to read.
An IDE is mostly useful for server side code or desktop applications, for web development, text editors and browser tools are often faster and easier to work from.
-
What does “Client-side” versus “Server-side” mean? Why is it important?
Client-side means that the code will run on the device of a visitor to your web page or user of your application. Javascript, HTML, CSS are the most common types of scripting languages used for this purpose. Server-side code runs on the web application server, which is kept at a single domain name or IP address.
This code can be either be compiled or scripted depending on which technologies are used. These applications often receive input from application users, perform logical operations, and then send output operations back. Understanding how a client and a server work together is the first step in knowing how to build a web application.
-
Which languages are best for web application development?
There aren’t many real limits to what programming languages can be used for the server-code.
By use of a wrapper, one programming language might reference software written in another programming language, so different pieces can be strung together. However, from the most popular languages listed above, PHP and Javascript are perhaps the most dominant in web development, as part of the Linux Apache MySQL PHP (LAMP) stack. Java and C# both content for control of larger scale enterprise applications, while Python has a ton of powerful web frameworks as well.
Don’t let popularity be a deciding factor though if you are trying to optimize performance, but popularity can be useful for beginners looking for tutorials. There is no “best” language, otherwise there would only be one programming language.