A lamp allows you to do things at night, when our ancestors gave up and went to bed. While that isn’t always a good thing (nobody should be Facebooking at 2am, let’s face it), it has its advantages (at least you can get dinner and the washing done after 6pm). The technology industry has a nasty habit of naming new technology after ordinary, everyday objects. And that’s why it is possible, in the IT industry, to write a Lamp application by the light of a lamp. So let’s talk about Lamp in the technology sense.
Lamp is not a single thing, but four different things, so it’s often referred to as a Lamp stack. We’ll go through each of those soon, but first let’s look at what you might need a Lamp stack for. Basically, Lamp stacks are the set of technologies required to create web applications. This is any website that has some kind of functionality to it, such as a social media site, an online shop, or a library catalogue. It is also what drives most mobile apps, but that requires a few other things to make them work properly in addition to the Lamp stack.
These types of web applications are often referred to as Software-as-a-Service (or SaaS), which means that you are interacting with a software application that lives on the internet (or "in the cloud"), instead of on your own computer.
At Codebots, our very first bot was Lampbot (and we know you’re not supposed to pick favourites, but Lampy is our favourite. Don’t tell the others). Lampbot’s job is to write SaaS web applications, using the technologies in a Lamp stack. So if what you want to create is a web or mobile application, then Lampbot is the bot for you.
For the more technically minded amongst you, let’s dig a little deeper into the technologies that go into a Lamp stack. The key to them is in the name:
Linux is a computer operating system, just like Windows or MacOS. Operating Systems (OS) are what commands the memory chips and processors and all the other bits of silicon and plastic in your computer. The OS tells your computer hardware what to do. While it is possible to create a web application on any operating system, large applications usually use Linux, which accounts for more than 80% of all web traffic.
Apache is a web server, which is software that allows a computer to direct traffic from the internet. It takes requests from users, and shows, or 'serves', them the content they request. When you type a web address in to your browser, it's a web server like Apache that goes and finds the web page and displays it to you.
is a database management system. Databases are used to organise data. You can add to and retrieve data from a database but, perhaps most importantly, you can draw conclusions from it by comparing different things. (We wrote more about databases here
). A database management system controls how each piece of data relates to every other piece. They help you manage access and control of that data. MySQL is no longer used as commonly as it once was. Variants of MySQL (like PostgreSQL and NoSQL) are common, as are new types of database management systems, like MariaDB and MongoDB.
PHP is a programming language that interacts with the web server to deliver content onto the page. You can write HTML code to display static information. PHP is used to create features that are more interactive than HTML alone. Developers write PHP code for the features they want to make. Web servers then interpret the PHP, and display it to the user on a web page. While PHP is a very common programming language for this purpose, many other languages can be used as well, such as Perl or Python.
All of these different kinds of technologies fit together to create a web application.
Before you ask Lampbot to write your web application, you will need to decide what you want it to be able to do. Lampbot already has the ability to create most of the functions you want, such as creating forms, displaying images, or producing documents. We call these functions 'capabilities', and you can choose which capabilities you want from a list, and switch them on. From there, you can customise the capabilities to look and operate exactly the way you need them to. This is all controlled through the Codebots platform. You can also write your own custom capabilities, if you want to do something unique and wonderful. Lampbot is great, but will never replace your own human creativity.