I often find myself thinking of new and simple ways to explain some pretty complicated web development concepts to our clients. What I have found is that the concepts aren’t hard to grasp, but rather all the other terminology is really hard to keep straight. This is my attempt to explain some common terminology in today’s modern web world (as of January 2015) and my hope is that you can find it helpful too.
Browsers are the interpreters of the web. They request information and then when they receive it, they show us on the page in a format we can see and understand.
- Google Chrome - Currently, the most popular browser brought to you by Google
- Safari - Apple’s web browser
- Firefox - Open-source browser supported by the Mozilla Foundation
- Internet Explorer - Microsoft’s browser. You will most often here web developers complain about this one.
HTML is a markup language. It provides structure of a website so that web browsers know what to show.
CSS is a Cascading Style Sheet. CSS let’s web designers change colors, fonts, animations, and transitions on the web. They make the web look good.
- LESS - a CSS pre-compiler to make working with CSS easier and add functionality
- SASS - a CSS pre-compiler to make working with CSS easier and add functionality
4. Programming Languages
Programming languages are ways to communicate to computers and tell them what to do. There are many different programming languages just like there are many different lingual languages (english, spanish, french, chinese, etc). One is not better than the other. Developers typically are just proficient at a couple so they promote those more than others. Below are just some of the languages and links to their homepages
- Python -used by the Django framework and used in a lot of mathematical calculations
- Ruby - used by the Ruby on Rails framework
- PHP - used by Wordpress
- Go - newer language, built for speed.
- Objective-C - the programming language behind iOS (your iPhone), lead by Apple
- Swift - Apple’s newest programming language
- Java - Used by Android (Google) and a lot of desktop applications.
Frameworks are built to make building and working with programming languages easier. Frameworks typically take all the difficult, repetitive tasks in setting up a new web application and either do them for you or make them very easy for you to do.
- Ruby on Rails - a full-stack framework built using ruby
- Django - a full-stack framework built using python
- Ionic - a mobile framework
- Wordpress - a CMS (content management system) built on PHP. Currently, about 20% of all websites run on this framework
- Drupal - a CMS framework built using PHP.
- .NET - a full-stack framework built by Microsoft
Libraries are groupings of code snippets to enable a large amount of functionality without having to write it all by yourself. Libraries typically also go through the trouble to make sure the code is efficient and works well across browsers and devices (not always the case, but typically they do).
Databases are where all your data is stored. It’s like a bunch of filing cabinets with folders filled with files. Databases come mainly in two flavors: SQL and NoSQL. SQL provides more structure which helps with making sure all the data is correct and validated. NoSQL provides a lot of flexibility for building and maintaining applications.
- MongoDB - is an open-sourced NoSQL database and is currently the only database supported by Meteor.
- Redis - is the most popular key-value store. It is lighting fast for retrieving data but doesn’t allow for much depth in the data storage.
- PostgreSQL - is a popular open-sourced SQL database.
- MySQL - is another popular open-sourced SQL database. MySQL is used in Wordpress websites.
- Oracle - is an enterprise SQL database.
- SQL Server - is an SQL server manager created by Microsoft.
8. Client (or Client-side)
A client is one user of an application. It’s you and me when we visit http://google.com. Client’s can be desktop computers, tablets, or mobile devices. There are typically multiple clients interacting with the same application stored on a server.
9. Server (or Server-side)
Server is where the application code is typically stored. Requests are made to the server from clients, and the server will gather the appropriate information and respond to those requests.
The back-end is comprised of your server and database. It’s the place where functions, methods, and data manipulation happens that you don’t what the client’s to see.
Protocols are standardized instructions for how to pass information back and forth between computers and devices.
- DDP - is a new protocol created in connection with Meteor. The DDP protocol uses websockets to create a consistent connection between the client and the server. This constant connection let’s websites and data on those websites update in real-time without refreshing your browser.
- REST - is a protocol mainly used for API’s. It has standard methods like GET, POST, and PUT that let information be exchanged between applications.
An API is an application programming interface. It is created by the developer of an application to allow other developers to use some of the applications functionality without sharing code. Developers expose “end points” which are like inputs and outputs of the application. Using an API can control access with API keys. Examples of good API’s are those created by Facebook, Twitter, and Google for their web services.
14. Data formats
Data formats are the structure of how data is stored.
- JSON - is quickly becoming the most popular data format
- XML - was the main data format early in the web days and predominantly used by Microsoft systems
- CSV - is data formatted by commas. Excel data is typically formatted this way.
Thanks for reading and I hope you found something in here that gave you a new way to think about or talk about web technologies. This was not meant to be an all encompassing list, but rather a way to talk about all the great technologies we have at our finger tips.
And next week, we will tackle this mess (not really, my fingers hurt)