잡담

Platform versus Framework

tomato13 2012. 2. 17. 15:32

http://www.hildeberto.com/2008/10/platform-versus-framework_12.html


This is a very generic definition, which doesn't help me at all. So, I went to Wikipedia, where I found a definition without any alert about its sources or impartiality: 

"In computing, a platform describes some sort of hardware architecture or software framework (including application frameworks), that allows software to run. Typical platforms include a computer's architecture, operating system, programming languages and related runtime libraries or graphical user interface."


Oh God! It mentions framework on the definition of platform. Is it some sort of recursive definition? Well, let's go to the framework's definition: 

"A software framework is a re-usable design for a software system (or subsystem). A software framework may include support programs, code libraries, a scripting language, or other software to help develop and glue together the different components of a software project. Various parts of the framework may be exposed through an API."


Well, better! Let's analyze the differences. First: framework refers only to software and ignores hardware totally. So, if you work with hardware it will never have a framework ;-). Second: a platform allows a software to run, which is not a framework requirement, since it is more focused on design. For instance, Java is a platform because it has a virtual machine that allows Java applications to run in many operating systems. on the other hand, Spring is a framework because it simplifies the way you design software, taking the responsibility for a lot of things to reduce the effort and the volume of code needed to implement the application. So, a platform doesn't aim to save your time, but to give you one or more possibilities to run your application.