legramira
legramira

Reputation: 598

What is the difference between full stack and minimal in web framework

I am new programmer and very curious one, I will like to know the difference when there is a reference between full stack or minimal web framework, why makes a full stack framework a full stack and/or why a minimal web framework is minimal, e.g. Play(full) vs scalatra(minimal) in scala, thanks guys in advance.

Upvotes: 1

Views: 1084

Answers (1)

user4322779
user4322779

Reputation:

This is explained at http://en.wikipedia.org/wiki/Microframework where microframework is equivilent to minimal framework. It is a matter of what range of functionality is included where "full" implies relatively complete although perhaps "basic" functionality and "minimal" implies close to bare bones functionality. Scalatra is just a servlet container with a DSL (domain specific language) to add extensions while Play includes much more extensive core functionality as listed at http://en.wikipedia.org/wiki/Play_framework. The terms are relative, not precisely defined technically and often spun by marketing departments to reach target segments such as those looking for all-in-one frameworks for a new application or those looking for something tiny and light to plug into an application already developed.

It is interesting that although the Play Framework is touted as a full web framework, it is not exactly proper to call it a full stack framework because its vendor, TypeSafe, markets it as a component of the TypeSafe Stack which also includes Akka as the other major component (https://www.typesafe.com/blog/introducing-typesafe-stack-20). Akka is called a "toolkit for development of JVM based concurrent and distributed applications" (http://en.wikipedia.org/wiki/Akka_%28toolkit%29) however it could just as well be called a framework since it has long had official and important extensions (e.g. serialization) and could be extended ad hoc with a micro web server or servlet container such as scalatra.

For another example, Butterfly Components is called an "ultra lightweight Java application stack and tool box" (http://butterfly.jenkov.com/introduction.html) and not a framework because that is its inventor's preference and he does not appear to be concerned with marketing it. In this case "lightweight" is defined in terms of the number of bytes in all jars because "size does matter".

So it depends on historical, cultural, marketing and technical factors or individual preference what is called a framework, stack, toolkit, or tool box. I have developed applications just with Akka in Scala and Java for image processing and regard them as Akka applications because their architecture is primarily defined in the framework of Akka's capabilities within which the Scala and Java code falls into place. Note also, Miquel Garcia, a Scala compiler developer, refers to Akka as a "major Scala framework" in section 1.1 of his article at http://magarciaepfl.github.io/scala/#GettingStarted.

Upvotes: 2

Related Questions