Software Development Blog

LaSoft tech stack | Technology reviews

What is a tech stack?
A tech stack is defined as the set of technologies an organization uses to build a web or mobile application. It is a combination of programming languages, frameworks, libraries, patterns, servers, UI/UX solutions, software, and tools used by its developers.

Read more about the most popular technologies, that wildly used in LaSoft’s daily programming life and it’s comparing in the following tables.

TechnologyVersionCostAdvantagesDisadvantagesRecommendation
Frontend
Angular8,0Open sourceOne of the two most popular JS frameworks in a world. So no issues with finding someone who will understand.

Angular is suitable for both web and mobile development. In mobile development, however, a great share of work is done by Ionic.

Angular is a full-fledged framework for software development, which usually does not require additional libraries. All the above-mentioned functions – data binding, component-based routing, project generation, form validation, and dependency injection – can be implemented with the means of Angular package. As a results you have less flexibility, but you don't need to think about which libraries to choose for certain critical features

Two-way data binding means a less complicated data flow and less code, but it could also move components into undesirable states if data is being propagated from multiple sources.
Angular itself is a huge library, and learning all the concepts associated with it will take much more time than in the case of React. Angular is more complex to understand, there is a lot of unnecessary syntax, and component management is intricate. Some complicated features are embedded into the framework core, which means that the developer cannot avoid learning and using them.

Angular is a bit old fashioned. In order to create something, you need to understand the concept of modules, events, subscriptions, observers, dependency injection and typescript. While I'm a big fan of TypeScript myself, integrating TypeScript to React gives me much better results compared to Angular.

You'll need to learn TypeScript, directives, modules, decorators, components, services, dependency injection, pipes, and templates.
React.js16,12Open sourceThe most popular JS library in a world for front-end development. So there are no issues with finding someone who will understand the library or can quickly get it.

The learning curve for React is fast and easy for someone who already knows how JS fundamentals


React allows you to create something that runs much faster (because of virtual dom) and it allows you to use your existing knowledge of HTML/CSS.

React is used in both web and mobile development. The most popular framework for mobile development is to React-native

New updates of React is going to make it much better. Hooks pretty much fixes all the quirks you had before, and concurrent mode makes the application much faster.
The only downside of React is that, since it is very easy to pick up, anyone can create something. If the architecture of the project is not created by someone who has experience, it may be hard to maintain in the long run. However, the similar scenario also applies to Angular, only a bit less because Angular kind of gives you a basic architecture to start with. React is like a blank page.Having experience in both frameworks, we can honestly tell that React is the future. Popularity of React keeps growing while Angular keeps going down. This is also visible on some custom frameworks such as Ionic. They initially started with Angular, but they started switching to React.

In today's world, I would suggest React as the base framework for any project. I would stay away from Angular unless they make some drastical changes in the upcoming versions that can compete with React.
Backend
Python / Django3.8.1 / 3.0.2Open sourceThe most popular framework, template based by default, but can be easily modified to REST API. Has andmin part, ORM and migrations out of the box, and a huge amout of third party plugins. Designed to work with RDBMS. Perfect for database-centric apps which are mostly focused on CRUD operations.Can be customized to certain limits only, pure support of NoSQL databases.
Python / Flask3.8.1 / 1.1.1Open sourceLightweight and minimalistic framework, easily customisable for every need. Has dozens of third party plugins for almost all purposes.Third party libraries required for almost every project. Each project should be designed from scratch.
Python / aiohttp3.8.1 / 3.6.2Open sourcePerformance focused asyncronous framework. Provides about the same amount of featuers as Flask, but has less framework specific plugins. Can hadle huge amount of requests per second. No additional soft required to run the applicationThird party libraries required for almost every project. Each project should be designed from scratch. Has less plugins than Django or Flask.
Ruby on Rails5.2Open source- convention over configuration philosophy. rails framework is designed around this philosophy. it means everything works in default settings out of the box. and default settings is most of the time what developers want. and if they don't want the convention they can configure the default behavior. this philishiopy not only in the framework itself but also widely adopted in the ecosytem. there are many gems(libraries) for ruby/rails projects that just works out of the box. it is possible to build an authentication system in couple hours with all the needed functionality thanks to this philosophy that ruby libraries/modules adopted.

- It has a wide ecosystem and community. Good documentation, lots of books, articles and educational videos, screencasts.

- Ruby is a framework designed for developer happiness. It's syntax is highly readable and clean. Its core methods and libraries provide just the developers need. It is possible to do same work with less lines with Ruby compared to other languages.

- It is opinionated about how a web app should be structured and developed. So most of the rails projects follows similar patterns. That means a rails developer can adapt to a new rails project quickly.

- Ruby on Rails de-facto standard web framework for Ruby.
- Ruby runtime is slower than similar platforms like Node.js, JVM etc.
PHP / Laravel7.4.1 / 6.xOpen sourceOne of the most popular PHP web frameworks following the MVC design. Good documentation, powerful ecosystem. Laravel provides out of the box many mechanisms. There are elegant ORM, template engine (but is symfony template engine is better), authentication and sessions, routing, queue management, dependency injection, has built-in tool for command-line and many others. Also has support react.js and vue.js from the box. Via this framework can very fast build the big and safe application.Facades and statics and this with good DI.
Node.js13.7.0Open SourceNon-blocking I/O model that works asynchronously. It can keep many connections at the same time, support WebSockets. Rich standard library, many external libraries and off-the-shelf modules. Node.js is rapidly improving and has many frameworks.

- Uses javascript, most used language for web. Possible to write both frontend and backend in same language. And even share code between two end.

- Fast and higly flexible.
Node.js event loop and an asynchronously can be hard to understanding for good programing on this platform.

-Not a framework itself, just a runtime environment. So it has many web frameworks.

-That causes a couple problems. First there is no fully-feauted framework that all nodejs ecocsystem accept and use. Everyone is using different frameworks. And harder to find someone who has experience with a specific framework.

-Second, significant amount of nodejs projects only use express, koa etc. which is micro frameworks for only covers some functionality of a web app needs. Other functionality needed in the app is done by additional packages. That creates structure, organization and architecture problems in the app.

-Same thing also makes the adoptation process harder for new developers in the projects.

- Doesn't have packages that just works out of the box. Most packages which is needed for web apps only provide basic functionality and leave most of the work to developer. So it takes more time to develop features.
Database
MySQLOpen sourceOlder solution, easier to manage than PostgreSQL.Doesn't support modern SQL standarts
PostgreSQLOpen sourceDe-facto default RDBMS, fast and modern. Has some horizontal scalability issues
MongoDBOpen sourceFast, document oriented, higly scalableExpensive managed solutions

TechnologyAngularReact
Technology typeComponent-Based Framework using TypescriptUser Interface Library with a component-based architecture using Javascript
Data binding2-way data binding1-way data binding
SizeQuite large and since it needs to be shipped to the client side, it increases the initial load timeQuite small in size, especially when compared with Angular
Learning CurveQuite steep, given the number of features and options you have in AngularIt’s easy to pick up and learn
PerformanceComparable to React, Angular 2 and 4 are someFaster than Angular thanks to the Virtual DOM
SimplicityQuite complexFairly simple but takes some time to set up a project and configure everything
ScalabilityEasy to scale thanks to the power CLI and generation tools, It’s also used by many large companiesFairly easy to scale and is quite testable which facilitates the scaling procedure

Leave a reply:

Your email address will not be published.

Welcome to check our projects

We have described the most compelling solutions and approaches to meet challenges and advantages.

Share This