Feb 10, 2025 10 min read

Frameworks: Choosing the Right Tools for the Job

Frameworks: Choosing the Right Tools for the Job
Table of Contents

Introduction

I'm gonna be perfectly honest here with you; I wrote this blog post more as a reference point for myself to come back to but also for anyone that is learning coding for the first time. There is only so much I can bare about print statements and concatenation. Those things are important but we are at a point in our history where we can actually build useful apps by ourselves in a week using frameworks. (Seriously everything is online. If you aren't a resourceful person then tech will be very difficult for you)

Is coding hard? It can be challenging because most of us are using python and it doesn't like spaces. What I actually recommend is starting from an architectural perspective and knowing what frameworks do what and then trickle down into the details. Everyone (almost everyone) usually does it the opposite where they teach you all the theory first then eventually maybe perhaps someday you build a simple snake game. I am telling you that you should start building an MVP (minimal viable product/application) first. Yes, you will not know what the heck you are doing but if you attack it with the mentality of ... "I'm going to figure this TF-out" you will build real-world actionable problem solving skills. Do it enough and you will become Neo in the Matrix ... If only.

Let's dive in.

Frameworks are pre-built structures that power our favorite websites, mobile apps, and enterprise systems (and I freaking love hem having a construction background, makes my life SO MUCH SIMPLER!) They’re the scaffolding behind the sleek user interfaces, the engines under the hood of machine learning models, and the lifelines of our cloud-based infrastructure. But with a myriad of options available, how do you choose the right one for your project? Obviously I am writing this for myself but we can have a little fun with this!

Let’s go on a journey through the landscape of modern frameworks, exploring not just what they are, but why they matter, and when they shine. Whether you're a seasoned architect or a curious beginner, this guide will illuminate the paths forged by the most influential frameworks in the industry today.


The Frontend Titans: React, Angular, and Vue.js

If the web were a stage, React, Angular, and Vue.js would be the lead actors, each bringing their unique flair to the performance.

React is like that versatile actor who can slip into any role effortlessly. Developed by Facebook, React introduced the concept of a virtual DOM and component-based architecture, making it a powerhouse for building dynamic, high-performance UIs. It’s the go-to for startups and tech giants alike, offering the flexibility to create everything from simple landing pages to complex single-page applications (SPAs).

But React isn't the only star in the show. Enter Angular, Google's robust, full-featured framework. If React is the cool, adaptable lead, Angular is the method actor—meticulous, structured, and perfect for enterprise-level applications. Its two-way data binding and dependency injection make it ideal for projects where maintainability and scalability are key.

And then there’s Vue.js, the indie darling of the trio. Lightweight and easy to integrate, Vue is perfect for developers who appreciate simplicity without sacrificing power. It’s the framework that quietly excels in the background, offering flexibility and a gentle learning curve, making it a favorite for both small projects and sophisticated apps.


Backend Powerhouses: Django, Flask, and Express.js

While the frontend frameworks dazzle users, the backend frameworks do the heavy lifting behind the scenes.

Django is the Swiss Army knife of web development. This Python-based framework follows the “batteries-included” philosophy, providing everything from an ORM to an admin interface right out of the box. It’s the perfect choice for developers who want to build secure, scalable applications quickly—think content management systems, social networks, and scientific platforms.

For those who prefer a minimalist approach, Flask offers a lightweight, unopinionated alternative. Also written in Python, Flask is like the blank canvas of web frameworks, giving developers the freedom to structure their applications as they see fit. It’s ideal for microservices and APIs where you need speed and flexibility without the overhead of a full-stack framework.

On the JavaScript side, Express.js reigns supreme. Known for its simplicity and performance, Express is the backbone of many Node.js applications, powering everything from RESTful APIs to real-time applications. It’s the framework of choice for developers who appreciate fast, unopinionated tools that get out of the way and let them code.


Enterprise Excellence: Spring Boot and .NET Core

When it comes to building enterprise-grade applications, Spring Boot and .NET Core are the heavyweights.

Spring Boot simplifies the often-complex world of Java development. It’s designed to get you up and running quickly with minimal configuration, making it perfect for microservices and large-scale enterprise applications. With features like embedded servers and robust security, Spring Boot is a favorite among businesses that need reliable, maintainable software.

Meanwhile, .NET Core brings Microsoft’s powerful ecosystem into the cross-platform world. It’s fast, scalable, and integrates seamlessly with other Microsoft services, making it a top choice for Windows-centric environments and enterprises looking for high performance and security.


Mobile Marvels: Flutter and React Native

The mobile development world has its own set of champions: Flutter and React Native.

Flutter, powered by Google, lets developers build beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. Its fast rendering engine and rich set of customizable widgets make it ideal for creating stunning UIs with smooth animations.

