{"id":8254,"date":"2020-12-04T11:15:02","date_gmt":"2020-12-04T10:15:02","guid":{"rendered":"https:\/\/www.pccube.com\/?p=8254"},"modified":"2021-02-16T12:27:42","modified_gmt":"2021-02-16T11:27:42","slug":"cose-un-framework","status":"publish","type":"post","link":"https:\/\/www.pccube.com\/en\/cose-un-framework\/","title":{"rendered":"What is a Framework"},"content":{"rendered":"<p>Introduction:<\/p>\n<p>Very often in the front-end community we dispute which would be the best framework, discussing the various differences and the advantages, that one or the other framework brings to our team. But perhaps, even before discussing the choice, we will all have to agree on the definition of Framework and on the difference with libraries. The question may seem silly, almost trivial. What really is the answer to the question &#8216;Is React a Framework or a Library?&#8217;.<\/p>\n<p>&nbsp;<\/p>\n<p>Framework is an English word which translates into Italian with platform or structure. It is a translation that refers to construction or architecture, but inserting it in the IT context indicates a structure in which something is built around.<\/p>\n<p>Another definition of Framework that can help to understand its actual meaning is: a series of architectural decisions chosen by the team in the making and or development of a project.<\/p>\n<p>By choosing a framework indirectly, we are delegating architectural decisions to the framework itself. Going more specifically, by choosing a framework we are constraining our choices. For example which language to use or whether to be reactive (showing response), in the case of front-end frameworks like Angular we are bound to use TypeScript or the RXJS (reactive Extension) library.<\/p>\n<p>It could be argued that the Framework calls our code which in turn invokes and uses Libraries.<\/p>\n<p>Taking Date-fns for example: it is a very used library, but at the same time easily replaceable. Unlike the framework which, even if it is actually replaceable, requires a much longer and more complex process.<\/p>\n<p>Some examples:<\/p>\n<p>Vue.js is defined as more than one framework<\/p>\n<p>&nbsp;<\/p>\n<p>Moment is a library<\/p>\n<p>Three.js is a difficult library to replace<\/p>\n<p>Is React instead a framework or a library?<\/p>\n<p>React was born as a library, but behaves like a framework.<\/p>\n<p>Just think that in React there is the rule &#8220;everything is a component&#8221; that binds the developer to use certain components, such as the router.<\/p>\n<p>Therefore, we can say that React is a &#8220;masked&#8221; framework.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Codemotion week<\/p>\n","protected":false},"author":8,"featured_media":7527,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42],"tags":[],"class_list":["post-8254","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-whats-up"],"translation":{"provider":"WPGlobus","version":"3.0.0","language":"en","enabled_languages":["it","en"],"languages":{"it":{"title":true,"content":true,"excerpt":true},"en":{"title":true,"content":true,"excerpt":true}}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is a Framework - Pc Cube<\/title>\n<meta name=\"description\" content=\"Codemotion week: What is a framework? Read the article.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pccube.com\/en\/cose-un-framework\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is a Framework - Pc Cube\" \/>\n<meta property=\"og:description\" content=\"Codemotion week: What is a framework? Read the article.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pccube.com\/en\/cose-un-framework\/\" \/>\n<meta property=\"og:site_name\" content=\"Pc Cube\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-04T10:15:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-16T11:27:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.pccube.com\/wp-content\/uploads\/2020\/11\/codemotion_2020_1920x1080.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1922\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"PC Cube\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"PC Cube\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pccube.com\/en\/cose-un-framework\/\",\"url\":\"https:\/\/www.pccube.com\/en\/cose-un-framework\/\",\"name\":\"What is a Framework - Pc Cube\",\"isPartOf\":{\"@id\":\"https:\/\/www.pccube.com\/en\/#website\"},\"datePublished\":\"2020-12-04T10:15:02+00:00\",\"dateModified\":\"2021-02-16T11:27:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.pccube.com\/en\/#\/schema\/person\/3b705149718006e7374d067eee3ce832\"},\"description\":\"Codemotion week: What is a framework? Read the article.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pccube.com\/en\/cose-un-framework\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pccube.com\/en\/cose-un-framework\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pccube.com\/en\/cose-un-framework\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pccube.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is a Framework\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.pccube.com\/en\/#website\",\"url\":\"https:\/\/www.pccube.com\/en\/\",\"name\":\"Pc Cube\",\"description\":\"Working for your best\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.pccube.com\/en\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.pccube.com\/en\/#\/schema\/person\/3b705149718006e7374d067eee3ce832\",\"name\":\"PC Cube\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.pccube.com\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b2d1560d40c0079140443b02a393d92837637eba9f6080afa12fc32f9c7bf6d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1b2d1560d40c0079140443b02a393d92837637eba9f6080afa12fc32f9c7bf6d?s=96&d=mm&r=g\",\"caption\":\"PC Cube\"},\"url\":\"https:\/\/www.pccube.com\/en\/author\/alessandro-chiarato\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is a Framework - Pc Cube","description":"Codemotion week: What is a framework? Read the article.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pccube.com\/en\/cose-un-framework\/","og_locale":"en_US","og_type":"article","og_title":"What is a Framework - Pc Cube","og_description":"Codemotion week: What is a framework? Read the article.","og_url":"https:\/\/www.pccube.com\/en\/cose-un-framework\/","og_site_name":"Pc Cube","article_published_time":"2020-12-04T10:15:02+00:00","article_modified_time":"2021-02-16T11:27:42+00:00","og_image":[{"width":1922,"height":1080,"url":"https:\/\/www.pccube.com\/wp-content\/uploads\/2020\/11\/codemotion_2020_1920x1080.jpg","type":"image\/jpeg"}],"author":"PC Cube","twitter_card":"summary_large_image","twitter_misc":{"Written by":"PC Cube","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.pccube.com\/en\/cose-un-framework\/","url":"https:\/\/www.pccube.com\/en\/cose-un-framework\/","name":"What is a Framework - Pc Cube","isPartOf":{"@id":"https:\/\/www.pccube.com\/en\/#website"},"datePublished":"2020-12-04T10:15:02+00:00","dateModified":"2021-02-16T11:27:42+00:00","author":{"@id":"https:\/\/www.pccube.com\/en\/#\/schema\/person\/3b705149718006e7374d067eee3ce832"},"description":"Codemotion week: What is a framework? Read the article.","breadcrumb":{"@id":"https:\/\/www.pccube.com\/en\/cose-un-framework\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pccube.com\/en\/cose-un-framework\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.pccube.com\/en\/cose-un-framework\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pccube.com\/"},{"@type":"ListItem","position":2,"name":"What is a Framework"}]},{"@type":"WebSite","@id":"https:\/\/www.pccube.com\/en\/#website","url":"https:\/\/www.pccube.com\/en\/","name":"Pc Cube","description":"Working for your best","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pccube.com\/en\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.pccube.com\/en\/#\/schema\/person\/3b705149718006e7374d067eee3ce832","name":"PC Cube","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pccube.com\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1b2d1560d40c0079140443b02a393d92837637eba9f6080afa12fc32f9c7bf6d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b2d1560d40c0079140443b02a393d92837637eba9f6080afa12fc32f9c7bf6d?s=96&d=mm&r=g","caption":"PC Cube"},"url":"https:\/\/www.pccube.com\/en\/author\/alessandro-chiarato\/"}]}},"_links":{"self":[{"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/posts\/8254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/comments?post=8254"}],"version-history":[{"count":4,"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/posts\/8254\/revisions"}],"predecessor-version":[{"id":9589,"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/posts\/8254\/revisions\/9589"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/media\/7527"}],"wp:attachment":[{"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/media?parent=8254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/categories?post=8254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pccube.com\/en\/wp-json\/wp\/v2\/tags?post=8254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}