If you work in the IT industry, these are the two most common ways of introductions you might have heard. If you read them out loud, they sound the same. If you dig deep about the words used in it, you will understand both of the companies have a different way to explain it. Certain words and phrases tend to overlap with each other during our conversations, literature and while we are selling or pitching our services as well. Platform and Framework are two of those words that people interchange most of the times.
Let’s try to highlight the difference between the two.
Wikipedia defines a framework as “an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. A software framework provides a standard way to build and deploy applications.”
In simple words, a framework acts as a skeleton in any application. To get the flesh attached to it, the code needs to be written. This programmatic flesh is typically provided by a piece of software which links to and uses parts of the skeleton. So the actual work – filling the holes and connecting the dots – is done by the application.
Frameworks were designed to lay down the basics for programmers so they focus on the actual task of building the applications rather than reinventing the ‘skeleton’ (pun intended)! The standardized framework components make it easy for programmers to work on the bigger picture. For example, when using Spring (Java) or Symfony (PHP), developers do not need to think about how to store their data and how to organize authentification too much because of the existing components of the framework.
Working with a framework is typically quite easy. Download the complete source code, install it in a specific environment – eg. a LAMP stack in the case of PHP frameworks – and start writing the individual code. When the application is ready for production, it is deployed to a hosting environment.
Examples for frameworks in the commerce industry are SAP Hybris (Java) and Spryker (PHP). If you are a Node.js fan, some node.js frameworks for commerce applications are, Hapi.js, Express.js, Socket.io and Koa.js.
If we used skeleton as a metaphor to define a framework, a platform can be seen as a base on which any software is built. It can be both hardware or software tools required to run any applications – be it a standalone program or any other diverse application. Platforms are usually provided as Platform-as-a-Service (PaaS), meaning that the code-base 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.
In the software world, platforms are often used as scalable multi-tenancy systems. They provide access to many users at the same time, who share the infrastructure as well as the software core. As a result, the cost for each user becomes quite affordable. 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.
Working with a platform typically results in a two-part structure: on the one side, there is the specific application which contains all the project-specific code and which is hosted on its own. On the other side, there is the platform running in the cloud, which receives data from, calculates and returns data to the application according to the platform algorithms. Developers might either decide to shape the communication between both sides by using either direct API calls or an SDK (see below) to do all the heavy lifting.
The general real-life examples of platforms are Windows, OS X, Android, iOS, Xbox One, PS4, etc. As mentioned before, it’s not only the software infrastructure which is essential here. If you’re a developer of iOS apps, you certainly use the software tools provided by Apple. But you also have access to millions of devices running this operating system, and an elaborate marketing and distribution mechanism built by Apple, making sure your application can be found and installed by the users.
In the commerce space, commercetools is an excellent example of a platform. Developers can build their customized apps – be it traditional commerce sites, mobile apps, voice skills, IoT apps etc. – on top of an already existing, flexible API. This API, in turn, is hosted on a scalable cloud environment. All that developers need to do is care about how their various interfaces look like and can be found by the users – the platform in the background does the heavy-lifting.
But what does platform has to do with the growth?
The answer is everything. Cloud commerce platforms handled 99.99% uptime annually and have had 4 years of 0 downtimes during Black Friday and Cyber Monday, the highest trafficked times of the year. Commerce platforms and frameworks are now an enabler of any retail company. The features like shopping cart, search more, categories, checkout etc have now been commoditized. A seamless foundation of back-end to front-end is necessary to provide a structure to any B2B or B2C e-commerce enterprise. The complex functions like inventory management, warehouse fulfillment, augmented reality, virtual reality, complexed CRM, customizable web design, integrated M-commerce (mobile commerce) functionalities are now being implemented.
Why do you need a next-generation commerce platform for your business?
The businesses nowadays are much more than just a website with products listed on it. The audience needs simplicity with complexed demands and it’s really hard for business owners to find the ideal mix without intimidating the visitor. Digitalization has created an environment where we can automate and streamline our conventional processes having advanced features with little or no human intervention.
The commercetools is your commerce architecture of the future with the most flexible, 100% cloud-based commerce API solution in the market. It separates the frontend and backend technology, provides 300+ API endpoints for your commerce projects and as a result what you get is seamless shopping experiences across all digital touchpoints.