{"id":287,"date":"2011-07-11T18:20:15","date_gmt":"2011-07-11T16:20:15","guid":{"rendered":"http:\/\/www.espai.es\/blog\/?p=287"},"modified":"2013-11-12T12:11:44","modified_gmt":"2013-11-12T10:11:44","slug":"introduccion-al-lenguaje-de-programacion-go","status":"publish","type":"post","link":"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/","title":{"rendered":"Introducci\u00f3n al lenguaje de programaci\u00f3n Go"},"content":{"rendered":"<p>Go es un nuevo lenguaje de programaci\u00f3n para sistemas lanzado por la todopoderosa <strong>Google<\/strong> en Noviembre del 2009. Aunque empez\u00f3 a ser desarrollado en Septiembre del 2007 por Robert Griesemer, Rob Pike y Ken Thompson.<\/p>\n<p>Go es un lenguaje de programaci\u00f3n <strong>compilado<\/strong>, <strong>concurrente<\/strong>, <strong>imperativo<\/strong>, <strong>estructurado<\/strong>, no orientado a objetos \u2014de una manera bastante especial\u2014 y con <strong>recolector de basura<\/strong> que de momento est\u00e1 soportado en diferentes tipos de sistemas UNIX,  incluidos Linux, FreeBSD y Mac OS X. Tambi\u00e9n est\u00e1 disponible en Plan 9  puesto que parte del compilador est\u00e1 basado en un trabajo previo sobre  el sistema operativo Inferno. Las arquitecturas soportadas son i386,  amd64 y ARM<sup>[<a href=\"http:\/\/www.genbetadev.com\/herramientas\/introduccion-al-lenguaje-de-programacion-go#nota_1\">1<\/a>]<\/sup>.  Existe un port no oficial a Microsoft Windows pero es bastante  inestable. Actualmente se est\u00e1 trabajando para llevarlo al sistema  operativo de Microsoft.<\/p>\n<p>&nbsp;<\/p>\n<h2>Entrando en materia<\/h2>\n<p>Desde que Go fue anunciado, se gener\u00f3 un inmenso <strong>hype<\/strong> a su alrededor. No faltaron los que se apresuraron a bautizarlo como el <em>pr\u00f3ximo C<\/em> \u2014ha habido muchos pr\u00f3ximos C que se quedaron en promesas\u2014 la diferencia  principal al probar Go en serio es que te deja una sensaci\u00f3n muy  placentera que indica que realmente esta vez si podr\u00eda haber <strong>algo de cierto<\/strong> detr\u00e1s de esa afirmaci\u00f3n.<\/p>\n<p>Despu\u00e9s de programar con \u00e9l algo m\u00e1s complejo que un \u201c<em>Hello World!<\/em>\u201c deja una <strong>agradable sensaci\u00f3n<\/strong> y r\u00e1pidamente se detectan los siguientes elementos en el lenguaje que  revelan que detr\u00e1s de toda la espantajer\u00eda de fanboyismo y hype <strong>hay sustancia<\/strong>:<\/p>\n<ul>\n<li>Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten <strong>muy c\u00f3modos<\/strong> con \u00e9l<\/li>\n<li>Go usa <strong>tipado est\u00e1tico<\/strong> (estatically typed) y es tan eficiente como C<\/li>\n<li>Go tiene muchas de las <strong>caracter\u00edsticas y facilidad<\/strong> de lenguajes din\u00e1micos como Python<\/li>\n<li>A\u00fan  siendo un lenguaje dise\u00f1ado para la programaci\u00f3n de sistemas, provee de  un recolector de basura, reflexi\u00f3n y otras capacidades de alto nivel  que lo convierten en un lenguaje muy potente<\/li>\n<li>Go no est\u00e1 orientado a objetos por que no existe jerarqu\u00eda de tipos pero implementa <strong>interfaces<\/strong><\/li>\n<\/ul>\n<h2><\/h2>\n<h2>Caracter\u00edsticas<\/h2>\n<p>Go, al igual que C y C++, es un lenguaje compilado, obviamente,  comparte caracter\u00edsticas con otros lenguajes compilados, pero lo cierto  es que tiene algunas caracter\u00edsticas \u00fanicas, veamos algunas.<\/p>\n<h3>Concurrente<\/h3>\n<p>Es un lenguaje concurrente que soporta <strong>canales de comunicaci\u00f3n<\/strong> basados en el lenguaje <a href=\"http:\/\/en.wikipedia.org\/wiki\/Communicating_Sequential_Processes\">CSP<\/a>. La concurrencia en Go es diferente a los criterios de programaci\u00f3n basados en bloqueos como <em>pthreads<\/em>.<\/p>\n<h3>Recolector de basura<\/h3>\n<p>Como la mayor\u00eda de los lenguajes modernos, Go implementa un  recolector de basura. El recolector de basura de Go est\u00e1 siendo  reimplementado para elevar al m\u00e1ximo la eficiencia y <strong>reducir la latencia<\/strong> todo lo posible.<\/p>\n<h3>Simplicidad<\/h3>\n<p>Los lenguajes m\u00e1s utilizados como C++, Java o C# son m\u00e1s <strong>pesados y voluminosos<\/strong>. La sencillez es la caracter\u00edstica principal de Go, su sintaxis es <strong>clara y concisa<\/strong>. Mientras que C es tristemente c\u00e9lebre por la complejidad de la sintaxis de sus declaraciones, Go utiliza <strong>inferencia impl\u00edcita<\/strong> de tipos pudi\u00e9ndose de esta manera evitar la declaraci\u00f3n expl\u00edcita de  variables. La declaraci\u00f3n de variables es simple y conveniente, y  difiere de la de C.<\/p>\n<h3>Duck Typing (Tipificaci\u00f3n din\u00e1mica)<\/h3>\n<p>Go admite la <strong>tipificaci\u00f3n din\u00e1mica<\/strong> de datos tambi\u00e9n conocida como <em><strong>duck Typing<\/strong><\/em> presente en multitud de lenguajes din\u00e1micos como por ejemplo JavaScript, Ruby o Python. Un <code>struct<\/code> puede implementar una interfaz de forma<strong> autom\u00e1tica<\/strong>, lo cual es una caracter\u00edstica potente y novedosa.<\/p>\n<h3>Goroutines<\/h3>\n<p>No son ni threads, ni co-rutinas ni procesos. La comunicaci\u00f3n entre <code>goroutines<\/code> se realiza a trav\u00e9s de una caracter\u00edstica del lenguaje llamada <strong>canales<\/strong> \u2014basada en CSP\u2014, que es mcho m\u00e1s seguro y f\u00e1cil de usar que los sistemas predominantes basados en bloqueos de <code>pthreads<\/code> o caracter\u00edsticas modernas de Java<\/p>\n<h3>Excepciones<\/h3>\n<p>Go <strong>no tiene excepciones<\/strong>. Los creadores del lenguaje  dan varios motivos para que esto sea as\u00ed. Uno de ellos es que a\u00f1adir una  capa de excepciones a\u00f1ade una complejidad innecesaria al lenguaje y al  entorno de ejecuci\u00f3n. Por definici\u00f3n deber\u00edan de ser <strong><em>excepcionales<\/em><\/strong> pero al final se acaban usando como controladores del flujo de la  aplicaci\u00f3n y dejan de tener nada de excepcional. Seg\u00fan los creadores,  las excepciones tienen que ser realmente excepcionales y el uso que se  le da mayoritariamente <strong>no justifica<\/strong> su existencia.<\/p>\n<h3>Innovaci\u00f3n<\/h3>\n<p>Durante muchos a\u00f1os, los desarrolladores hemos tenido que <strong>elegir<\/strong> entre lenguajes de programaci\u00f3n de tipado est\u00e1tico compilados, por  regla general, bastante complejos pero que proveen grandes  caracter\u00edsticas relacionadas con la optimizaci\u00f3n y el rendimiento y  lenguajes de tipado din\u00e1mico interpretados con caracter\u00edsticas de mucho  m\u00e1s alto nivel que hac\u00edan su aprendizaje, uso y sintaxis m\u00e1s sencilla y  por tanto divertido programar en ellos, eso si, sacrificando rendimiento  y control.<\/p>\n<p>Go mezcla lo mejor de <strong>ambos mundos<\/strong> y nos aporta una  sintaxis sencilla, clara y divertida junto a la potencia que nos ofrece  un lenguaje fuertemente tipado y compilado incorporando adem\u00e1s  caracter\u00edsticas de alto nivel que facilitan el uso del lenguaje por los  desarrolladores.<\/p>\n<p>&nbsp;<\/p>\n<h2>Diferencias principales con C<\/h2>\n<p>Aunque su sintaxis es similar, Go difiere mucho de C, veamos algunos ejemplos<\/p>\n<h3>Declaraciones al rev\u00e9s<\/h3>\n<p>En Go las declaraciones se realizan <strong>al rev\u00e9s<\/strong> desde  la perspectiva de C (o C++ o Java). La idea principal en C es que se  declara una variable como una expresi\u00f3n que denota su tipo. Seg\u00fan los  creadores, aunque la idea detr\u00e1s de la declaraci\u00f3n de tipos en C <strong>es buena<\/strong>,  los tipos y las expresiones gramaticales no se mezclan demasiado bien y  el resultado puede ser confuso. Go sin embargo, separa la expresi\u00f3n y  la sintaxis de tipo lo cual simplifica las cosas (el prefijo * para los  punteros es la excepci\u00f3n que confirma la regla). Una declaraci\u00f3n t\u00edpica  en C ser\u00eda:<\/p>\n<pre><code>int* i, j;<\/code><\/pre>\n<p>Declara que <code>i<\/code> es un puntero, pero no <code>j<\/code>. En Go:<\/p>\n<pre><code>var i, j *int<\/code><\/pre>\n<p>Se declaran las dos variables como punteros. Es m\u00e1s claro y natural.<\/p>\n<h3>Semicolon<\/h3>\n<p>En Go el uso de semicolon \u201c<em><code>;<\/code><\/em>\u201c al final de una instrucci\u00f3n es <strong>opcional<\/strong>.<\/p>\n<h3>Aritm\u00e9tica de punteros<\/h3>\n<p>Go no tiene aritm\u00e9tica de punteros, seg\u00fan los creadores, la raz\u00f3n es  la seguridad. Sin aritm\u00e9tica de punteros es posible crear un lenguaje en  el que no se puede obtener una direcci\u00f3n ilegal que sea usada de forma  incorrecta. La falta de aritm\u00e9tica de punteros <strong>simplifica la implementaci\u00f3n<\/strong> del recolector de basura. Adem\u00e1s, optimizando el compilador y con el  hardware actual, un bucle que utiliza los \u00edndices de un array puede ser  tan eficaz como un bucle que utiliza aritm\u00e9tica de punteros.<\/p>\n<h3>++ y \u2014<\/h3>\n<p>En Go, el uso de ++ y \u2014 para incrementar y reducir el valor de una variable es una<strong> sentencia<\/strong> y no una expresi\u00f3n. Adem\u00e1s, solo puede utilizarse en su versi\u00f3n  postfija pues seg\u00fan los autores, la versi\u00f3n prefija pierde todo su  sentido en la ausencia de aritm\u00e9tica de punteros.<\/p>\n<p>&nbsp;<\/p>\n<h2>\u00bfEs Go un lenguaje orientado a objetos?<\/h2>\n<p>Bueno, esta no es una pregunta f\u00e1cil de responder. Digamos que <strong>si y no<\/strong>. Go tiene tipos y m\u00e9todos y <strong>permite un estilo<\/strong> de programaci\u00f3n orientado a objetos pero <strong>no existe una jerarqu\u00eda de objetos<\/strong>, por lo tanto, <strong>no existe la herencia<\/strong>. En Go, el concepto de \u201c<em>interfaz<\/em>\u201c  diferente que los creadores creen es f\u00e1cil de usar y en muchos sentidos  es m\u00e1s general. Tambi\u00e9n existen formas de embeber tipos dentro de otros  tipos para obtener <strong>algo an\u00e1logo<\/strong> a las subclases. Los  m\u00e9todos de Go son m\u00e1s generales que los de C++ o Java, pueden ser  definidos para cualquier tipo de datos no solo para los <code>structs<\/code>.<\/p>\n<p>La ausencia de jerarqu\u00eda de tipos en Go, hace que los \u201c<em>objetos<\/em>\u201c den una sensaci\u00f3n de ser m\u00e1s ligeros que en lenguajes como C++ o Java.<\/p>\n<h2>El ejemplo<\/h2>\n<p>&nbsp;<\/p>\n<p>Como no pod\u00eda ser de otra manera, as\u00ed se escribe el \u00abHola Mundo\u00bb con Go:<\/p>\n<pre><code>package main\r\nimport \"fmt\"\r\nfunc main() {\r\n    fmt.Printf(\"Hola, mundo!\\n\")\r\n}<\/code><\/pre>\n<p>Todos los archivos Go deben <strong>declarar el paquete<\/strong> al que pertenecen a trav\u00e9s de una sentencia <code>package<\/code>. Tambi\u00e9n pueden importar m\u00f3dulos y funciones externas de otros paquetes, en este caso usamos las funciones del paquete \u201c<code>fmt<\/code>\u201c que nos da acceso a la funci\u00f3n <code>Printf<\/code>. Todos los archivos en Go son UTF-8. Para compilar el c\u00f3digo anterior usar\u00edamos el compilador Gc o el back-end de gcc.<\/p>\n<p>&nbsp;<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>En esta <strong>introducci\u00f3n al lenguaje de programaci\u00f3n Go<\/strong> hemos visto las caracter\u00edsticas b\u00e1sicas del nuevo lenguaje de programaci\u00f3n de <strong>Google<\/strong> y hemos visto sus diferencias m\u00e1s remarcables con otros lenguajes  compilados. A\u00fan as\u00ed, han quedado muchas cosas en el tintero sobre temas  esenciales como sus diferentes compiladores y su instalaci\u00f3n.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline\">Fuente:<\/span> <a href=\"http:\/\/www.genbetadev.com\" target=\"_blank\">http:\/\/www.genbetadev.com<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Go es un nuevo lenguaje de programaci\u00f3n para sistemas lanzado por la todopoderosa Google en Noviembre del 2009. Aunque empez\u00f3 a ser desarrollado en Septiembre del 2007 por Robert Griesemer, Rob Pike y Ken Thompson. Go es un lenguaje de programaci\u00f3n compilado, concurrente, imperativo, estructurado,&#8230;<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_ef_editorial_meta_date_first-draft-date":"","_ef_editorial_meta_paragraph_assignment":"","_ef_editorial_meta_checkbox_needs-photo":"","_ef_editorial_meta_number_word-count":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[90,18,91,89],"class_list":["post-287","post","type-post","status-publish","format-standard","hentry","category-programacion","tag-go","tag-google","tag-lenguaje","tag-programacion-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Introducci\u00f3n al lenguaje de programaci\u00f3n Go - Blog Escola Espai<\/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.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducci\u00f3n al lenguaje de programaci\u00f3n Go - Blog Escola Espai\" \/>\n<meta property=\"og:description\" content=\"Go es un nuevo lenguaje de programaci\u00f3n para sistemas lanzado por la todopoderosa Google en Noviembre del 2009. Aunque empez\u00f3 a ser desarrollado en Septiembre del 2007 por Robert Griesemer, Rob Pike y Ken Thompson. Go es un lenguaje de programaci\u00f3n compilado, concurrente, imperativo, estructurado,...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Escola Espai\" \/>\n<meta property=\"article:published_time\" content=\"2011-07-11T16:20:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2013-11-12T10:11:44+00:00\" \/>\n<meta name=\"author\" content=\"Alba\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alba\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/\"},\"author\":{\"name\":\"Alba\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/3a4cffba01003b72404c724168c9adf2\"},\"headline\":\"Introducci\u00f3n al lenguaje de programaci\u00f3n Go\",\"datePublished\":\"2011-07-11T16:20:15+00:00\",\"dateModified\":\"2013-11-12T10:11:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/\"},\"wordCount\":1509,\"keywords\":[\"go\",\"Google\",\"lenguaje\",\"programaci\u00f3n\"],\"articleSection\":[\"Programaci\u00f3n\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/\",\"url\":\"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/\",\"name\":\"Introducci\u00f3n al lenguaje de programaci\u00f3n Go - Blog Escola Espai\",\"isPartOf\":{\"@id\":\"https:\/\/www.espai.es\/blog\/#website\"},\"datePublished\":\"2011-07-11T16:20:15+00:00\",\"dateModified\":\"2013-11-12T10:11:44+00:00\",\"author\":{\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/3a4cffba01003b72404c724168c9adf2\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.espai.es\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducci\u00f3n al lenguaje de programaci\u00f3n Go\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.espai.es\/blog\/#website\",\"url\":\"https:\/\/www.espai.es\/blog\/\",\"name\":\"Blog Escola Espai\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.espai.es\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/3a4cffba01003b72404c724168c9adf2\",\"name\":\"Alba\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3bfcc272573c3e28771126be7cb1d2369fb42ca1f32615ecd2b58895e613a38b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3bfcc272573c3e28771126be7cb1d2369fb42ca1f32615ecd2b58895e613a38b?s=96&d=mm&r=g\",\"caption\":\"Alba\"},\"sameAs\":[\"http:\/\/www.espai.es\"],\"url\":\"https:\/\/www.espai.es\/blog\/author\/alba\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introducci\u00f3n al lenguaje de programaci\u00f3n Go - Blog Escola Espai","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.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/","og_locale":"es_ES","og_type":"article","og_title":"Introducci\u00f3n al lenguaje de programaci\u00f3n Go - Blog Escola Espai","og_description":"Go es un nuevo lenguaje de programaci\u00f3n para sistemas lanzado por la todopoderosa Google en Noviembre del 2009. Aunque empez\u00f3 a ser desarrollado en Septiembre del 2007 por Robert Griesemer, Rob Pike y Ken Thompson. Go es un lenguaje de programaci\u00f3n compilado, concurrente, imperativo, estructurado,...","og_url":"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/","og_site_name":"Blog Escola Espai","article_published_time":"2011-07-11T16:20:15+00:00","article_modified_time":"2013-11-12T10:11:44+00:00","author":"Alba","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Alba","Tiempo de lectura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/#article","isPartOf":{"@id":"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/"},"author":{"name":"Alba","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/3a4cffba01003b72404c724168c9adf2"},"headline":"Introducci\u00f3n al lenguaje de programaci\u00f3n Go","datePublished":"2011-07-11T16:20:15+00:00","dateModified":"2013-11-12T10:11:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/"},"wordCount":1509,"keywords":["go","Google","lenguaje","programaci\u00f3n"],"articleSection":["Programaci\u00f3n"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/","url":"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/","name":"Introducci\u00f3n al lenguaje de programaci\u00f3n Go - Blog Escola Espai","isPartOf":{"@id":"https:\/\/www.espai.es\/blog\/#website"},"datePublished":"2011-07-11T16:20:15+00:00","dateModified":"2013-11-12T10:11:44+00:00","author":{"@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/3a4cffba01003b72404c724168c9adf2"},"breadcrumb":{"@id":"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.espai.es\/blog\/2011\/07\/introduccion-al-lenguaje-de-programacion-go\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.espai.es\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducci\u00f3n al lenguaje de programaci\u00f3n Go"}]},{"@type":"WebSite","@id":"https:\/\/www.espai.es\/blog\/#website","url":"https:\/\/www.espai.es\/blog\/","name":"Blog Escola Espai","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.espai.es\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/3a4cffba01003b72404c724168c9adf2","name":"Alba","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3bfcc272573c3e28771126be7cb1d2369fb42ca1f32615ecd2b58895e613a38b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3bfcc272573c3e28771126be7cb1d2369fb42ca1f32615ecd2b58895e613a38b?s=96&d=mm&r=g","caption":"Alba"},"sameAs":["http:\/\/www.espai.es"],"url":"https:\/\/www.espai.es\/blog\/author\/alba\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/287","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/comments?post=287"}],"version-history":[{"count":2,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/287\/revisions"}],"predecessor-version":[{"id":1226,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/287\/revisions\/1226"}],"wp:attachment":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/media?parent=287"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/categories?post=287"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/tags?post=287"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}