{"id":1048,"date":"2011-04-12T00:26:49","date_gmt":"2011-04-11T18:56:49","guid":{"rendered":"http:\/\/blog.fusioncharts.com\/?p=1048"},"modified":"2026-01-20T14:41:54","modified_gmt":"2026-01-20T09:11:54","slug":"the-darwinism-of-deprecation","status":"publish","type":"post","link":"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/","title":{"rendered":"The Darwinism of Deprecation: Modernizing Tech Stacks"},"content":{"rendered":"FusionCharts has been evolving as a more powerful and contemporary <a href=\"https:\/\/www.fusioncharts.com\">JavaScript charting library<\/a>. With the new features of v3.2, a large number of functions were added, and four functions got deprecated. Three of these functions were previously part of the most used functions of FusionCharts JS. In a scenario like this, the setting was perfect to tell you our story of the survival of the fittest.\r\n\r\n<!--more-->\r\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_71 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#The_Deprecation_of_getChartFromId_Function\" title=\"The Deprecation of getChartFromId Function\">The Deprecation of getChartFromId Function<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#Currently_Recommended_Ways_to_Access_a_Chart_Using_Its_ID\" title=\"Currently Recommended Ways to Access a Chart Using Its ID\">Currently Recommended Ways to Access a Chart Using Its ID<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#Deprecation_of_setDataXML_and_setDataURL_at_JavaScript_Level\" title=\"Deprecation of setDataXML and setDataURL at JavaScript Level\">Deprecation of setDataXML and setDataURL at JavaScript Level<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#Setting_Data_For_Various_FusionCharts_Data_Formats\" title=\"Setting Data For Various FusionCharts Data Formats\">Setting Data For Various FusionCharts Data Formats<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#There_Was_Once_an_addVariable_Function\" title=\"There Was Once an addVariable Function\">There Was Once an addVariable Function<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#Passing_FlashVars_To_Charts_The_Correct_Way\" title=\"Passing FlashVars To Charts The Correct Way\">Passing FlashVars To Charts The Correct Way<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#Summary_of_the_Deprecated_Methods\" title=\"Summary of the Deprecated Methods\">Summary of the Deprecated Methods<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"The_Deprecation_of_getChartFromId_Function\"><\/span>The Deprecation of getChartFromId Function<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<a title=\"See the documentation of getChartFromId\" href=\"https:\/\/docs.fusioncharts.com\/charts\/contents\/JavaScript\/API\/Methods.html#getcahrtfromid\" target=\"_blank\" rel=\"noopener\"><code>getChartFromId<\/code><\/a> was used to get a reference to a chart&#8217;s Flash object (HTML OBJECT\/EMBED tag) after a chart had been rendered. This allowed users to do a lot of things like update chart\u2019s data or re-render an already existing chart. But since the addition of JavaScript charting capability in FusionCharts 3.2 <code>getChartFromId<\/code> had to be deprecated.\r\n\r\nFor the JavaScript charts, <code>getChartFromId<\/code> did not make sense as there was no OBJECT\/EMBED tag involved. Unlike Flash charts, where the chart\u2019s ExternalInterface ((The ExternalInterface of an SWF object enables straightforward communication between the SWF and the Flash Player container\u2013 for example, an HTML page with JavaScript.)) functions (like setDataUrl, setDataXML) were part of the HTML OBJECT\/EMBED element, the JavaScript charts are fully controlled by the JavaScript object variable of every chart.\r\n\r\nFurthermore, the <code>getChartFromId<\/code> method was available as a global ((<em>Local variables<\/em> exist only within a particular function where it is defined. <em>Global variables<\/em>, on the other hand are present throughout the script and they can be accessed by any function.)) method in JavaScript. Though this was helpful in most ways, it was still vulnerable to being overwritten by other JavaScript libraries that have its own charting library. And with more and more websites using multiple JavaScript libraries, we felt it was better to be safe than sorry.\r\n\r\nBeyond these, for some users, there was also a confusion between the JavaScript object of a chart and the HTML OBJECT\/EMBED node variable ((When we write <code>var chartObj = new FusionCharts(...)<\/code> and later write somewhere else <code>var myChart = getChartFromId(...)<\/code>, the values of the two variables <code>chartObj<\/code> and <code>myChart<\/code> are not the same. <code>chartObj<\/code> is the JavaScript variable that is used to render a chart and <code>myChart<\/code> is the <a title=\"Read more about DOM on Wikipedia\" href=\"https:\/\/en.wikipedia.org\/wiki\/Document_Object_Model\" target=\"_blank\" rel=\"noopener\">DOM<\/a>\u2019s HTML OBJECT\/EMBED tag reference that contains functions made available by the SWF of the Flash chart. The latter is available only after the chart is rendered using the render() function of the JavaScript variable.)). FusionCharts v3.2 bridges the gap between the two by copying the functionalities of one to the other \u2013 thus making <code>getChartFromId<\/code> redundant.\r\n<h3><span class=\"ez-toc-section\" id=\"Currently_Recommended_Ways_to_Access_a_Chart_Using_Its_ID\"><\/span>Currently Recommended Ways to Access a Chart Using Its ID<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\nAs of FusionCharts 3.2 and above, the alternative to <code>getChartFromId<\/code> is the <code>FusionCharts.items[]<\/code> collection.\r\n\r\nWhenever a new chart is created, a reference to it is kept within the <code>FusionCharts.items<\/code> object. Consequently, if your original code was <code>var myChart = getChartFromId(\"my-chart-id\")<\/code>, it can now be achieved using <code>var myChart = FusionCharts.items[\"my-chart-id\"]<\/code>.\r\n\r\nAnother alternate is to access the <code>FusionCharts()<\/code> function itself: <code>var myChart = FusionCharts(\"my-chart-id\")<\/code>. Note the absence of the <span>new<\/span> keyword. While creating a new chart, we write <code>new FusionCharts(...)<\/code>, but for accessing an already created chart, we drop the <span>new<\/span> keyword and simply pass the chart\u2019s id as parameter. Ain\u2019t it cool!?\r\n<h2><span class=\"ez-toc-section\" id=\"Deprecation_of_setDataXML_and_setDataURL_at_JavaScript_Level\"><\/span>Deprecation of setDataXML and setDataURL at JavaScript Level<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\nProviding <a href=\"https:\/\/www.fusioncharts.com\/developers\/documentation\/?DataFormats\/JSON\/Overview.html\" target=\"_blank\" rel=\"noopener\">JSON Data Format<\/a> support proved to be more of a nomenclature challenge than a technological one!\r\n\r\nThe <code>setDataXML<\/code> and <code>setDataURL<\/code> functions were conceived when <a title=\"Know more about JSON on Wikipedia\" href=\"https:\/\/en.wikipedia.org\/wiki\/JSON\" target=\"_blank\" rel=\"noopener\">JSON as a information exchange format<\/a> was in its neonatal stage. Now when we were adding JSON support, what could we name the corresponding data-setting functions as? setJSONData could have been fine had the name setDataURL been a bit more accommodative. Imagine setDataURLJSON or setJSONDataURL!\r\n\r\nThus, we had to deprecate <code>setDataXML<\/code> and <code>setDataURL<\/code> to give way for function names that would be format-independent. By format-independent we mean that the function names should have such a pattern that in case any new format comes up, naming it should not be challenging.\r\n<h3><span class=\"ez-toc-section\" id=\"Setting_Data_For_Various_FusionCharts_Data_Formats\"><\/span>Setting Data For Various FusionCharts Data Formats<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\nThe <code>setDataXML<\/code> and <code>setDataURL<\/code> functions got replaced using <a href=\"https:\/\/www.fusioncharts.com\/developers\/documentation\/?JavaScript\/API\/Methods.html#setxmldata\" target=\"_blank\" rel=\"noopener\"><code lang=\"js\">setXMLData&gt;<\/code><\/a>and <a href=\"https:\/\/www.fusioncharts.com\/developers\/documentation\/?JavaScript\/API\/Methods.html#setxmlurl\" target=\"_blank\" rel=\"noopener\"><code lang=\"js\"> setXMLUrl<\/code><\/a> respectively. And from that, guessing the JSON functions as <a href=\"https:\/\/www.fusioncharts.com\/developers\/documentation\/?JavaScript\/API\/Methods.html#setjsondata\" target=\"_blank\" rel=\"noopener\"><code lang=\"js\">setJSONData<\/code><\/a> and <a href=\"https:\/\/www.fusioncharts.com\/developers\/documentation\/?JavaScript\/API\/Methods.html#setjsonurl\" target=\"_blank\" rel=\"noopener\"><code lang=\"js\">setJSONUrl<\/code><\/a> is apparently not challenging at all.\r\n\r\nWe also introduced a couple of more multi-tasking data-setting functions namely: <a href=\"https:\/\/docs.fusioncharts.com\/charts\/contents\/JavaScript\/API\/Methods.html#setchartdata\" target=\"_blank\" rel=\"noopener\"><code lang=\"js\">setChartData<\/code><\/a> and <a href=\"https:\/\/docs.fusioncharts.com\/charts\/contents\/JavaScript\/API\/Methods.html#setchartdataurl\" target=\"_blank\" rel=\"noopener\"><code lang=\"js\">setChartDataUrl<\/code><\/a>. These functions take up two parameters: first is the source data and second is the format specification of the source. Head over to the <a href=\"https:\/\/www.fusioncharts.com\/developers\/documentation\/?JavaScript\/JS_ChangeData.html\" target=\"_blank\" rel=\"noopener\">documentation<\/a> to know more.\r\n\r\nGetting back to the point: simply replacing <code lang=\"js\">setDataXML<\/code> with <code lang=\"js\">setXMLData<\/code> and<code lang=\"js\">setDataURL<\/code> with <code lang=\"js\">setXMLUrl<\/code> is all you need to do to get going.\r\n<h2><span class=\"ez-toc-section\" id=\"There_Was_Once_an_addVariable_Function\"><\/span>There Was Once an addVariable Function<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\nLong long time ago, before the time of FusionCharts 3.2, there lived one of the lesser-known and lesser-used functions of FusionCharts JS. It allowed users to pass specific information to the flash chart files using FlashVars. FlashVars (evident from its name) was something very specific to Flash. Setting of <a href=\"https:\/\/www.fusioncharts.com\/developers\/documentation\/?ChartMessages.html\" target=\"_blank\" rel=\"noopener\">Chart Messages<\/a> and visual configuration of the <a href=\"https:\/\/www.fusioncharts.com\/developers\/documentation\/?Grid_Overview.html\" target=\"_blank\" rel=\"noopener\">Grid Component<\/a> was heavily dependent on this function. With the FusionCharts JavaScript library becoming technology-independent (since the inclusion of JavaScript charting), the dependency on FlashVars was removed.\r\n<h3><span class=\"ez-toc-section\" id=\"Passing_FlashVars_To_Charts_The_Correct_Way\"><\/span>Passing FlashVars To Charts The Correct Way<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\nIn FusionCharts 3.2, the basic chart configurations sent using FlashVars can be passed during <a href=\"https:\/\/docs.fusioncharts.com\/charts\/\" target=\"_blank\" rel=\"noopener\">construction<\/a> of a new FusionCharts. However, extended FlashVars (like \u201cChart Messages\u201d) can be passed using the <a href=\"https:\/\/www.fusioncharts.com\/developers\/documentation\/?JavaScript\/API\/Methods.html#configure\" target=\"_blank\" rel=\"noopener\"><code lang=\"js\">configure()<\/code><\/a> function available since FusionCharts 3.2.0.\r\n\r\nIf your application already has <code lang=\"js\">.addVariable()<\/code>, simply replace it with <code lang=\"js\">.configure()<\/code>.\r\n<h2><span class=\"ez-toc-section\" id=\"Summary_of_the_Deprecated_Methods\"><\/span>Summary of the Deprecated Methods<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\nTo quickly summarize, here is the list of deprecated methods discussed above.\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"5\" width=\"600\">\r\n<tbody>\r\n<tr>\r\n<td valign=\"top\" width=\"288\"><strong>Deprecated Method<\/strong><\/td>\r\n<td valign=\"top\" width=\"295\"><strong>Alternative Implementation<\/strong><\/td>\r\n<\/tr>\r\n<tr>\r\n<td valign=\"top\" width=\"288\">getChartFromId(chartId)<\/td>\r\n<td valign=\"top\" width=\"295\">FusionCharts(chartId)\r\nFusionCharts.items[chartId)<\/td>\r\n<\/tr>\r\n<tr>\r\n<td valign=\"top\" width=\"288\">setDataXML(xmlData)<\/td>\r\n<td valign=\"top\" width=\"295\">setXMLdata(xmlData)<\/td>\r\n<\/tr>\r\n<tr>\r\n<td valign=\"top\" width=\"288\">setDataURL(url)<\/td>\r\n<td valign=\"top\" width=\"295\">setXMLUrl(url)<\/td>\r\n<\/tr>\r\n<tr>\r\n<td valign=\"top\" width=\"288\">addVariable(key, value)<\/td>\r\n<td valign=\"top\" width=\"295\">configure(key, value)<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\nThis is our story of how the fittest survived in this never-ending war to become more powerful, useful and, for this case, more programmable!","protected":false},"excerpt":{"rendered":"<p>FusionCharts has been evolving as a more powerful and contemporary JavaScript charting library. With the new features of v3.2, a large number of functions were added, and four functions got deprecated. Three of these functions were previously part of the most used functions of FusionCharts JS. In a scenario like this, the setting was perfect [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[211],"coauthors":[718],"class_list":["post-1048","post","type-post","status-publish","format-standard","hentry","category-tutorials","tag-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Darwinism of Deprecation: Modernizing Tech Stacks<\/title>\n<meta name=\"description\" content=\"Modernize your tech stack by understanding the darwinism of deprecation. Learn how FusionCharts evolved into a powerful 2026 JavaScript library for all.\" \/>\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.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Darwinism of Deprecation: Modernizing Tech Stacks\" \/>\n<meta property=\"og:description\" content=\"Modernize your tech stack by understanding the darwinism of deprecation. Learn how FusionCharts evolved into a powerful 2026 JavaScript library for all.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/\" \/>\n<meta property=\"og:site_name\" content=\"FusionBrew - The FusionCharts Blog\" \/>\n<meta property=\"article:published_time\" content=\"2011-04-11T18:56:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-20T09:11:54+00:00\" \/>\n<meta name=\"author\" content=\"Shamasis Bhattacharya\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shamasis Bhattacharya\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\n\t    \"@context\": \"https:\/\/schema.org\",\n\t    \"@graph\": [\n\t        {\n\t            \"@type\": \"Article\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/\"\n\t            },\n\t            \"author\": {\n\t                \"name\": \"Shamasis Bhattacharya\",\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/cfce3e3c2ecb07767d8d2b84490460f7\"\n\t            },\n\t            \"headline\": \"The Darwinism of Deprecation: Modernizing Tech Stacks\",\n\t            \"datePublished\": \"2011-04-11T18:56:49+00:00\",\n\t            \"dateModified\": \"2026-01-20T09:11:54+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/\"\n\t            },\n\t            \"wordCount\": 914,\n\t            \"commentCount\": 2,\n\t            \"publisher\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#organization\"\n\t            },\n\t            \"keywords\": [\n\t                \"javascript\"\n\t            ],\n\t            \"articleSection\": [\n\t                \"Tutorials\"\n\t            ],\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"CommentAction\",\n\t                    \"name\": \"Comment\",\n\t                    \"target\": [\n\t                        \"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#respond\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/\",\n\t            \"url\": \"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/\",\n\t            \"name\": \"The Darwinism of Deprecation: Modernizing Tech Stacks\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#website\"\n\t            },\n\t            \"datePublished\": \"2011-04-11T18:56:49+00:00\",\n\t            \"dateModified\": \"2026-01-20T09:11:54+00:00\",\n\t            \"description\": \"Modernize your tech stack by understanding the darwinism of deprecation. Learn how FusionCharts evolved into a powerful 2026 JavaScript library for all.\",\n\t            \"breadcrumb\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#breadcrumb\"\n\t            },\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"BreadcrumbList\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#breadcrumb\",\n\t            \"itemListElement\": [\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 1,\n\t                    \"name\": \"Home\",\n\t                    \"item\": \"https:\/\/www.fusioncharts.com\/blog\/\"\n\t                },\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 2,\n\t                    \"name\": \"The Darwinism of Deprecation: Modernizing Tech Stacks\"\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"WebSite\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#website\",\n\t            \"url\": \"https:\/\/www.fusioncharts.com\/blog\/\",\n\t            \"name\": \"FusionBrew - The FusionCharts Blog\",\n\t            \"description\": \"Get tips and tricks on how to build effective Data Visualisation using FusionCharts\",\n\t            \"publisher\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#organization\"\n\t            },\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"SearchAction\",\n\t                    \"target\": {\n\t                        \"@type\": \"EntryPoint\",\n\t                        \"urlTemplate\": \"https:\/\/www.fusioncharts.com\/blog\/?s={search_term_string}\"\n\t                    },\n\t                    \"query-input\": {\n\t                        \"@type\": \"PropertyValueSpecification\",\n\t                        \"valueRequired\": true,\n\t                        \"valueName\": \"search_term_string\"\n\t                    }\n\t                }\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"Organization\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#organization\",\n\t            \"name\": \"FusionCharts\",\n\t            \"url\": \"https:\/\/www.fusioncharts.com\/blog\/\",\n\t            \"logo\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/logo\/image\/\",\n\t                \"url\": \"\/blog\/wp-content\/uploads\/2020\/03\/idera-fc-logo.svg\",\n\t                \"contentUrl\": \"\/blog\/wp-content\/uploads\/2020\/03\/idera-fc-logo.svg\",\n\t                \"width\": 1,\n\t                \"height\": 1,\n\t                \"caption\": \"FusionCharts\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/logo\/image\/\"\n\t            }\n\t        },\n\t        {\n\t            \"@type\": \"Person\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/cfce3e3c2ecb07767d8d2b84490460f7\",\n\t            \"name\": \"Shamasis Bhattacharya\",\n\t            \"image\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/image\/ed27a4cd012abbe8b9e545e1815f0781\",\n\t                \"url\": \"\/blog\/wp-content\/wphb-cache\/gravatar\/ca8\/ca8f277e2c21f1bcf6b56e4364e15157x96.jpg\",\n\t                \"contentUrl\": \"\/blog\/wp-content\/wphb-cache\/gravatar\/ca8\/ca8f277e2c21f1bcf6b56e4364e15157x96.jpg\",\n\t                \"caption\": \"Shamasis Bhattacharya\"\n\t            },\n\t            \"url\": \"https:\/\/www.fusioncharts.com\/blog\/author\/shamasis\/\"\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Darwinism of Deprecation: Modernizing Tech Stacks","description":"Modernize your tech stack by understanding the darwinism of deprecation. Learn how FusionCharts evolved into a powerful 2026 JavaScript library for all.","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.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/","og_locale":"en_US","og_type":"article","og_title":"The Darwinism of Deprecation: Modernizing Tech Stacks","og_description":"Modernize your tech stack by understanding the darwinism of deprecation. Learn how FusionCharts evolved into a powerful 2026 JavaScript library for all.","og_url":"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/","og_site_name":"FusionBrew - The FusionCharts Blog","article_published_time":"2011-04-11T18:56:49+00:00","article_modified_time":"2026-01-20T09:11:54+00:00","author":"Shamasis Bhattacharya","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Shamasis Bhattacharya","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#article","isPartOf":{"@id":"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/"},"author":{"name":"Shamasis Bhattacharya","@id":"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/cfce3e3c2ecb07767d8d2b84490460f7"},"headline":"The Darwinism of Deprecation: Modernizing Tech Stacks","datePublished":"2011-04-11T18:56:49+00:00","dateModified":"2026-01-20T09:11:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/"},"wordCount":914,"commentCount":2,"publisher":{"@id":"https:\/\/www.fusioncharts.com\/blog\/#organization"},"keywords":["javascript"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/","url":"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/","name":"The Darwinism of Deprecation: Modernizing Tech Stacks","isPartOf":{"@id":"https:\/\/www.fusioncharts.com\/blog\/#website"},"datePublished":"2011-04-11T18:56:49+00:00","dateModified":"2026-01-20T09:11:54+00:00","description":"Modernize your tech stack by understanding the darwinism of deprecation. Learn how FusionCharts evolved into a powerful 2026 JavaScript library for all.","breadcrumb":{"@id":"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.fusioncharts.com\/blog\/the-darwinism-of-deprecation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fusioncharts.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Darwinism of Deprecation: Modernizing Tech Stacks"}]},{"@type":"WebSite","@id":"https:\/\/www.fusioncharts.com\/blog\/#website","url":"https:\/\/www.fusioncharts.com\/blog\/","name":"FusionBrew - The FusionCharts Blog","description":"Get tips and tricks on how to build effective Data Visualisation using FusionCharts","publisher":{"@id":"https:\/\/www.fusioncharts.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fusioncharts.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.fusioncharts.com\/blog\/#organization","name":"FusionCharts","url":"https:\/\/www.fusioncharts.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/logo\/image\/","url":"\/blog\/wp-content\/uploads\/2020\/03\/idera-fc-logo.svg","contentUrl":"\/blog\/wp-content\/uploads\/2020\/03\/idera-fc-logo.svg","width":1,"height":1,"caption":"FusionCharts"},"image":{"@id":"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/cfce3e3c2ecb07767d8d2b84490460f7","name":"Shamasis Bhattacharya","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/image\/ed27a4cd012abbe8b9e545e1815f0781","url":"\/blog\/wp-content\/wphb-cache\/gravatar\/ca8\/ca8f277e2c21f1bcf6b56e4364e15157x96.jpg","contentUrl":"\/blog\/wp-content\/wphb-cache\/gravatar\/ca8\/ca8f277e2c21f1bcf6b56e4364e15157x96.jpg","caption":"Shamasis Bhattacharya"},"url":"https:\/\/www.fusioncharts.com\/blog\/author\/shamasis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/posts\/1048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/comments?post=1048"}],"version-history":[{"count":0,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/posts\/1048\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/media?parent=1048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/categories?post=1048"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/tags?post=1048"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/coauthors?post=1048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}