This column is authored by Daria Khmelnitskaya, SEO Specialist, RubyGarage
The success of any startup lies in its foundation. It’s important to choose the right technologies, from an efficient platform to a fitting programming language. There are a lot of considerations that go into these decisions. You need to make sure that your chosen technology stack can support all required features and can easily be handled by available specialists.
In this article, we’ll be going over the most popular technology stacks to help you choose the right one for you.
What’s a technology stack?
A technology stack consists of software tools and programming languages used to build web or mobile applications. When choosing technology stack for your startup, it’s important to understand your objectives. Consider the following questions:
- What type of platform am I planning to develop my product on? Is my product a mobile app or a website? Or both?
- How fast do I need the product to launch and what resources do I have? Consider which open source tools are available in your industry. Existing resources can drastically reduce time-to-market and help you settle on the developer. Speaking of developers …
- Who will build the website/app? Review the available talent in your industry. Every tech stack requires specific specialists who are in high demand. Choosing a complex stack might limit your options and create obstacles in the future.
Now let’s look into what makes up a tech stack. A stack is a combination of technologies, including client-side (front-end) and server-side (back-end) programming of the website or app and programming languages.
The back-end is the core of the site that dictates how it works and consists of frameworks, databases, servers, programming languages, and so on. The interaction between the user and the server is carried out only through the front-end.
The most used frameworks and their corresponding languages, on the basis of which we can develop a back-end stack, are listed in the following table.
|Ruby on Rails||Ruby|
Let’s take a more detailed look at the basis of technology stacks building ‒ programming languages. Each language is better for particular situations; some are better for building websites, others for mobile apps. That’s why you need to understand what language a prospective technology stack is equipped with in order to move further.
Here are the top seven most-used programming languages based on GitHub pushes, according to Stackify:
- Java ‒ a general-purpose object-oriented programming (OOP) language; the most popular language for Android app development
- CSS (Cascading Style Sheets) ‒ another of the three basic languages that define the layout of HTML documents
- Python ‒ a widely popular OOP language used for general-purpose programming, compatible with nearly all operating systems
- PHP (Hypertext Preprocessor) ‒ a server-side scripting language used for general-purpose programming
- Ruby ‒ a general-purpose OOP language best known for its package manager, RubyGems, which helps create and share software libraries
- C++ ‒ a general-purpose OOP language known for its fast performance
Now that we know what tech stacks consist of and what to consider when choosing a suitable stack for your startup, let’s move on to two outstanding examples: the most prevalent technology stacks in web development, LAMP and MEAN.
LAMP is one of the most reliable and accessible technology stacks. Its components are supported by every major hosting provider and have been tested by time, which ensures security. In addition, LAMP and can be handled by most developers.
The LAMP stack consists of:
- Linux operating system
- Apache Apache web server
- MySQL database
- PHP or Perl or Python scripting languages
Advantages of LAMP
- Linux is used by most developers owing to its stability, security, and access to a lot of free open-source software.
- Apache is the most popular web server at the moment (used by PayPal, BBC, and Apple). It’s rich in features and can execute multiple processes and threads simultaneously.
- MySQL is used by many major websites (NASA, Youtube, Alibaba) and is reliable and scalable.
- PHP integrates easily with most databases and web servers.
Disadvantages of LAMP
- Linux doesn’t support many Windows programs and requires extensive knowledge of its processes.
- Apache can have performance issues under heavy traffic and is multithreaded, which even many senior developers have problems dealing with.
- MySQL is not as mature and is less feature-rich than other databases.
- PHP is an easy and flexible language to learn, but many unseasoned developers don’t follow best practices; there are many garbage apps written in PHP because of this.
The MEAN stack consists of:
- MongoDB database
- Express.js back-end application framework
- AngularJS front-end application framework
- Node.js back-end language environment
Advantages of MEAN
- Express.js is a flexible, non-opinionated framework that leaves most of the tool and library choices up to the developer.
- Angular provides a powerful abstraction layer for developing single-page applications and dynamic sites.
- Node.js is scalable, which allows you to adjust to growing traffic more effectively than with LAMP.
Disadvantages of MEAN
- MongoDB isn’t as reliable and stable out of the box as relational databases, and requires an experienced database administrator for production apps.
- Express.js is flexible and non-opinionated, requiring a developer to make a lot of arguably unnecessary decisions about tools and libraries.
- Angular is sometimes maddeningly verbose and complicated, and can be overkill for simple applications and websites.
In conclusion, the MEAN technology stack is innovative and cutting edge. Although the LAMP stack can be considered somewhat outdated, it’s reliable and secure. Both come with their upsides, but don’t be overwhelmed by the burden of choice. Try sorting out your priorities, then compare them to the arguments for both MEAN and LAMP. By applying your goals to each example, you’ll be able to settle on the right stack.