{"id":2773,"date":"2010-03-26T20:00:01","date_gmt":"2010-03-26T19:00:01","guid":{"rendered":"http:\/\/www.ziserman.com\/blog\/?p=2773"},"modified":"2010-03-26T14:04:56","modified_gmt":"2010-03-26T13:04:56","slug":"si-je-devais-refaire-le-monde","status":"publish","type":"post","link":"https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/","title":{"rendered":"Si je devais refaire le monde&#8230;"},"content":{"rendered":"<p>Bon, on est vendredi, c&rsquo;est bient\u00f4t le WE, on peut se l\u00e2cher un peu, non ?<\/p>\n<p><em>(billet un brin technique, je m&rsquo;en excuse aupr\u00e8s de mes lecteurs non programmeurs)<\/em><\/p>\n<p>Maintenant, le sujet n&rsquo;est pas si loin que \u00e7a des sujets habituels de ce blog, puisque mon id\u00e9e, c&rsquo;est de <strong>parler langage de programmation<\/strong>.<\/p>\n<p>Donc, quand on veut programmer sur Internet, on a le choix, pour faire simple, entre deux options :<\/p>\n<ul>\n<li>Soit vous utilisez PHP, ou un autre langage de script.<\/li>\n<li>Soit vous utilisez Java, ou autre .NET<\/li>\n<\/ul>\n<p><em>Il y a bien s\u00fbr tout un tas d&rsquo;autres solutions, le propos de ce billet n&rsquo;est surement pas de faire un <a title=\"Aller sur un exemple de page pr\u00e9sentant un ensemble plus ou moins exhaustif des langages de programmation\" href=\"http:\/\/www.scriptol.fr\/programmation\/histoire-langages.php\" target=\"_blank\">dictionnaire des langages de programmations<\/a>.<\/em><\/p>\n<p>A mon avis, tout \u00e7a est <strong>loin d&rsquo;\u00eatre abouti<\/strong>.<\/p>\n<p>Les langages de type script permettent de d\u00e9velopper rapidement un service, mais l&rsquo;id\u00e9e m\u00eame de ne pas \u00eatre compil\u00e9 et faiblement typ\u00e9, fait que le risque de d\u00e9couvrir des erreurs \u00ab\u00a0en ligne\u00a0\u00bb est important.<\/p>\n<p>De l&rsquo;autre c\u00f4t\u00e9, les langages de type \u00ab\u00a0java\u00a0\u00bb d\u00e9bouchent bien souvent sur des syst\u00e8mes lourds, complexes \u00e0 mettre au point et \u00e0 maintenir.<\/p>\n<p><strong>Tout cela n&rsquo;est pas tr\u00e8s satisfaisant<\/strong>.<\/p>\n<p>Alors, si on devait refaire \u00ab\u00a0ce monde l\u00e0\u00a0\u00bb, on ferait quoi ?<\/p>\n<p>Voici ma \u00ab\u00a0shopping list\u00a0\u00bb pour un langage id\u00e9al pour le web \u00ab\u00a0de demain\u00a0\u00bb :<\/p>\n<h3>De bons fondamentaux<\/h3>\n<p>A mon sens, un bon langage devra \u00eatre :<\/p>\n<ul>\n<li>Objet<\/li>\n<li>Fortement typ\u00e9<\/li>\n<li>Compil\u00e9<\/li>\n<\/ul>\n<p>Donc, \u00e0 ce stade, c&rsquo;est plus Java que PHP ;).<\/p>\n<h3>Gestion native des sessions<\/h3>\n<p>L&rsquo;une des caract\u00e9ristique du Web, c&rsquo;est la double contrainte, entre la n\u00e9cessit\u00e9 de g\u00e9rer de v\u00e9ritables applications en ligne, et un protocole \u00ab\u00a0state less\u00a0\u00bb : le serveur r\u00e9pond \u00e0 une requ\u00eate, et ne fait pas nativement le lien entre deux appels d&rsquo;un m\u00eame client (affichages de deux pages successives d&rsquo;un m\u00eame service, deux \u00e9tapes du processus achat par exemple).<\/p>\n<p>Ce point, hyper basique, n&rsquo;est pas trait\u00e9 nativement par les langages. On se \u00ab\u00a0d\u00e9brouille\u00a0\u00bb avec des couches applicatives, qui permettent de mettre en oeuvre des notions de sessions.<\/p>\n<p>Mais le r\u00e9sultat ne simplifie pas les choses. A chaque appel, pour chaque page, le programmeur doit aller chercher les \u00e9l\u00e9ments de contexte, pour servir les bonnes informations au client. C&rsquo;est compliqu\u00e9, et c&rsquo;est bien dommage de devoir repartir de si bas&#8230;<\/p>\n<p>A mon sens, ce probl\u00e8me devrait \u00eatre compl\u00e8tement \u00ab\u00a0encapsul\u00e9\u00a0\u00bb dans le langage.<\/p>\n<h3>Gestion native de la persistance des donn\u00e9es<\/h3>\n<p>Bon, puisqu&rsquo;on refait le monde, on peut bien <strong>bousculer le paradigme de la base de donn\u00e9es<\/strong>.<\/p>\n<p>La s\u00e9paration entre le langage de programmation et la base de donn\u00e9es est, \u00e0 mon sens, compl\u00e8tement artificiel.<\/p>\n<p>Et cette s\u00e9paration pose des probl\u00e8mes, de mod\u00e8le (les langages sont objets, et la base de donn\u00e9es est relationnelle), et de performance : la communication entre le langage de programmation et la base passe par des interfaces textes :<\/p>\n<p>On transmet des ordres SQL en format texte \u00e0 la base, et on r\u00e9cup\u00e8re des cha\u00eenes de caract\u00e8res en sortie. Tout cela est tr\u00e8s peu performant.<\/p>\n<p>Donc, la vrai bonne solution serait d&rsquo;int\u00e9grer les deux.<\/p>\n<h3>Orient\u00e9 Web, pour de vrai de vrai<\/h3>\n<p>C&rsquo;est bien ce qu&rsquo;\u00e0 fait le PHP, qui, \u00e0 la base, permet juste d&rsquo;ins\u00e9rer quelques \u00e9l\u00e9ments dynamique dans du HTML.<\/p>\n<p>Mais l\u00e0 encore, je ne suis pas convaincu par cette approche, qui consiste \u00e0 consid\u00e9rer que le Web, c&rsquo;est du texte HTML.<\/p>\n<p>Pour moi, le Web, c&rsquo;est plut\u00f4t un arbre (DOM). De loin, \u00e7a peut sembler \u00eatre la m\u00eame chose, mais en fait, en prenant un peu plus de hauteur, cela permet de manipuler des choses beaucoup plus intelligentes. Puisqu&rsquo;on est au niveau des concepts, on peut avoir une manipulation intelligente de ces concepts, alors que le texte, il n&rsquo;y a aucune chance de faire quelque chose d&rsquo;intelligent !<\/p>\n<p>Le langage manipulerait donc des arbres, et bien s\u00fbr, au moment de sortir la page, on g\u00e9n\u00e8rerait bien le texte HTML.<\/p>\n<h3>Traitement des erreurs multi vues<\/h3>\n<p>Si vous avez d\u00e9j\u00e0 programm\u00e9, vous savez qu&rsquo;un programme, c&rsquo;est 10% pour traiter les cas normaux, et 90% pour traiter les erreurs.<\/p>\n<p>Et en plus, les erreurs, il y en a de tous types.<\/p>\n<p>Mon id\u00e9e, que je n&rsquo;ai r\u00e9ellement vue nul part, c&rsquo;est de permettre de programmer \u00ab\u00a0en couche\u00a0\u00bb (qui a dit culotte ?).<\/p>\n<p>Intuitivement, l&rsquo;id\u00e9e, c&rsquo;est de programmer comme on faisait un dessin annim\u00e9 : on dessine le fond, puis, sur chaque calque, on rajoute des informations. On rajouterait donc un calque par type de traitement d&rsquo;erreurs.<\/p>\n<h3>Quelle avenir pour une telle id\u00e9e ?<\/h3>\n<p>Probablement aucun&#8230;<\/p>\n<p>Mais je trouve \u00e7a sympa, de remuer les concepts, \u00e7a permet de \u00ab\u00a0sortir du cadre\u00a0\u00bb et de se poser tout un tas de questions passionnantes !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bon, on est vendredi, c&rsquo;est bient\u00f4t le WE, on peut se l\u00e2cher un peu, non ? (billet un brin technique, je m&rsquo;en excuse aupr\u00e8s de mes lecteurs non programmeurs) Maintenant, le sujet n&rsquo;est pas si loin que \u00e7a des sujets habituels de ce blog, puisque mon id\u00e9e, c&rsquo;est de parler langage de programmation. Donc, quand [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[2],"tags":[379,52],"class_list":["post-2773","post","type-post","status-publish","format-standard","hentry","category-e-commerce","tag-araok","tag-programmation"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Si je devais refaire le monde... - Ziserman.com<\/title>\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.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Si je devais refaire le monde... - Ziserman.com\" \/>\n<meta property=\"og:description\" content=\"Bon, on est vendredi, c&rsquo;est bient\u00f4t le WE, on peut se l\u00e2cher un peu, non ? (billet un brin technique, je m&rsquo;en excuse aupr\u00e8s de mes lecteurs non programmeurs) Maintenant, le sujet n&rsquo;est pas si loin que \u00e7a des sujets habituels de ce blog, puisque mon id\u00e9e, c&rsquo;est de parler langage de programmation. Donc, quand [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/\" \/>\n<meta property=\"og:site_name\" content=\"Ziserman.com\" \/>\n<meta property=\"article:published_time\" content=\"2010-03-26T19:00:01+00:00\" \/>\n<meta name=\"author\" content=\"Fran\u00e7ois\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ziserman\" \/>\n<meta name=\"twitter:site\" content=\"@ziserman\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fran\u00e7ois\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2010\\\/03\\\/26\\\/si-je-devais-refaire-le-monde\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2010\\\/03\\\/26\\\/si-je-devais-refaire-le-monde\\\/\"},\"author\":{\"name\":\"Fran\u00e7ois\",\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#\\\/schema\\\/person\\\/f9bae013e59005579f4b86f162f89c72\"},\"headline\":\"Si je devais refaire le monde&#8230;\",\"datePublished\":\"2010-03-26T19:00:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2010\\\/03\\\/26\\\/si-je-devais-refaire-le-monde\\\/\"},\"wordCount\":835,\"commentCount\":12,\"publisher\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#\\\/schema\\\/person\\\/f9bae013e59005579f4b86f162f89c72\"},\"keywords\":[\"ARAOK !\",\"programmation\"],\"articleSection\":[\"e-commerce\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2010\\\/03\\\/26\\\/si-je-devais-refaire-le-monde\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2010\\\/03\\\/26\\\/si-je-devais-refaire-le-monde\\\/\",\"url\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2010\\\/03\\\/26\\\/si-je-devais-refaire-le-monde\\\/\",\"name\":\"Si je devais refaire le monde... - Ziserman.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#website\"},\"datePublished\":\"2010-03-26T19:00:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2010\\\/03\\\/26\\\/si-je-devais-refaire-le-monde\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2010\\\/03\\\/26\\\/si-je-devais-refaire-le-monde\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2010\\\/03\\\/26\\\/si-je-devais-refaire-le-monde\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Si je devais refaire le monde&#8230;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/\",\"name\":\"BLOG E-COMMERCE\",\"description\":\"Fran\u00e7ois Ziserman : entrepreneur, IA et \u00e9b\u00e9nisterie\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#\\\/schema\\\/person\\\/f9bae013e59005579f4b86f162f89c72\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#\\\/schema\\\/person\\\/f9bae013e59005579f4b86f162f89c72\",\"name\":\"Fran\u00e7ois\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g\",\"caption\":\"Fran\u00e7ois\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g\"},\"url\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Si je devais refaire le monde... - Ziserman.com","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.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/","og_locale":"fr_FR","og_type":"article","og_title":"Si je devais refaire le monde... - Ziserman.com","og_description":"Bon, on est vendredi, c&rsquo;est bient\u00f4t le WE, on peut se l\u00e2cher un peu, non ? (billet un brin technique, je m&rsquo;en excuse aupr\u00e8s de mes lecteurs non programmeurs) Maintenant, le sujet n&rsquo;est pas si loin que \u00e7a des sujets habituels de ce blog, puisque mon id\u00e9e, c&rsquo;est de parler langage de programmation. Donc, quand [&hellip;]","og_url":"https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/","og_site_name":"Ziserman.com","article_published_time":"2010-03-26T19:00:01+00:00","author":"Fran\u00e7ois","twitter_card":"summary_large_image","twitter_creator":"@ziserman","twitter_site":"@ziserman","twitter_misc":{"\u00c9crit par":"Fran\u00e7ois","Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/#article","isPartOf":{"@id":"https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/"},"author":{"name":"Fran\u00e7ois","@id":"https:\/\/www.ziserman.com\/blog\/#\/schema\/person\/f9bae013e59005579f4b86f162f89c72"},"headline":"Si je devais refaire le monde&#8230;","datePublished":"2010-03-26T19:00:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/"},"wordCount":835,"commentCount":12,"publisher":{"@id":"https:\/\/www.ziserman.com\/blog\/#\/schema\/person\/f9bae013e59005579f4b86f162f89c72"},"keywords":["ARAOK !","programmation"],"articleSection":["e-commerce"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/","url":"https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/","name":"Si je devais refaire le monde... - Ziserman.com","isPartOf":{"@id":"https:\/\/www.ziserman.com\/blog\/#website"},"datePublished":"2010-03-26T19:00:01+00:00","breadcrumb":{"@id":"https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ziserman.com\/blog\/2010\/03\/26\/si-je-devais-refaire-le-monde\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.ziserman.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Si je devais refaire le monde&#8230;"}]},{"@type":"WebSite","@id":"https:\/\/www.ziserman.com\/blog\/#website","url":"https:\/\/www.ziserman.com\/blog\/","name":"BLOG E-COMMERCE","description":"Fran\u00e7ois Ziserman : entrepreneur, IA et \u00e9b\u00e9nisterie","publisher":{"@id":"https:\/\/www.ziserman.com\/blog\/#\/schema\/person\/f9bae013e59005579f4b86f162f89c72"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ziserman.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.ziserman.com\/blog\/#\/schema\/person\/f9bae013e59005579f4b86f162f89c72","name":"Fran\u00e7ois","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g","caption":"Fran\u00e7ois"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g"},"url":"https:\/\/www.ziserman.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/posts\/2773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/comments?post=2773"}],"version-history":[{"count":0,"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/posts\/2773\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/media?parent=2773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/categories?post=2773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/tags?post=2773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}