LAMP

A LAMP (Linux, Apache, MySQL, PHP) stack is free and open source common web stack used for hosting web content. The LAMP server is an open source web platform that can be used to run dynamic web sites and servers. LAMP on cloud includes Linux as the operating system, Apache as the Web server, MySQL as the relational database management system and PHP as the object-oriented scripting language for development and deployment of high-performance web applications which require a solid and reliable foundation. (whatis.techtarget.com) There are also some derivatives of this stack:

  • LAMP (with Perl or Python instead of PHP)
  • LAMP (with MongoDB instead of MySQL)
  • WAMP (Windows as OS)
  • MAMP (Mac OS X as OS)
  • XAMPP (Any OS + Perl or PHP + FTP Server)- intended as development tool
  • LAPP (PostgreSQL as database).

Today, the products that make up the LAMP stack are included by default in nearly all Linux distributions, and together they make a powerful Web application platform. (https://www.webopedia.com/DidYouKnow/Computer_Science/LAMP.asp) According to Quora.com the Apache server running on Linux is an easy way of building a simple Web server, but the information provided by the Apache server will be "static" Adding interactive or dynamic components requires the use of a programming language, like Perl or PHP. These allow you to work with forms. For example, they let your users send you an e-mail or randomly select a page to visit. For truly interactive and dynamic Web sites, however, what you need is a way of building pages composed of information in a database. For example, imagine you want to create an online store along the lines of Amazon. You could do it using static pages. You could even use dynamic elements to let people add products to their basket and send their order to you, but as the number of products to be sold increases, the management overhead to control everything will become a nightmare. Furthermore, providing advanced functionality for customers, such as the capability to view past orders, can be impossible. This is where the power of the LAMP stack shines. By combining a Web server (Apache), dynamic components (using Perl, Python or PHP), and a database (MySQL) you can create a truly database-driven and dynamic Web site that is easy to update and provides rich functionality to support users.

Pros:

LAMP is kind of the dinosaur of web development, used by hundreds of thousands of companies and therefore maintained and supported very well. With endless modules, libraries and add-ons available it can adapt to company’s needs. Being Linux based, finding help for any topic in the large open source community is easy. MySQL is a very reliable and scalable solution. PHP is in version 7 and is also supported by a mature and big community. PHP is also very fast and integrates well with the rest of the stack. (cnet) You can control the server and decide which versions and software you install, so you don’t have to depend on the client’s browser. Best for companies who have lots of server-side tasks.

Cons:

Because it’s easy to learn, there are a lot of developers out there who are not following best practices and building bad apps. Starting with PHP is easy, but mastering it is hard. This is also true for security in these PHP apps. Some would also describe it as a script language instead of a real programming language because it’s not strongly typed and not pre-compiled. As for MySQL, other options are becoming more mature. NoSQL databases like MongoDB are popular among enterprises today due to its scalability.

MEAN

Compared to LAMP, the MEAN stack is fairly new. One of its biggest differences is that MEAN is not dependent on a specific operating system – Node.js takes care of server-side execution. The MEAN Stack is especially recommended for JavaScript enthusiasts – as it uses JavaScript at all levels. This also makes it preferred by new developers. (wiki). It is also free and open source, a JavaScript software stack for building dynamic web sites and web applications. MongoDB is a popular and flexible document based, NoSQL database, compared to MySQL’s relational database system. Angular helps build progressive and modern web apps.

Its components are:

  • MongoDB (Data persistence)
  • Express.js (server-side application framework)
  • Angular.js (client-side application framework)
  • Node.js (server-side environment)

Pros:

Using JavaScript as the primary programming language is a huge advantage. Everything can be set up quickly and done in JS, which makes it much easier to find developers, and LAMP developers typically know JavaScript as well. MongoDB is very popular for its easy schema-less data persistence and is faster than MySQL (for a lot of read requests). The fact that Angular is maintained by Google is also a big plus. It receives new releases and functions on a constant basis. Another huge advantage is the ability to easily build mobile or desktop apps, for example with Ionic. Code and components can easily be reused or added.

Cons:

Like all new technologies, MEAN’s glamour is creating some hype. Developers fall for this hype and build their apps in JavaScript, just because it’s trendy. Many of these libraries and frameworks are quite new, and new versions get released quickly, so maintaining app can become quite a hassle. Since many technologies disappear after a few years, sustainability can become an issue. It’s also harder to maintain a clean code base and follow best practices as app grows.

Picking a stack depends on many factors. We need to answer few questions and analyze further

  • What kind of web-application are we planning to create?
  • What is expected lifetime?
  • What technologies, infrastructure already available?
  • How easy is it to find developers to maintain the application?

(Ref: Wikipedia, Stackoverflow and Google)

blog

copyright©2020 Machoochi WebDev all rights reseved