Ready for LAMP?
I promised about LAMP in my earlier article – The Open Source Revolution and so here am I with the details on LAMP.
We saw what is the Open Source revolution all about and why do we need to know it, if not follow it. Before I move on, I need to address one of the readers who has put a comment saying, “How many people using open source really need source code? A large number of bloggers are using Wordpress but how many of them actually modified the Wordpress code? Why always think open source?”
I knew this question was coming and I am happy it arrived. I’m overwhelmed to see some really attentive and inquisitive readers having their eyes down here! I could have replied to this question personally. But I deliberately want to let the other readers know this, even if their minds have been dormant to ask something similar.
Answering the first question, all of us actually need open source, either directly or indirectly. How? Open source is the primary reason which has led to the fall in the retail prices of closed source softwares. Also, it has put a check on the increasing rate of piracy around the globe. A lot of geeks and techies have moved to Open Source softwares. (Ubuntu says - Linux for human beings!)
Secondly, it’s not that every Wordpress user needs to modify the Wordpress code. But an access to the code enables the developers round the world to modify the same for you. Had it not been so, you’d have had to wait for the proprietors to anticipate your desires. It’s just that the community gives you – better ideas, better tools, better plugins. (Look how facebook has shared its code to the developers to come up with apps!)
Lastly, Open source is an alternative, you need not always think open source! I hope we all now know what open source is all about.
Moving on from where I left in my last post, I’ll describe what LAMP is all about. This term originated in the year 2001.
LAMP comprises of;
- Linux operating system.
- Apache web server.
- MySQL database application.
- PHP/Perl/Python programming language.
Even though the originators of these programs did not design them all to work specifically in close co-ordination with each other, the combination has become popular due to their great interoperability and low acquisition cost.
Let’s see what each of them are good at:
Linux: It is a free Unix-based operating system which was originally created by Linus Torvalds. Gradually it became a combined effort of the developers around the world. It has been developed under the GNU General Public License and the source code for Linux is freely available to everyone. The operating system is built on a kernel which is released from time to time. The current version being 2.6.22. The kernel forms the core of the Linux system and is the result of one of the largest cooperative software projects ever attempted. I’ll discuss the complete kernel development in one of my future posts in this series. There are several reasons for linux being powerful. One of them is the presence of command line interface (CLI) with a distinguished access priviledge between super user(root) and other users.
Apache web server: The Apache Web Server Project is an attempt to develop and maintain an open source HTTP server for today’s operating systems which include UNIX based systems and Windows NT. The aim of this project is to provide an efficient, secure and extensible server that provides HTTP services in sync with the current HTTP standards. It has been the most popular web server on the Internet since the mid of 1996.
For the uninitiated, a web server is operational basically for communication where there is a client-server flavor, the server process creates a socket and the client socket accesses the server through client socket techniques.
MySQL database application: It is a free, multiuser, multi-threaded SQL dabase management system which now has above 11 million installations. The program runs as a server providing multi-user access to a number of databases. The project was started by a swedish company called MySQL AB but was later accuired by Sun Microsystems, earlier this year. It is a community supported and a robust DBMS. It is the backend for several popular content management systems like;
PHP/Perl/Python: Scripting languages like Perl, PHP and Python are getting more and more popular. The reason being rapid prototyping capabilities which allow the development of complex software projects in a time-saving and efficient manner.
PHP has an awesome function library in web development arena. It is the basis for several commercial and non-commercial websites today. PHP is easy to learn and allows newbies to get productive pretty quickly. PHP programming instructions are directly embedded in the HTML page which happens to be more intuitive to the developers. However, talking beyond the Web, Perl and Python are more dominant than PHP.
Perl is one of the most popular scripting languages available today. Beside the development of web based applications, it is heavily used in the area of system admin automation on *nix based systems. Perl also caters the extraction and conversion of data due to its outstanding text processing capabilities.
Python has a clean, object-oriented architecture. Scripts written in Python have an easy to read structure and hence have easier maintenance. The basic version of Python already contains a whole bunch of useful modules. This is called the Python batteries included philosophy.
Another popular programming tool, which is being widely used in LAMP related development is Ruby. It is an interesting alternative to the well established script languages like Perl, PHP and Python. With the Ruby on Rails web framework, Ruby is getting more importance in the professional web development space.
This was a brief introduction to what is being used in the open source development paradigm. I shall now concentrate on the most interesting open source software ever developed - Linux. In the posts to follow, we’ll talk about this powerful operating system from scratch to kernel development! I shall also state the avenues in the industry for a linux-enabled human being and relevant certification courses in context with linux! Stay tuned.