13

There are a couple of topics on Stack Overflow and posts on the web addressing this question:

However, none of them really help me understand the actual differences between a framework and a platform as I conceive of them.

Examples of what I mean by:

  • Framework: Rails, Django or Laravel.
  • Platform: Node.JS or Meteor

What exactly sets apart a framework from a platform in the above examples?

Community
  • 1
  • 1
Thibaud Clement
  • 6,607
  • 10
  • 50
  • 103
  • possible duplicate of [what is the difference between a framework and a platform](http://stackoverflow.com/questions/25028243/what-is-the-difference-between-a-framework-and-a-platform) – Quentin Jul 19 '15 at 17:28
  • As mentioned in my question, that other question does not address the exact same problem (different angle). – Thibaud Clement Jul 19 '15 at 18:10
  • Hi @Thibaud Clement. I'm voting to "Leave Closed" not because of the "potential dup" but because it's primarily opinion-based (same way I would proceed for the other if given the chance). – Tiago Martins Peres Oct 29 '19 at 14:57
  • My opinion: Django is a framework (like a library). But Nextcloud is a platform. In a platform you can install plugins without touching source code. – guettli Mar 02 '20 at 15:51

1 Answers1

19

Framework

A framework could be compared to a skeleton which needs to get some flesh attached to it. This programmatic flesh is usually provided by a specific application that links to and uses parts of the skeleton. So the actual work, ie. filling the holes and connecting the dots, is done by the application.

In programming, frameworks allow programmers to concentrate on the actual tasks they are faced with rather than to waste their time reinventing the wheel. Usually, frameworks are shipped with a set of predefined functions and classes. When using Spring (Java) or Symfony (PHP) for example, programmers do not need to think about things such as persistence, routing and session management too much because the work is done by standardized framework components.

Platform

A platform, on the other hand, provides both the hardware and the software tools needed to run an application - be it a standalone program or one which has been built on top of a framework. Mostly, it comes in the flavor of Platform-as-a-Service (PaaS), meaning that the code-basis of the platform software itself is not distributed or licensed. Rather, it is part of a hosted solution running in a cloud which can be accessed via APIs or GUIs.

Typically, platforms are built as scalable multi-tenancy systems, providing access to many users at the same time, thus using economies of scale to be able to offer services with an affordable price tag. Developers can then use platforms such as force.com or Google App Engine to build and run their own applications. In many cases, these applications are more light-weight than standalone programs because most of the business logic is contained in the platform.

Source: https://commercetools.com/blog/2015/11/19/framework-vs-platform.html

Janaka
  • 307
  • 3
  • 10
Llogari Casas
  • 942
  • 1
  • 13
  • 35
  • 1
    Thanks a lot for this explanation and the link. – Thibaud Clement Jul 19 '15 at 22:13
  • Suppose one team has built an onboarding solution ( using a workflow tool) which can onboard a X type of customers. Can we say this application to be a platform if it can host other Z type of customers which will use the workflow tool for a different usecase? The existing solution will provide shared services like email, notification etc. – Metalhead Aug 29 '22 at 04:47
  • 2
    Under my views, @metalhead, it all comes down to how much work would be needed to accommodate another set of customers. If you can essentially re-use the infrastructure, and just perform minor changes to accommodate that, you can likely call it platform. In fact, what you would do is "extend" that platform to be responsive to a further amount of customers. This is indeed quite a common procedure, in which a small platform becomes larger, and needs to accommodate new demands. If the aim is to present this to stakeholders, a good practice is to approximate timing and costs for these changes. – Llogari Casas Aug 29 '22 at 21:22