On the other hand, React Native leverages the power of React to build mobile apps with a native feel. It’s perfect for projects that require code reuse between web and mobile platforms, offering a balance between performance and development speed.


Machine Learning Maestros: TensorFlow, PyTorch, and Keras

In the realm of artificial intelligence and machine learning, frameworks like TensorFlow, PyTorch, and Keras are pushing the boundaries of what’s possible.

TensorFlow, developed by Google, is an end-to-end platform for building and deploying machine learning models. Its scalability and comprehensive ecosystem make it a favorite for both research and production environments.

PyTorch, beloved by researchers for its dynamic computation graphs and ease of use, is rapidly gaining ground in the industry. It’s flexible, intuitive, and perfect for experimentation and development.

For those new to deep learning, Keras offers a high-level API that simplifies model building. Running on top of TensorFlow, it provides an accessible entry point without sacrificing power, making it ideal for beginners and rapid prototyping.


DevOps Dynamos: Terraform, Ansible, and Kubernetes

Modern infrastructure wouldn’t be possible without the automation and orchestration tools provided by frameworks like Terraform, Ansible, and Kubernetes.

Terraform by HashiCorp revolutionized Infrastructure as Code (IaC), enabling developers to define and provision infrastructure using a simple, declarative language. Its multi-cloud support makes it indispensable for managing complex environments.

Ansible simplifies configuration management and application deployment with its agentless architecture and human-readable playbooks. It’s perfect for automating repetitive tasks and ensuring consistent environments across servers.

And of course, there’s Kubernetes, the king of container orchestration. Kubernetes automates the deployment, scaling, and management of containerized applications, making it the backbone of modern cloud-native architectures.


Big Data Behemoths: Apache Spark and Hadoop

Handling vast amounts of data requires powerful frameworks like Apache Spark and Hadoop.

Apache Spark offers fast, in-memory data processing capabilities that are perfect for large-scale analytics and machine learning tasks. Its ability to handle diverse workloads, from batch processing to real-time streaming, makes it a versatile tool in the big data ecosystem.

Hadoop, on the other hand, laid the groundwork for distributed data storage and processing. While it’s slower compared to Spark, Hadoop’s fault-tolerant architecture and scalability make it a reliable choice for managing massive datasets.


The Cloud Connection

No discussion of modern frameworks would be complete without mentioning their seamless integration with cloud platforms. Whether you’re deploying a Django app on AWS Elastic Beanstalk, orchestrating containers with Kubernetes on Google Kubernetes Engine (GKE), or managing infrastructure with Terraform across AWS, Azure, and GCP, the cloud amplifies the power of these frameworks.

The flexibility and scalability offered by cloud services enable developers to build, test, and deploy applications faster and more efficiently than ever before. And with tools like Ansible for automation and Prometheus for monitoring, maintaining these applications in the cloud becomes a breeze.


Ok So What?

A lot of words? I know what you're thinking ... table-time! (80's kids will get this one)

Common Frameworks in Industry

Frontend Frameworks

Framework Language Primary Use Case Industry Usage % Why It's Used Pros Cons Cloud Hosting Compatibility
React JavaScript Frontend Web Development 70% Component-based architecture, reusable UI components, strong community support Fast rendering with virtual DOM, rich ecosystem, reusable components SEO challenges without SSR, steep learning curve for beginners AWS Amplify, Vercel, Netlify
Angular TypeScript Frontend Web Development 40% Complete framework with strong typing, enterprise-level support Two-way data binding, dependency injection, robust CLI Steep learning curve, verbose syntax AWS Amplify, Azure Static Web Apps
Vue.js JavaScript Frontend Web Development 30% Lightweight, easy to integrate with existing projects Simple to learn, flexible, great documentation Less enterprise support than React/Angular, smaller ecosystem AWS Amplify, Netlify
Bootstrap CSS/JS Responsive Web Design 70% Simplifies responsive web design with pre-styled components Mobile-first design, extensive documentation, customizable Overused styles can make websites look generic, large CSS footprint Compatible with all static site hosts (Netlify, Vercel, AWS Amplify)
Tailwind CSS CSS Utility-First CSS Framework 45% Highly customizable, promotes consistent design systems Minimalistic, promotes custom designs, easy to maintain Initial setup complexity, inline styles can clutter HTML Compatible with all static site hosts (Netlify, Vercel, AWS Amplify)
Flutter Dart Cross-platform Mobile App Development 50% Single codebase for Android and iOS, fast UI rendering Fast development with hot reload, beautiful UI, strong community Large app sizes, Dart language learning curve Compatible with any backend (Firebase, AWS Amplify, Azure)
React Native JavaScript Cross-platform Mobile App Development 55% Leverages React for building mobile apps, native performance Reusable code, large community, native performance Performance issues for complex animations, dependency on native modules Compatible with any backend (Firebase, AWS Amplify, Azure)
Electron JavaScript Desktop Application Development 35% Build cross-platform desktop apps using web technologies Cross-platform, large ecosystem, rapid development High memory usage, larger app sizes AWS Amplify, Azure Static Web Apps, compatible with most CI/CD pipelines

