{
    "componentChunkName": "component---src-templates-note-note-js",
    "path": "/notes/Imperative-versus-Declarative",
    "result": {"data":{"mdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Imperative is implementation driven. Declarative is implementation free. Declarative functions can be chained and are more readable. \"), mdx(\"p\", null, \"\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/what-i-want-versus-how-i-want-it-done\",\n    \"title\": \"what i want versus how i want it done\"\n  }, \"what i want versus how i want it done\"), \"\"), mdx(\"p\", null, \"\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/imperative\",\n    \"title\": \"imperative\"\n  }, \"imperative\"), \" \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/versus\",\n    \"title\": \"versus\"\n  }, \"versus\"), \" \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/declarative\",\n    \"title\": \"declarative\"\n  }, \"declarative\"), \"\"), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://codeburst.io/imperative-vs-declarative-javascript-8b5e45a602dd\"\n  }, \"https://codeburst.io/imperative-vs-declarative-javascript-8b5e45a602dd\")), mdx(\"p\", null, \"In general also we will start moving towards declarative paradigm as that is a level of abstraction and frees the user from the implementation details. \"), mdx(\"p\", null, \"declarative is \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/what\",\n    \"title\": \"what\"\n  }, \"what\"), \", imperative \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/how\",\n    \"title\": \"how\"\n  }, \"how\"), \".\"), mdx(\"h2\", null, \"Examples of Declarative Systems\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Kubernetes\",\n    \"title\": \"Kubernetes\"\n  }, \"Kubernetes\"), \". Kubernetes is \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"a declarative system\"), \". It basically says what we want(softwares) and what state we want them in(min, max and average)\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/grpc\",\n    \"title\": \"grpc\"\n  }, \"grpc\"), \" code generation in multiple languages\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/terraform\",\n    \"title\": \"terraform\"\n  }, \"terraform\"), \"\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/AI\",\n    \"title\": \"AI\"\n  }, \"AI\"), \" and \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/agents\",\n    \"title\": \"agents\"\n  }, \"agents\"), \"\")), mdx(\"p\", null, \"Also map this against \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/deterministic-versus-stochastic\",\n    \"title\": \"deterministic versus stochastic\"\n  }, \"deterministic versus stochastic\"), \"\"));\n}\n;\nMDXContent.isMDXComponent = true;","inboundReferences":[{"id":"688f7683-bd5f-57cc-95fc-34a47e7d7583","slug":"declarative"},{"id":"70cb5e60-7185-5b3f-823f-8154e6601257","slug":"Learning-path-for-Frontend"}]}},"pageContext":{"slug":"Imperative-versus-Declarative","node":{"childMdx":{"slug":"Imperative-versus-Declarative"}}}},
    "staticQueryHashes": []}