Every developer has a favorite technology stack. Some stacks boast unique benefits, while others appeal to the masses by leveraging widely-used programming languages. But what are the key differences between the most popular technology stacks floating around the web? Here is an evaluation of four popular tech stacks; JAMstack, LAMP, MEAN and .NET, and the advantages and disadvantages of each one.
What Is JAMStack?
JAMstack has become a major trend in web development. Originally coined by CEO of Netlify, JAMStack has been described as a “modern web development architecture” that is based on client-side JavaScript (J), reusable APIs (A), and prebuilt Markup (M). API-driven applications like Single-Page-Applications (SPAs), modern headless browsers such as Chrome and Firefox, expansive CDNs, and Static Site Generators (SSGs) are all built upon JAMStack. “JAMStack is a very general technical design approach and almost any SPA, [such as] Gmail, can be identified as a JAM follower.
LAMP, MEAN and .NET can easily cover the API and/or Markup parts of JAM,” explained Maxim Saplin, .NET department coordinator at McKinney ScienceSoft.
What are the Pros and Cons of JAMStack?
Solutions Architect Tim McCoy of alligatortek, said JAMstack is your “best bet” if you’re looking to implement continuous delivery. “[JAMstack] is focused on the front-end build and delivery, and promotes the use of third-party APIs for server-side functionality. There are also a number of prebuilt themes and site generators.” Additional benefits of JAMstack, according to McCoy, include cheap hosting, instant cache invalidation and increased security since database, servers and APIs are managed by third-party cloud providers. “[JAMstack provides] fast and cost-effective development and delivery. With this stack, your end user will always be looking at the latest content,” McCoy said. “JAM shines best in implementations of rapid content delivery, or apps that make use of a lightweight API.”
However, despite its ability to implement rapid content delivery, McCoy shared that there are some limitations that you need to keep in mind. “[JAMstack is] not so great for anything that requires heavy, dynamic features. It’s also highly dependent on third-party systems, so if they go down, you also go down. This can cause issues as you scale.”
McCoy added that for many of the SSGs, it will heavily rely on Markdown, which comes with a steep learning curve, which could lead to developers incurring a high total cost of ownership.
Related Article: What is JAMstack?
What Is LAMP?
As one of the oldest tech stacks, LAMP represents the foundation of a Linux hosted website. LAMP stacks are comprised of four different components, a Linux operating system (L), an Apache Web Server (A), a MySQL database layer (M) and a PHP scripting layer (P).
LAMP is regarded as an industry standard system for all Linux-based servers. “[LAMP provides] a specific set of frameworks, libraries and databases to be used when building and running a web application. LAMP is older than MEAN and it is traditionally associated with a dynamic HTML,” Saplin said.
According to Saplin, the programming language that comes with LAMP is PHP and Javascript.
What are the Pros and Cons of LAMP?
McCoy described LAMP as a “tried and true” tech stack, given that it has been “around for decades.” And by implementing suitable preparation, it is “highly secure. [LAMP is] a solid tech stack for startup companies with limited budgets, and works well for dynamic web app development,” McCoy said.
Another advantage, McCoy pointed out, is that it is “entirely” open source. “[With LAMP], there are no licensing fees required, and there are a lot of out-of-the-box options available. Developers have a reliable starting point and it takes minimal time to get the application up and running.”
McCoy added that the LAMP community is “massive” and users can readily access LAMP’s digital documentation.
The drawback with LAMP is that it has a learning curve. “Getting all the [LAMP] components to work together right can present a learning curve. This can lead to performance issues on high-traffic sites and applications with simultaneous users, as well as security issues,” McCoy said.
Related Article: Cloud Service Models (IaaS, SaaS, PaaS) + How Microsoft Office 365, Azure Fit In
What Is MEAN?
The MEAN stack provides a set of open-source components that, when combined, provide an end-to-end framework for developing dynamic Javascript web applications. The stack is comprised of a MongoDB (M) document database, Express.js (E) which is a back-end web application framework, Angular.js (A) which is a front-end web application framework, and Node.js (N), a JavaScript runtime environment.
Learning Opportunities
“MEAN is a recent solution in the SPA era. You can also employ a ‘mix’ of [LAMP and MEAN], for example, using LAMP to create back-end (API) and using Angular to build a web client — you may call it ALAMP if you want,” Saplin said.
What are the Pros and Cons of MEAN?
Since MEAN is primarily aimed at developing JavaScript applications, all of the components run on the same programming language, to which McCoy highlighted a significant benefit. “In MEAN, the developer can write both client and server-side code in JavaScript. [MEAN] is built on an MVC Architecture, and is built to scale. If your company has a large, non-relational data set, you may want to get to know the MEAN stack,” McCoy said.
However, if you are not familiar with JavaScript, McCoy said, then you will encounter a “steep learning curve.”
When choosing between MEAN and LAMP, since they are both open-source tech stacks, McCoy advised brands that whichever stack you choose, it will depend on the data you have in your databases. “If you have high-traffic and/or high-volume databases with data that isn’t too relational, then MEAN could be a solid option for you,” McCoy said.
What Is .NET?
.NET is an umbrella term associated with development tools and technologies that Microsoft created during the early 2000s. It includes applications for developing enterprise, mobile and web applications. “.NET web development is associated with such technologies as ASP.NET, WCF, WebAPI, Microsoft SQL Server and Windows hosting under MS IIS web server. Though now, after .NET Core was introduced, you can also use Linux, macOS with various DBs and web servers to host .NET web applications,” Saplin said.
The programming languages that come with .NET are C# and JavaScript, explained Saplin.
What are the Pros and Cons of .NET?
Saplin said that LAMP and MEAN were used for open-source and startup projects, which didn’t require Windows hosting, while .NET was strongly associated with enterprises. But since .NET became partially open source, the boundaries have now become “blurred.” “After .NET Core and MS turned to open-source and non-Windows systems, [you] can take whatever pieces you want from any of the stacks to build your system,” Saplin explained.
Saplin added that, “.NET stack perfectly fits JAMstack and one can use MS SQL server as a database, IIS or ASP.NET WebAPI as a server and Angular, React or Vue.js for the front end.”
McCoy noted that the decision to go partially open source has helped .NET thrive in the cloud. “.NET is great for rapid application development, and recent developments mean you can skip the IDE that was a deal-breaker for some in the past,” McCoy explained.
However, there is a caveat to keep in mind. “Developers who are not familiar with OOP [object-oriented programming] concepts might stumble a bit at the beginning. In addition, while more and more is added to .NET Core with each release, it’s still a subset of the full framework, and that will need to be taken into consideration when deciding on a framework or platform.”