Backend Frameworks

Framework Language Primary Use Case Industry Usage % Why It's Used Pros Cons Cloud Hosting Compatibility
Django Python Web Development (Backend + Frontend) 60% "Batteries-included", rapid development, security features Built-in admin interface, ORM support, highly secure Monolithic structure, less flexibility for microservices AWS Elastic Beanstalk, Heroku, Azure App Services
Flask Python Lightweight Web Applications/API Development 40% Minimalistic, highly flexible, great for microservices Lightweight, easy to learn, great for small projects Requires additional plugins for larger applications AWS Lambda (Zappa), Heroku, Google App Engine
Spring Boot Java Enterprise Applications, Microservices 50% Simplifies Spring framework setup, ideal for microservices Auto-configuration, embedded servers, wide enterprise adoption Complex for beginners, heavy memory usage AWS Elastic Beanstalk, Azure Spring Apps, Google Cloud Run
Express.js JavaScript Backend/API Development 65% Minimalist, fast, flexible for creating RESTful APIs Fast, middleware support, huge community Requires manual handling of many features like security AWS Lambda (Serverless Framework), Heroku, Vercel
Laravel PHP Web Development (Backend) 55% Elegant syntax, built-in ORM (Eloquent), MVC architecture Great documentation, built-in features like authentication and routing Performance overhead compared to lightweight frameworks AWS Elastic Beanstalk, DigitalOcean App Platform, Heroku
Ruby on Rails Ruby Web Development (Full Stack) 45% Convention over configuration, rapid development Fast prototyping, built-in testing framework, large community Can be slow for large apps, steep learning curve for scaling Heroku, AWS Elastic Beanstalk
.NET Core C# Enterprise Applications, Web APIs 50% Cross-platform, great for Windows ecosystems, strong enterprise support Cross-platform, high performance, scalable Less flexible for non-Microsoft environments, learning curve Azure App Services, AWS Elastic Beanstalk, Google Cloud Run
ASP.NET C# Enterprise Web Applications 45% Strong integration with Microsoft ecosystem, fast development High performance, built-in security features, great for enterprise apps Windows-centric (though .NET Core is cross-platform), steep learning curve Azure App Services, AWS Elastic Beanstalk, Google Cloud Run
TensorFlow Python Machine Learning/Deep Learning 65% End-to-end machine learning platform, widely adopted in the industry Scalability, wide range of tools, supported by Google Steep learning curve, verbose code Google AI Platform, AWS SageMaker, Azure Machine Learning
PyTorch Python Machine Learning/Deep Learning 50% Dynamic computation graphs, popular in research Easier to debug, flexible, strong community support Less mature than TensorFlow in production environments AWS SageMaker, Azure Machine Learning, Google AI Platform
Keras Python High-level Neural Networks API 40% Simplifies building deep learning models, runs on TensorFlow backend Easy to use, good for beginners, integrates well with TensorFlow Limited flexibility compared to lower-level frameworks Google AI Platform, AWS SageMaker, Azure Machine Learning
Apache Spark Scala, Python Big Data Processing, Analytics 50% Fast, general-purpose cluster-computing framework In-memory computation, scalable, strong ecosystem High memory consumption, requires expertise for optimization AWS EMR, Azure Databricks, Google Dataproc
Hadoop Java Big Data Processing 40% Distributed storage and processing of large datasets Scalable, fault-tolerant, large community Slower compared to Spark, complex setup AWS EMR, Azure HDInsight, Google Cloud Dataproc

Conclusion

Is this list perfect? Is anything in tech? You know those big huge outages or that thing that just happened with Playstation where they were out for 14 hours about people couldn't play their games? Yea, nothing is ever perfect.

I actually don't want to make too light of the situation because in certain sectors technology is the difference between life or death so speaking on more of a serious note ...

Frameworks are critical because they are tested and "usually" don't have a lot of security holes. Now I know what you people are thinking ... Of corse they do! Developers, leave back doors in code all the time! Yes, they do, but with a well-rounded framework, you have an extremely good starting point.

Do I personally know how to code everything from scratch? No, no I do not. Starting from scratch is like building a house and going down to cut the tree and cutting up the pieces of lumber. That just doesn't happen. You have a whole bunch of materials that you can use to your advantage, that is my recommendation to you here in this conclusion.

Of all the books and course I read on the subject very rarely do we see the 50k-foot view. If someone just started with the actual architecture of how the move common applications are built, it would be easier to fill in the gaps that are lower level details. Hope this blog helped you see that. Cheers!

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to Sage Ideas.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.