<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/">
        <channel>
        <title>Magazine - lenguajes-de-programacion</title>
        <link>https://www.genbeta.com</link>
        <description>Publicación de noticias sobre gadgets y tecnología. Últimas tecnologías en electrónica de consumo y novedades tecnológicas en móviles, tablets, informática, etc</description>
        <pubDate>Wed, 10 Jun 2026 17:46:51 +0000</pubDate>
        <generator>https://www.genbeta.com</generator>
        <atom:link href="https://www.genbeta.com/tag/lenguajes-de-programacion/rss2.xml" rel="self" type="application/rss+xml" />
                                        <item>
                <title><![CDATA[Hace 30 años, un programador de Netscape creó en 10 días la primera versión de uno de los lenguajes más usados hoy en Internet ]]></title>
                <link>https://www.genbeta.com/desarrollo/hace-30-anos-programador-netscape-creo-10-dias-primera-version-uno-lenguajes-usados-hoy-internet</link>
                <guid>https://www.genbeta.com/desarrollo/hace-30-anos-programador-netscape-creo-10-dias-primera-version-uno-lenguajes-usados-hoy-internet</guid>
                <pubDate>Sun, 07 Dec 2025 15:00:14 +0000</pubDate>
                                         <dc:creator>Marcos Merino</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/7c5701/chatgpt-image-7-dic-2025-01_51_38/1024_2000.png" alt="Hace&#x20;30&#x20;a&#x00F1;os,&#x20;un&#x20;programador&#x20;de&#x20;Netscape&#x20;cre&#x00F3;&#x20;en&#x20;10&#x20;d&#x00ED;as&#x20;la&#x20;primera&#x20;versi&#x00F3;n&#x20;de&#x20;uno&#x20;de&#x20;los&#x20;lenguajes&#x20;m&#x00E1;s&#x20;usados&#x20;hoy&#x20;en&#x20;Internet&#x20;">
    </p>
    <p>Hace tres décadas, en mayo de 1995, un joven ingeniero llamado Brendan Eich, recién incorporado entonces a Netscape Communications, se encerró durante diez frenéticos días para construir un prototipo funcional de un nuevo lenguaje de programación destinado a proporcionar interactividad a las páginas web.</p>
<!-- BREAK 1 --><p>Pero <strong>este mero experimento improvisado</strong> (un 'hack', como él mismo lo llamaría tiempo después)<strong> se terminaría convirtiendo en el motor de la web moderna</strong>, una herramienta omnipresente que hoy utilizan casi todos los sitios de Internet.</p>
<h2>Cuando la web todavía era estática</h2>
<p>En 1995, la World Wide Web atravesaba un momento decisivo: la navegación era esencialmente pasiva: el usuario leía texto, veía imágenes estáticas y seguía enlaces. Netscape, creadora del entonces revolucionario <strong>Netscape Navigator</strong> (<a class="text-outboundlink" href="https://www.xataka.com/historia-tecnologica/que-fue-netscape-primer-gran-perdedor-guerra-buscadores-que-sento-bases-firefox" data-vars-post-title="Qué fue de Netscape, el primer gran perdedor en la guerra de navegadores que sentó las bases de Firefox" data-vars-post-url="https://www.xataka.com/historia-tecnologica/que-fue-netscape-primer-gran-perdedor-guerra-buscadores-que-sento-bases-firefox" >el bisabuelo tanto de Mozilla Firefox</a> como de Mozilla Thunderbird), vio un enorme potencial en la posibilidad de convertir esas páginas estáticas en entornos dinámicos y participativos.</p>
<!-- BREAK 2 --><p>Su objetivo era crear un lenguaje sencillo, accesible para diseñadores y profesionales sin formación profunda en programación. <strong>Era fundamental que se ejecutase dentro del navegador</strong>, sin necesidad de compilaciones complejas y sin requerir el conocimiento de lenguajes tradicionales como C o Java.</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/web/gemini-protocolo-alternativo-al-http-que-promueve-internet-ligero-seguro-basado-texto-que-multimedia" class="pivot-outboundlink" data-vars-post-title="Gemini, el protocolo alternativo al HTTP que promueve un Internet más ligero y seguro, más basado en el texto que en lo multimedia">
     <img alt="Gemini,&#x20;el&#x20;protocolo&#x20;alternativo&#x20;al&#x20;HTTP&#x20;que&#x20;promueve&#x20;un&#x20;Internet&#x20;m&#x00E1;s&#x20;ligero&#x20;y&#x20;seguro,&#x20;m&#x00E1;s&#x20;basado&#x20;en&#x20;el&#x20;texto&#x20;que&#x20;en&#x20;lo&#x20;multimedia" width="375" height="142" src="https://i.blogs.es/b60491/gemini/375_142.webp" onerror='this.src="https://i.blogs.es/b60491/gemini/375_142.jpg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/web/gemini-protocolo-alternativo-al-http-que-promueve-internet-ligero-seguro-basado-texto-que-multimedia" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Gemini, el protocolo alternativo al HTTP que promueve un Internet más ligero y seguro, más basado en el texto que en lo multimedia">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/web/gemini-protocolo-alternativo-al-http-que-promueve-internet-ligero-seguro-basado-texto-que-multimedia" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Gemini, el protocolo alternativo al HTTP que promueve un Internet más ligero y seguro, más basado en el texto que en lo multimedia">Gemini, el protocolo alternativo al HTTP que promueve un Internet más ligero y seguro, más basado en el texto que en lo multimedia</a>
   </div>
  </div>
 </div>
</div>
<h2>Diez días que cambiaron Internet</h2>
<p>Eich había sido contratado para trabajar con Scheme —un lenguaje funcional, elegante, pero poco conocido—, aunque la dirección de Netscape tenía otros planes: querían algo que "se pareciera" a Java, el lenguaje de moda por aquel entonces. Así que nuestro programador combinó influencias diversas:</p>
<!-- BREAK 3 --><ul><li><strong>La sintaxis</strong>: Corchetes, puntos y comas, estructuras <em>if </em>y <em>while</em>, funciones declaradas con una estética familiar… todo inspirado en Java para satisfacer al departamento directivo.</li><li><strong>La semántica</strong>: heredada de Scheme, lenguaje que Eich admiraba. De ahí vienen las funciones de primera clase, las 'closures', la flexibilidad para manipular funciones como datos, y una forma de evaluar expresiones muy distinta a la de Java o C.</li><li><strong>El modelo de objetos por prototipos</strong>: tomado de Self. Así, en vez de adoptar la clásica herencia por clases (como en Java), Eich incorporó el enfoque de prototipos, donde los objetos se crean a partir de otros objetos. En 1995, esta idea era vista como exótica e incluso extraña por muchos programadores formados en lenguajes clásicos.</li></ul>
<p>El resultado fue un híbrido sorprendente: ligero, flexible y lo <strong>suficientemente intuitivo como para ser adoptado por creadores de contenido web sin formación técnica avanzada</strong>. Aquel primer prototipo no era un lenguaje completo, sino una prueba de concepto interna... pero funcionaba, y eso bastó para que Netscape redoblara su apuesta. Y así terminó naciendo JavaScript.</p>
<!-- BREAK 4 --><p>La evolución de dicho prototipo todavía continuaría durante más de un año hasta su lanzamiento público en septiembre de 1995 y de <strong>la versión 1.0 en marzo de 1996</strong>. En aquel momento, Netscape y Sun Microsystems anunciaron conjuntamente el lenguaje y consiguieron el apoyo de 28 grandes compañías tecnológicas.</p>
<!-- BREAK 5 --><p>Paradójicamente, JavaScript ha terminado sobreviviendo a muchas de esas empresas —como Silicon Graphics, Digital Equipment Corporation o la propia Netscape—.</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/inteligencia-artificial/javascript-puede-ayudarte-a-desarrollar-aplicaciones-ia-aqui-tienes-ejemplos-no-todo-python" class="pivot-outboundlink" data-vars-post-title="JavaScript puede ayudarte a desarrollar aplicaciones de IA, y aquí tienes ejemplos. No todo es Python ">
     <img alt="JavaScript&#x20;puede&#x20;ayudarte&#x20;a&#x20;desarrollar&#x20;aplicaciones&#x20;de&#x20;IA,&#x20;y&#x20;aqu&#x00ED;&#x20;tienes&#x20;ejemplos.&#x20;No&#x20;todo&#x20;es&#x20;Python&#x20;" width="375" height="142" src="https://i.blogs.es/267f73/js_ia/375_142.webp" onerror='this.src="https://i.blogs.es/267f73/js_ia/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/inteligencia-artificial/javascript-puede-ayudarte-a-desarrollar-aplicaciones-ia-aqui-tienes-ejemplos-no-todo-python" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="JavaScript puede ayudarte a desarrollar aplicaciones de IA, y aquí tienes ejemplos. No todo es Python ">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/inteligencia-artificial/javascript-puede-ayudarte-a-desarrollar-aplicaciones-ia-aqui-tienes-ejemplos-no-todo-python" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="JavaScript puede ayudarte a desarrollar aplicaciones de IA, y aquí tienes ejemplos. No todo es Python ">JavaScript puede ayudarte a desarrollar aplicaciones de IA, y aquí tienes ejemplos. No todo es Python </a>
   </div>
  </div>
 </div>
</div>
<h2>Las prisas dejan huella</h2>
<p>El desarrollo acelerado dejó un legado peculiar: <strong>sus inconsistencias</strong>, aún famosas entre los programadores. Resulta que JavaScript fue diseñado para ser tolerante: si el usuario cometía un error, lo ideal era que la página siguiera funcionando.</p>
<!-- BREAK 6 --><p>Y esa filosofía llevó, por ejemplo, a implementar un sistema extremadamente flexible —y a veces impredecible— de <strong>coerción de tipos</strong>. Ejemplos famosos:</p>
<ul><li>[] + [] produce "" (una cadena vacía).</li><li>[] + {} produce "[object Object]".</li><li>{} + [] produce 0 en algunos contextos.</li><li>"5" - 2 da 3, pero "5" + 2 da "52".</li></ul>
<p>Estos comportamientos se deben a reglas de conversión creadas rápidamente para compatibilizar cadenas, números y objetos sin romper el flujo del usuario, pero sin un diseño coherente a largo plazo. Sin embargo, estas imperfecciones no frenaron su éxito.</p>
<!-- BREAK 7 --><h2>La 'era JavaScript'</h2>
<p>Hoy JavaScript es mucho más que un lenguaje de navegador. Sus descendientes y ecosistemas relacionados se han expandido a prácticamente todos los ámbitos:</p>
<!-- BREAK 8 --><ul><li><strong>Casi el 99 % de los sitios web</strong> utilizan JavaScript en su lado cliente.</li><li><a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/asi-puedes-instalar-entorno-basico-desarrollo-node-js-windows-necesidad-wsl" data-vars-post-title="Así puedes instalar un entorno básico de desarrollo de Node.js en Windows (sin necesidad de WSL) " data-vars-post-url="https://www.genbeta.com/desarrollo/asi-puedes-instalar-entorno-basico-desarrollo-node-js-windows-necesidad-wsl" >Con Node.js</a>, se convirtió también un lenguaje de servidor.</li><li>Frameworks como <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/eres-desarrollador-frontend-este-framework-demandado-espana-nuestro-pais-eso-va-a-contracorriente" data-vars-post-title="Si eres desarrollador frontend, este es el framework más demandado en España. Nuestro país, eso sí, va a contracorriente " data-vars-post-url="https://www.genbeta.com/desarrollo/eres-desarrollador-frontend-este-framework-demandado-espana-nuestro-pais-eso-va-a-contracorriente" >React, Angular o Vue</a> dominan el desarrollo frontend.</li><li>Se utiliza en <strong>aplicaciones móviles</strong>, <strong>escritorio</strong>, <strong>videojuegos</strong> y hasta en dispositivos embebidos.</li></ul>
<p>En todas las encuestas de uso y popularidad, JavaScript sigue liderando como uno de los lenguajes más empleados del mundo.</p>
<p>Imagen | Marcos Merino mediante IA</p>
<p>En Genbeta | <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/mejor-que-podemos-hacer-hoy-javascript-retirarlo-asi-habla-creador-json-autor-how-javascript-works" data-vars-post-title="&quot;Lo mejor que podemos hacer hoy con JavaScript es retirarlo&quot;: así habla el creador de JSON y autor de 'How JavaScript Works'" data-vars-post-url="https://www.genbeta.com/desarrollo/mejor-que-podemos-hacer-hoy-javascript-retirarlo-asi-habla-creador-json-autor-how-javascript-works" >"Lo mejor que podemos hacer hoy con JavaScript es retirarlo": así habla el creador de JSON y autor de 'How JavaScript Works'</a></p>
<p><br></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Los programadores "no son racionales" a la hora de apostar por un lenguaje u otro, reconoce uno de ellos. "Es una cuestión de identidad" ]]></title>
                <link>https://www.genbeta.com/desarrollo/programadores-no-racionales-a-hora-apostar-lenguaje-u-otro-reconoce-uno-ellos-cuestion-identidad</link>
                <guid>https://www.genbeta.com/desarrollo/programadores-no-racionales-a-hora-apostar-lenguaje-u-otro-reconoce-uno-ellos-cuestion-identidad</guid>
                <pubDate>Sun, 09 Nov 2025 15:00:12 +0000</pubDate>
                                         <dc:creator>Marcos Merino</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/2596cb/chatgpt-image-9-nov-2025-14_27_22/1024_2000.png" alt="Los&#x20;programadores&#x20;&quot;no&#x20;son&#x20;racionales&quot;&#x20;a&#x20;la&#x20;hora&#x20;de&#x20;apostar&#x20;por&#x20;un&#x20;lenguaje&#x20;u&#x20;otro,&#x20;reconoce&#x20;uno&#x20;de&#x20;ellos.&#x20;&quot;Es&#x20;una&#x20;cuesti&#x00F3;n&#x20;de&#x20;identidad&quot;&#x20;">
    </p>
    <p>En el mundo del desarrollo de software, a priori pocas decisiones parecen ser tan técnicas —y, por tanto, teóricamente racionales— como la elección de un lenguaje de programación: se supone que se trata de comparar rendimiento, escalabilidad, herramientas o facilidad de mantenimiento. <strong>Pero en realidad, esta decisión es cualquier cosa menos objetiva</strong>.</p>
<!-- BREAK 1 --><p>Steve Francia, ingeniero con décadas de experiencia en empresas como Google y MongoDB, ha sido testigo de primera mano de cómo la subjetividad de esta clase de elecciones <strong>puede terminar costando millones</strong> de dólares, frenar la innovación y, en algunos casos, hundir empresas enteras.</p>
<p><a rel="noopener, noreferrer" href="https://spf13.com/p/the-hidden-conversation/" >Su conclusión</a> es contundente: a la hora de la verdad, <strong>las decisiones sobre lenguajes no se toman con criterios técnicos, son identitarios</strong>. Un poco como los equipos de fútbol o la política...</p>
<!-- BREAK 2 --><h2>Cuando cambiar de lenguaje cuesta una empresa</h2>
<p>Francia relata una experiencia que tuvo al comienzo de su carrera, en una startup llamada <em>Takkle</em>. Tras un ascenso repentino, se encontró liderando un equipo que desarrollaba con PHP. <strong>Todo iba bien, hasta que un nuevo CTO, que era un referente de la comunidad Perl</strong>, decidió que debían reescribir todo el sistema en dicho lenguaje.</p>
<!-- BREAK 3 --><p>La decisión se justificó con un análisis técnico que, en retrospectiva, dice Francia, parecía más una excusa que una evaluación real.</p>
<p>El resultado fue devastador: la productividad se desplomó, el equipo tuvo que perder tiempo en aprender un nuevo lenguaje, el gasto mensual se duplicó y la empresa perdió su oportunidad en el mercado. <strong><em>Takkle</em></strong><strong>, que era una prometedora red social universitaria, murió antes de poder competir</strong>, mientras que Facebook —casualmente, también construido en PHP en esas fechas— despegaba y se expandía.</p>
<!-- BREAK 4 --><p>La pregunta que persiguió a Francia durante años fue: ¿cómo pudo un líder tan experimentado tomar una decisión tan costosa?</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/desarrollo/lenguaje-programacion-popular-vienen-malos-tiempos-para-estas-debilidades-python" class="pivot-outboundlink" data-vars-post-title="Es el lenguaje de programación más popular, pero vienen malos tiempos para él. Estas son las debilidades de Python">
     <img alt="Es&#x20;el&#x20;lenguaje&#x20;de&#x20;programaci&#x00F3;n&#x20;m&#x00E1;s&#x20;popular,&#x20;pero&#x20;vienen&#x20;malos&#x20;tiempos&#x20;para&#x20;&#x00E9;l.&#x20;Estas&#x20;son&#x20;las&#x20;debilidades&#x20;de&#x20;Python" width="375" height="142" src="https://i.blogs.es/ee7494/chatgpt-image-20-sept-2025-14_22_39/375_142.webp" onerror='this.src="https://i.blogs.es/ee7494/chatgpt-image-20-sept-2025-14_22_39/375_142.png"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/desarrollo/lenguaje-programacion-popular-vienen-malos-tiempos-para-estas-debilidades-python" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Es el lenguaje de programación más popular, pero vienen malos tiempos para él. Estas son las debilidades de Python">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/desarrollo/lenguaje-programacion-popular-vienen-malos-tiempos-para-estas-debilidades-python" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Es el lenguaje de programación más popular, pero vienen malos tiempos para él. Estas son las debilidades de Python">Es el lenguaje de programación más popular, pero vienen malos tiempos para él. Estas son las debilidades de Python</a>
   </div>
  </div>
 </div>
</div>
<p>La respuesta llegó mucho después: <strong>no fue una decisión técnica, fue una decisión de identidad</strong>. El CTO no quería desarrollar la mejor plataforma posible; quería ser "un CTO de Perl". La reescritura no fue una estrategia tecnológica, sino el precio de sostener una identidad profesional.</p>
<!-- BREAK 5 --><h2>El patrón que se repite en todas partes</h2><p>Décadas después, Francia ha observado el mismo fenómeno una y otra vez. En Google, en MongoDB, en startups y grandes corporaciones. Equipos enteros discutían apasionadamente sobre lenguajes —C++, Java, Go, Python, Rust—, pero <strong>las argumentaciones técnicas eran sólo 'de cara a la galería'</strong>.</p>
<p>En un caso reciente, un vicepresidente de ingeniería propuso migrar a Rust un proyecto de 50 millones de dólares. Su presentación destacaba ventajas reales del lenguaje, pero curiosamente no había considerado alternativas obvias como Go, que superaba a Rust en varios de los criterios que el propio equipo había establecido.</p>
<!-- BREAK 6 --><p>Cuando Francia le preguntó si habían comparado otras opciones, el ejecutivo respondió: "En realidad, no. Todo el mundo está hablando de Rust".</p>
<p>Ese fue el momento de epifanía: <strong>la elección ya estaba hecha antes del análisis</strong>. No se trataba de un estudio técnico, sino de una justificación racional para una decisión emocional.</p>
<!-- BREAK 7 --><h2>La ciencia detrás del sesgo</h2><p>Las neurociencias han demostrado que cuando se desafían creencias centrales de nuestra identidad, <strong>nuestro cerebro reacciona como si estuviera siendo atacado físicamente</strong>. En <a class="text-outboundlink" href="https://www.xatakaciencia.com/psicologia/te-cuesta-cambiar-de-ideologia-politica-por-culpa-de-tu-cerebro" data-vars-post-title="Te cuesta cambiar de ideología política por culpa de tu cerebro " data-vars-post-url="https://www.xatakaciencia.com/psicologia/te-cuesta-cambiar-de-ideologia-politica-por-culpa-de-tu-cerebro" >estudios</a> con resonancia magnética funcional (fMRI), los investigadores observaron que cuando una creencia periférica era cuestionada, el cerebro respondía con razonamiento lógico...</p>
<p>...pero cuando la creencia formaba parte de la identidad —como una ideología política o religiosa— se activaban la <strong>amígdala</strong> (<a class="text-outboundlink" href="https://www.xataka.com/medicina-y-salud/esto-es-lo-que-pasa-en-nuestro-cerebro-cuando-pasamos-miedo-y-por-que-algunos-lo-disfrutan-tanto" data-vars-post-title="Esto es lo que pasa en nuestro cerebro cuando pasamos miedo, y por qué algunos lo disfrutan tanto " data-vars-post-url="https://www.xataka.com/medicina-y-salud/esto-es-lo-que-pasa-en-nuestro-cerebro-cuando-pasamos-miedo-y-por-que-algunos-lo-disfrutan-tanto" >centro del miedo</a>) y la <strong>corteza insular</strong> (que procesa el dolor emocional y el asco). El cerebro no evaluaba evidencia: <strong>se defendía</strong>.</p>
<!-- BREAK 8 --><p>Los desarrolladores no son inmunes a este mecanismo. Evaluar un lenguaje alternativo puede percibirse, inconscientemente, como <strong>una amenaza a la propia identidad</strong>. Cambiar de opinión implicaría imaginar una versión distinta de uno mismo. Y por eso, incluso frente a datos objetivos, seguimos aferrados a nuestras preferencias.</p>
<!-- BREAK 9 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/linux/kernel-linux-lleva-desarrollandose-34-anos-debate-lenguajes-programacion-esta-logrando-intoxicar-proyecto" class="pivot-outboundlink" data-vars-post-title="El kernel de Linux lleva desarrollándose 34 años. Un debate sobre lenguajes de programación está logrando intoxicar el proyecto ">
     <img alt="El&#x20;kernel&#x20;de&#x20;Linux&#x20;lleva&#x20;desarroll&#x00E1;ndose&#x20;34&#x20;a&#x00F1;os.&#x20;Un&#x20;debate&#x20;sobre&#x20;lenguajes&#x20;de&#x20;programaci&#x00F3;n&#x20;est&#x00E1;&#x20;logrando&#x20;intoxicar&#x20;el&#x20;proyecto&#x20;" width="375" height="142" src="https://i.blogs.es/68e866/6c84b6ec8de2fbb551b0af9ec942d2e7/375_142.webp" onerror='this.src="https://i.blogs.es/68e866/6c84b6ec8de2fbb551b0af9ec942d2e7/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/linux/kernel-linux-lleva-desarrollandose-34-anos-debate-lenguajes-programacion-esta-logrando-intoxicar-proyecto" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="El kernel de Linux lleva desarrollándose 34 años. Un debate sobre lenguajes de programación está logrando intoxicar el proyecto ">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/linux/kernel-linux-lleva-desarrollandose-34-anos-debate-lenguajes-programacion-esta-logrando-intoxicar-proyecto" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="El kernel de Linux lleva desarrollándose 34 años. Un debate sobre lenguajes de programación está logrando intoxicar el proyecto ">El kernel de Linux lleva desarrollándose 34 años. Un debate sobre lenguajes de programación está logrando intoxicar el proyecto </a>
   </div>
  </div>
 </div>
</div>
<h2>Una industria construida sobre la conversación equivocada</h2><p>Cada vez que los desarrolladores discuten sobre lenguajes, hay dos conversaciones ocurriendo a la vez. <strong>Una es la visible, repleta de argumentos técnicos</strong> ("Go compila más rápido", "Python tiene la mejor biblioteca de machine learning"...) <strong>y otra es invisible, y la que más le importa a los interlocutores</strong> ("Soy un programador de Rust, y quiero ser reconocido como tal").</p>
<p>El problema es que la industria ha institucionalizado esta dinámica. Se hacen debates, <em>benchmarks</em>, matrices de decisión y comparativas que fingen objetividad. Pero si quien lidera la evaluación es un entusiasta de cierto lenguaje, <strong>el resultado está decidido desde el principio</strong>. La empresa simplemente gastará millones en validar una elección emocional con datos que la respalden.</p>
<!-- BREAK 10 --><h3>El costo invisible de la identidad</h3><p>El sesgo no solo afecta la productividad; <strong>tiene un costo financiero enorme</strong>. <a rel="noopener, noreferrer" href="https://stripe.com/reports/developer-coefficient-2018" >Estudios de la industria</a>, como el de <em>Stripe</em> sobre el "coeficiente del desarrollador", estiman que los ingenieros dedican el 42% de su tiempo a gestionar <strong>deuda técnica</strong> (las consecuencias a largo plazo de tomar atajos en el desarrollo de software), buena parte de la cual surge de decisiones erróneas sobre el lenguaje y/o framework a usar.</p>
<p>Si cada cambio de lenguaje o de <em>framework</em> implica reaprender, rehacer y recontratar, el costo total puede representar hasta <strong>la mitad del presupuesto de desarrollo</strong> a lo largo de un producto.</p>
<!-- BREAK 11 --><p>Por ello, Francia propone un cambio de paradigma. En lugar de preguntarnos "¿qué lenguaje es mejor?", deberíamos plantearnos "¿Cuánto nos costará esta decisión?". El objetivo no es eliminar el factor emocional (eso sería imposible), sino <strong>hacer visibles los costos invisibles</strong> y permitir que las decisiones se tomen con base a métricas, en lugar de a 'lealtades'.</p>
<!-- BREAK 12 --><p>Imagen | Marcos Merino mediante IA</p>
<p>En Genbeta | <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/creador-hola-mundo-guru-c-ha-probado-a-programar-rust-otro-lenguaje-serian-5-minutos-rust-me-costo-dias" data-vars-post-title="El creador del 'Hola, mundo' y gurú de C ha probado a programar en Rust: &quot;En otro lenguaje serían 5 minutos, con Rust me costó días&quot; " data-vars-post-url="https://www.genbeta.com/desarrollo/creador-hola-mundo-guru-c-ha-probado-a-programar-rust-otro-lenguaje-serian-5-minutos-rust-me-costo-dias" >El creador del 'Hola, mundo' y gurú de C ha probado a programar en Rust: "En otro lenguaje serían 5 minutos, con Rust me costó días"</a>&nbsp;</p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Un lenguaje humano obligó a cambiar el lenguaje Kotlin: estuvo cinco años generando bugs antes de que lo resolvieran ]]></title>
                <link>https://www.genbeta.com/desarrollo/lenguaje-humano-obligo-a-cambiar-lenguaje-kotlin-estuvo-cinco-anos-generando-bugs-resolvieran</link>
                <guid>https://www.genbeta.com/desarrollo/lenguaje-humano-obligo-a-cambiar-lenguaje-kotlin-estuvo-cinco-anos-generando-bugs-resolvieran</guid>
                <pubDate>Tue, 14 Oct 2025 18:00:27 +0000</pubDate>
                                         <dc:creator>Marcos Merino</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/ba4719/chatgpt-image-14-oct-2025-19_57_39/1024_2000.png" alt="Un&#x20;lenguaje&#x20;humano&#x20;oblig&#x00F3;&#x20;a&#x20;cambiar&#x20;el&#x20;lenguaje&#x20;Kotlin&#x3A;&#x20;estuvo&#x20;cinco&#x20;a&#x00F1;os&#x20;generando&#x20;bugs&#x20;antes&#x20;de&#x20;que&#x20;lo&#x20;resolvieran&#x20;">
    </p>
    <p>Durante casi una década, un pequeño detalle del idioma turco estuvo provocando que el lenguaje de programación <strong>Kotlin</strong> —uno de los pilares del desarrollo moderno para Android— generara errores aparentemente inexplicables. Lo que comenzó como un mensaje en un foro en 2016 terminó convirtiéndose en un sorprendente hito de la historia de la ingeniería de software: <strong>un idioma humano que consiguió 'romper' un lenguaje de programación</strong>.</p>
<!-- BREAK 1 --><h2>Un error difícil de entender</h2><p>En marzo de 2016, el ingeniero turco <strong>Mehmet Nuri Öztürk</strong> publicó un mensaje en el foro de Kotlin. Su código no compilaba, y el compilador mostraba un error críptico:</p>
<blockquote>Unknown compiler message tag: INFO</blockquote><p>Nadie sabía qué significaba. Kotlin acababa de lanzar su versión 1.0, y todo indicaba que se trataba de un fallo menor. Sin embargo, pasaron <strong>meses</strong> antes de que otro programador, Muhammed Demirbaş, sospechara que el problema no tenía nada que ver con el código… sino con el idioma del sistema operativo.</p>
<h2>La “I” turca que confundió al compilador</h2><p>En la mayor parte de lenguas con alfabeto latino, la letra "I" se convierte en "i" al pasar a minúsculas. Pero en turco existen <strong>dos variantes</strong> de la letra:</p>
<ul><li><strong>"i" con punto → mayúscula “İ”</strong></li><li><strong>"ı" sin punto → mayúscula “I”</strong></li></ul><p>Así, mientras "INFO".toLowerCase() en inglés produce "info", en turco devuelve "ınfo", con una <em>ı</em> sin punto. Esa diferencia minúscula provocaba que el compilador de Kotlin no encontrara la categoría de mensaje esperada y fallara con un error incomprensible.</p>
<p>El error se documentó oficialmente como <strong>KT-13631</strong>: "Compilation fails on Turkish locale because of locale-sensitive uppercasing". Pero quedó enterrado entre cientos de tickets y no se solventó. Nadie sospechaba que aquel detalle iba a causar más estragos años después.</p>
<!-- BREAK 2 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/desarrollo/asi-se-convirtio-kotlin-lenguaje-referencia-para-desarrolladores-android" class="pivot-outboundlink" data-vars-post-title="Así se convirtió Kotlin en el lenguaje de referencia para los desarrolladores en Android">
     <img alt="As&#x00ED;&#x20;se&#x20;convirti&#x00F3;&#x20;Kotlin&#x20;en&#x20;el&#x20;lenguaje&#x20;de&#x20;referencia&#x20;para&#x20;los&#x20;desarrolladores&#x20;en&#x20;Android" width="375" height="142" src="https://i.blogs.es/cc593c/kotlin_android/375_142.webp" onerror='this.src="https://i.blogs.es/cc593c/kotlin_android/375_142.jpg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/desarrollo/asi-se-convirtio-kotlin-lenguaje-referencia-para-desarrolladores-android" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Así se convirtió Kotlin en el lenguaje de referencia para los desarrolladores en Android">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/desarrollo/asi-se-convirtio-kotlin-lenguaje-referencia-para-desarrolladores-android" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Así se convirtió Kotlin en el lenguaje de referencia para los desarrolladores en Android">Así se convirtió Kotlin en el lenguaje de referencia para los desarrolladores en Android</a>
   </div>
  </div>
 </div>
</div>
<h2>Cuando las corrutinas heredaron el bug</h2>
<p>En 2018, Kotlin lanzó su versión 1.3 con una de sus funciones estrella: las <strong>corrutinas</strong>, un sistema para manejar tareas asíncronas de manera elegante. Fue entonces cuando el problema lingüístico resurgió con fuerza.</p>
<!-- BREAK 3 --><p>El desarrollador turco Kemal Atlı reportó un error al actualizar su app:</p>
<blockquote>java.lang.NoSuchMethodError: No static method boxİnt(I)Ljava/lang/Integer;</blockquote>
<p>La clave estaba en el nombre del método:<em> boxİnt()</em>, con una “İ” mayúscula con punto. El compilador, al generar código para las corutinas, usaba la función <em>capitalize()</em> para construir nombres de métodos como <em>boxInt()</em>. Pero, al ejecutarse en un sistema configurado en turco, <strong>convertía “int” en “İnt”</strong>, y el compilador buscaba un método que no existía.</p>
<!-- BREAK 4 --><p>Ese error concreto se resolvió en 2019 al especificar explícitamente el uso del idioma inglés en la llamada a <em>capitalize(Locale.US)</em>. Pero ya era evidente que el problema iba mucho más allá de una simple función.</p>
<h2><strong>Un tercer bug y la solución definitiva</strong></h2>
<p>Dos años después, otro desarrollador turco, Muhittin Kaplan, reportó un nuevo fallo: su sencillo programa con intArrayOf() fallaba con un <em>NoSuchMethodError</em>. De nuevo, el culpable era el mismo: el método <em>decapitalize()</em> había devuelto "ıntArray" (con <em>ı</em> sin punto) en lugar de "intArray".</p>
<!-- BREAK 5 --><p>Finalmente, la respuesta del equipo de Kotlin fue contundente: <strong>buscar y corregir todas las operaciones de cambio de mayúsculas/minúsculas dependientes del idioma</strong> en el compilador. En total, <strong>173 líneas de código y 53 archivos</strong> fueron modificados, reemplazando las funciones <em>toLowerCase(), </em><em>toUpperCase(), capitalize() y decapitalize()</em> por versiones independientes del 'locale'.</p>
<p>En mayo de 2021, con el lanzamiento de Kotlin 1.5, el histórico bug <em>KT-13631</em> se cerró oficialmente, cinco años después de su primer reporte.</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/a-fondo/china-no-seria-potencia-tecnologica-este-cientifico-preso-no-hubiera-descifrado-como-escribir-mandarin-teclado-qwerty" class="pivot-outboundlink" data-vars-post-title="China no sería una potencia tecnológica si este científico preso no hubiera descifrado cómo escribir mandarín con teclado QWERTY ">
     <img alt="China&#x20;no&#x20;ser&#x00ED;a&#x20;una&#x20;potencia&#x20;tecnol&#x00F3;gica&#x20;si&#x20;este&#x20;cient&#x00ED;fico&#x20;preso&#x20;no&#x20;hubiera&#x20;descifrado&#x20;c&#x00F3;mo&#x20;escribir&#x20;mandar&#x00ED;n&#x20;con&#x20;teclado&#x20;QWERTY&#x20;" width="375" height="142" src="https://i.blogs.es/fe470f/chatgpt-image-2-ago-2025-14_31_37/375_142.webp" onerror='this.src="https://i.blogs.es/fe470f/chatgpt-image-2-ago-2025-14_31_37/375_142.png"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/a-fondo/china-no-seria-potencia-tecnologica-este-cientifico-preso-no-hubiera-descifrado-como-escribir-mandarin-teclado-qwerty" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="China no sería una potencia tecnológica si este científico preso no hubiera descifrado cómo escribir mandarín con teclado QWERTY ">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/a-fondo/china-no-seria-potencia-tecnologica-este-cientifico-preso-no-hubiera-descifrado-como-escribir-mandarin-teclado-qwerty" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="China no sería una potencia tecnológica si este científico preso no hubiera descifrado cómo escribir mandarín con teclado QWERTY ">China no sería una potencia tecnológica si este científico preso no hubiera descifrado cómo escribir mandarín con teclado QWERTY </a>
   </div>
  </div>
 </div>
</div>
<h2>Kotlin cambia su propio lenguaje por culpa de un idioma humano</h2><p>El impacto fue tan profundo que el equipo de JetBrains publicó la propuesta <em>KEEP-223: “</em><a rel="noopener, noreferrer" href="https://github.com/Kotlin/KEEP/issues/223" ><em>Locale-agnostic case conversions by default</em></a><em>”</em>, para rediseñar por completo la forma en que Kotlin maneja las conversiones de mayúsculas y minúsculas.</p>
<p>A partir de Kotlin 1.5 se introdujeron las nuevas funciones <em>uppercase()</em> y <em>lowercase()</em>, que ignoran el idioma del sistema. Y desde Kotlin 2.1 (noviembre de 2024), el uso de las antiguas <em>toLowerCase() y toUpperCase()</em> genera un <strong>error de compilación</strong>. Incluso <em>capitalize()</em> desapareció definitivamente, reemplazada por <em>replaceFirstChar { … }</em>.</p>
<!-- BREAK 6 --><p>En otras palabras: <strong>el idioma turco obligó a cambiar la biblioteca estándar de Kotlin</strong> y a redefinir funciones que existían desde su nacimiento.</p>
<h3>Más que un bug: una lección sobre lenguaje y cultura</h3><p>Al final, un carácter sin punto fue suficiente para confundir compiladores, bloquear proyectos y obligar a los ingenieros de JetBrains a replantear cómo su lenguaje debía entender el texto. Pero el problema no estaba en la lengua turca ni en los programadores de Kotlin, <strong>sino en una presunción que demostró ser injustificada</strong>: que el 'alfabeto inglés' (la variante inglesa del alfabeto latino, siendo precisos) era el estándar universal para la informática.</p>
<p>Vía | <a rel="noopener, noreferrer" href="https://sam-cooper.medium.com/the-country-that-broke-kotlin-84bdd0afb237" >Medium</a></p>
<p>Imagen | Marcos Merino mediante IA</p>
<p>En Genbeta | <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/usar-lenguaje-natural-no-simplifica-trabajo-1979-esta-leyenda-programacion-vio-venir-riesgos-vibe-coding" data-vars-post-title="&quot;Usar lenguaje natural no simplifica el trabajo&quot;. En 1979, esta leyenda de la programación ya vio venir los riesgos del 'vibe coding' " data-vars-post-url="https://www.genbeta.com/desarrollo/usar-lenguaje-natural-no-simplifica-trabajo-1979-esta-leyenda-programacion-vio-venir-riesgos-vibe-coding" >"Usar lenguaje natural no simplifica el trabajo". En 1979, esta leyenda de la programación ya vio venir los riesgos del 'vibe coding'</a>&nbsp;</p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA["Usar lenguaje natural no simplifica el trabajo". En 1979, esta leyenda de la programación ya vio venir los riesgos del 'vibe coding' ]]></title>
                <link>https://www.genbeta.com/desarrollo/usar-lenguaje-natural-no-simplifica-trabajo-1979-esta-leyenda-programacion-vio-venir-riesgos-vibe-coding</link>
                <guid>https://www.genbeta.com/desarrollo/usar-lenguaje-natural-no-simplifica-trabajo-1979-esta-leyenda-programacion-vio-venir-riesgos-vibe-coding</guid>
                <pubDate>Thu, 09 Oct 2025 18:00:13 +0000</pubDate>
                                         <dc:creator>Marcos Merino</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/fda993/chatgpt-image-9-oct-2025-19_23_20/1024_2000.png" alt="&quot;Usar&#x20;lenguaje&#x20;natural&#x20;no&#x20;simplifica&#x20;el&#x20;trabajo&quot;.&#x20;En&#x20;1979,&#x20;esta&#x20;leyenda&#x20;de&#x20;la&#x20;programaci&#x00F3;n&#x20;ya&#x20;vio&#x20;venir&#x20;los&#x20;riesgos&#x20;del&#x20;&#x27;vibe&#x20;coding&#x27;&#x20;">
    </p>
    <p>Simon Højberg, ingeniero frontend, ha publicado <a rel="noopener, noreferrer" href="https://hojberg.xyz/the-programmer-identity-crisis/" >en su blog</a> un texto que es algo más que una crítica al uso de la IA en el desarrollo de software: no se queja porque la IA "venga a quitarnos el trabajo", sino porque —según él— está <strong>borrando la misma identidad cultural del programador</strong>.</p>
<!-- BREAK 1 --><p>La programación, dice, siempre fue un acto de precisión, artesanía y pensamiento lógico. Hoy, con las herramientas de inteligencia artificial generativa, está mutando en algo completamente contrario a esa idea: en el llamado <em>vibe-coding</em> (recordemos que una posible traducción literal podría ser 'programar por sensaciones').</p>
<h2>De artesanos a 'operadores'</h2>
<p>Durante décadas, los programadores se definieron como <strong>artesanos del pensamiento formal</strong>. Su tarea no era solo construir software, sino comprender profundamente los sistemas: cómo funcionan, cómo fallan y cómo se transforman.</p>
<!-- BREAK 2 --><p>En su ensayo, Højberg recuerda sus días programando frente a <em>Vim</em>, su editor de texto. Ahí, dice, encontraba el placer de la creación pura: <strong>resolver un rompecabezas lógico con las manos y la mente sincronizadas</strong>. Pero ese mundo —según él— se está evaporando:</p>
<blockquote><p>"Hoy nos piden escribir especificaciones en Markdown en lugar de código. Ya no exploramos los rincones del sistema ni resolvemos acertijos [...] Ahora operamos una nube de agentes que piensan por nosotros".</p>
</blockquote>
<p>El <em>vibe-coding</em> <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/vibe-coding-revolucion-para-ser-productivo-programadores-senior-se-sienten-nineras-codigo" data-vars-post-title="El ‘vibe coding’ es una revolución para ser más productivo. Una que hace que los programadores senior se sientan ‘niñeras de código’" data-vars-post-url="https://www.genbeta.com/desarrollo/vibe-coding-revolucion-para-ser-productivo-programadores-senior-se-sienten-nineras-codigo" >reemplaza el oficio</a> por una especie de <em>dirección de orquesta</em>, donde el programador dicta órdenes en lenguaje natural y la IA ejecuta. El problema, dice Højberg, es que eso <strong>desconecta al ser humano de su propia herramienta</strong>. Ya no somos creadores, sino supervisores: y lo peor es que <strong>nos estamos acostumbrando a no entender lo que producimos.</strong></p>
<!-- BREAK 3 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/inteligencia-artificial/escribir-codigo-no-aburrido-mi-oficio-este-programador-ha-vuelto-al-modo-texto-para-evitar-tentacion-ia" class="pivot-outboundlink" data-vars-post-title="&quot;Escribir código no es 'lo aburrido', es mi oficio&quot;. Este programador ha vuelto al modo texto para evitar la tentación de la IA">
     <img alt="&quot;Escribir&#x20;c&#x00F3;digo&#x20;no&#x20;es&#x20;&#x27;lo&#x20;aburrido&#x27;,&#x20;es&#x20;mi&#x20;oficio&quot;.&#x20;Este&#x20;programador&#x20;ha&#x20;vuelto&#x20;al&#x20;modo&#x20;texto&#x20;para&#x20;evitar&#x20;la&#x20;tentaci&#x00F3;n&#x20;de&#x20;la&#x20;IA" width="375" height="142" src="https://i.blogs.es/c84bdd/chatgpt-image-24-abr-2025-21_05_47/375_142.webp" onerror='this.src="https://i.blogs.es/c84bdd/chatgpt-image-24-abr-2025-21_05_47/375_142.png"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/inteligencia-artificial/escribir-codigo-no-aburrido-mi-oficio-este-programador-ha-vuelto-al-modo-texto-para-evitar-tentacion-ia" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="&quot;Escribir código no es 'lo aburrido', es mi oficio&quot;. Este programador ha vuelto al modo texto para evitar la tentación de la IA">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/inteligencia-artificial/escribir-codigo-no-aburrido-mi-oficio-este-programador-ha-vuelto-al-modo-texto-para-evitar-tentacion-ia" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="&quot;Escribir código no es 'lo aburrido', es mi oficio&quot;. Este programador ha vuelto al modo texto para evitar la tentación de la IA">&quot;Escribir código no es &#039;lo aburrido&#039;, es mi oficio&quot;. Este programador ha vuelto al modo texto para evitar la tentación de la IA</a>
   </div>
  </div>
 </div>
</div>
<h2>El retorno al caos</h2>
<p>Para Højberg, el corazón del problema no es la IA en sí, sino <strong>el lenguaje con el que programamos cuando la usamos</strong>: el lenguaje natural. El nuestro, vaya.</p>
<!-- BREAK 4 --><blockquote><p>"Los LLMs (modelos de lenguaje) son imprecisos por naturaleza. Tanto en sus propiedades como en la manera en que los instruimos: con lenguajes naturales que se pueden malinterpretar".</p>
</blockquote>
<blockquote><p>"Es curioso que hayamos elegido este enfoque para la computación, considerando cuánto nos incomoda a los programadores el no determinismo. Preferimos la previsibilidad [pero] el código generado por LLMs representa lo opuesto a eso: un caos inconsistente".</p>
</blockquote><p><strong>Durante más de 70 años, la computación evolucionó buscando </strong><strong>la precisión</strong>. Los lenguajes de programación formales —desde el ensamblador hasta Python— fueron específicamente diseñados para eliminar la ambigüedad, y el ordenador debía hacer <em>exactamente</em> lo que el humano ordenara. Esa era, de hecho, la belleza del código: la posibilidad de <strong>dominar el caos del lenguaje humano</strong> mediante estructuras lógicas, reglas y tipos de datos claros.</p>
<p>Con la IA, afirma Højberg, esa claridad se desvanece. El código generado por un modelo de lenguaje puede cambiar con cada intento, aunque el 'prompt' sea el mismo... todo ello porque es <strong>probabilístico, no determinista</strong>. Y lo peor: puede parecer correcto, compilar incluso, y aun así estar profundamente roto.</p>
<!-- BREAK 5 --><h2>Dijkstra tenía razón</h2>
<p>Ojo, que Højberg no está solo en su cruzada. De hecho, para justificar su posición, cita a uno de los grandes filósofos de la computación: <strong>Edsger W. Dijkstra</strong>, pionero de la ingeniería de software y defensor acérrimo del rigor formal.</p>
<!-- BREAK 6 --><p>En 1979, Dijkstra escribió un breve (y ahora visionario) texto titulado <em>“</em><a rel="noopener, noreferrer" href="https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667.html" ><em>On the foolishness of natural language programming</em></a><em>”</em> ("Sobre la tontería de programar con lenguaje natural"). Allí advertía:</p>
<blockquote><p>"Debemos desafiar la idea de que los lenguajes naturales simplifican el trabajo. [...] La virtud de los textos formales es que su manipulación, para ser legítima, debe cumplir solo unas pocas reglas simples. Son, cuando lo piensas, una herramienta asombrosamente efectiva para <strong>excluir todo tipo de sinsentidos</strong> que, al usar nuestras lenguas nativas, resulta casi imposible evitar".</p>
</blockquote>
<p>Casi medio siglo después, Højberg rescata esa advertencia y la aplica a los sistemas de inteligencia artificial actuales. Su mensaje es claro: <strong>volver al lenguaje natural es un retroceso intelectual.</strong></p>
<!-- BREAK 7 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/desarrollo/este-programador-colegas-que-recurren-a-ia-no-me-importa-como-llego-codigo-a-tu-ide-quiero-que-te-importe" class="pivot-outboundlink" data-vars-post-title="Este programador, sobre los colegas que recurren a la IA: &quot;No me importa cómo llegó el código a tu IDE, quiero que te importe&quot; ">
     <img alt="Este&#x20;programador,&#x20;sobre&#x20;los&#x20;colegas&#x20;que&#x20;recurren&#x20;a&#x20;la&#x20;IA&#x3A;&#x20;&quot;No&#x20;me&#x20;importa&#x20;c&#x00F3;mo&#x20;lleg&#x00F3;&#x20;el&#x20;c&#x00F3;digo&#x20;a&#x20;tu&#x20;IDE,&#x20;quiero&#x20;que&#x20;te&#x20;importe&quot;&#x20;" width="375" height="142" src="https://i.blogs.es/d0eb2c/chatgpt-image-28-ago-2025-20_52_37/375_142.webp" onerror='this.src="https://i.blogs.es/d0eb2c/chatgpt-image-28-ago-2025-20_52_37/375_142.png"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/desarrollo/este-programador-colegas-que-recurren-a-ia-no-me-importa-como-llego-codigo-a-tu-ide-quiero-que-te-importe" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Este programador, sobre los colegas que recurren a la IA: &quot;No me importa cómo llegó el código a tu IDE, quiero que te importe&quot; ">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/desarrollo/este-programador-colegas-que-recurren-a-ia-no-me-importa-como-llego-codigo-a-tu-ide-quiero-que-te-importe" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Este programador, sobre los colegas que recurren a la IA: &quot;No me importa cómo llegó el código a tu IDE, quiero que te importe&quot; ">Este programador, sobre los colegas que recurren a la IA: &quot;No me importa cómo llegó el código a tu IDE, quiero que te importe&quot; </a>
   </div>
  </div>
 </div>
</div>
<p>Donde antes buscábamos precisión, ahora aceptamos probabilidad. Donde antes cultivábamos el pensamiento lógico, ahora confiamos en un modelo estadístico que 'adivina' lo que queremos decir.</p>
<!-- BREAK 8 --><h2>La pérdida del rigor mental</h2><p>Programar no es solo dar instrucciones a un ordenador: es <strong>una forma de pensar</strong>. Cuando un programador traduce su idea a código, está forzando su mente a <strong>formalizar, depurar y estructurar</strong> su razonamiento. Es ese proceso lo que genera comprensión... algo que con la IA se pierde, y <strong>el pensamiento formal se sustituye por el consumo pasivo.</strong></p>
<blockquote><p>"Hay algo en el código generado por IA que hace que mis ojos se nublen. Lo leo sin atención, abrumado y aburrido. Acepto errores invisibles, siempre que el programa compile".</p>
</blockquote><p>El programador ya no necesita construir una 'teoría' interna del sistema, como decía el informático danés Peter Naur en su célebre texto <em>'Programming as Theory Building'</em>: Naur sostenía que lo más importante del proceso de programar no es el software resultante, sino el entendimiento que el programador desarrolla al hacerlo, sin esa comprensión, mantener y extender un sistema se vuelve imposible.</p>
<p><strong>El </strong><strong><em>vibe-coding</em></strong><strong> destruye precisamente eso, el contacto directo con la complejidad</strong>: la IA oculta el proceso y ofrece resultados opacos... y, así, el código 'funciona' —hasta que deja de hacerlo—, y nadie sabe muy bien por qué.</p>
<!-- BREAK 9 --><p>Imagen | Marcos Merino mediante IA</p>
<p>En Genbeta | <a class="text-outboundlink" href="https://www.genbeta.com/inteligencia-artificial/inesperado-paralelismo-vibe-coding-tragaperras-este-programador-explican-como-logran-que-usuario-se-enganche" data-vars-post-title="El inesperado paralelismo entre el 'vibe coding' y las tragaperras. Este programador explican cómo logran que el usuario se 'enganche' " data-vars-post-url="https://www.genbeta.com/inteligencia-artificial/inesperado-paralelismo-vibe-coding-tragaperras-este-programador-explican-como-logran-que-usuario-se-enganche" >El inesperado paralelismo entre el 'vibe coding' y las tragaperras. Este programador explican cómo logran que el usuario se 'enganche'</a>&nbsp;</p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Es el lenguaje de programación más popular, pero vienen malos tiempos para él. Estas son las debilidades de Python]]></title>
                <link>https://www.genbeta.com/desarrollo/lenguaje-programacion-popular-vienen-malos-tiempos-para-estas-debilidades-python</link>
                <guid>https://www.genbeta.com/desarrollo/lenguaje-programacion-popular-vienen-malos-tiempos-para-estas-debilidades-python</guid>
                <pubDate>Fri, 26 Sep 2025 12:01:56 +0000</pubDate>
                                         <dc:creator>Marcos Merino</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/ee7494/chatgpt-image-20-sept-2025-14_22_39/1024_2000.png" alt="Es&#x20;el&#x20;lenguaje&#x20;de&#x20;programaci&#x00F3;n&#x20;m&#x00E1;s&#x20;popular,&#x20;pero&#x20;vienen&#x20;malos&#x20;tiempos&#x20;para&#x20;&#x00E9;l.&#x20;Estas&#x20;son&#x20;las&#x20;debilidades&#x20;de&#x20;Python">
    </p>
    <p>Durante la última década, <strong>Python</strong> ha sido el niño mimado del mundo de la programación: las universidades lo enseñan como primer lenguaje, los gigantes tecnológicos lo usan en ciencia de datos y miles de desarrolladores lo eligen por su sencillez. <a class="text-outboundlink" href="https://www.genbeta.com/a-fondo/python-lenguaje-popular-uno-demandados-empresas-estos-cursos-puedes-aprender-cero-a-nivel-avanzado" data-vars-post-title="Python es el lenguaje más popular y uno de los más demandados por empresas: con estos cursos puedes aprender de cero a nivel avanzado" data-vars-post-url="https://www.genbeta.com/a-fondo/python-lenguaje-popular-uno-demandados-empresas-estos-cursos-puedes-aprender-cero-a-nivel-avanzado" >Se ha convertido</a> en sinónimo de accesibilidad y productividad.</p>
<!-- BREAK 1 --><p>Pero en los pasillos de conferencias, en los repositorios de GitHub y en los foros de desarrolladores, cada vez resuenan más preguntas incómodas: ¿sigue siendo Python la mejor apuesta de futuro? ¿O estamos ante el inicio de un declive silencioso? Esta es <a rel="noopener, noreferrer" href="https://medium.com/codeelevation/python-is-dying-and-nobody-wants-to-admit-it-4260f774117a">la teoría</a> que sostiene Devrim Ozcay, ingeniero de software en Huawei.</p>
<!-- BREAK 2 --><h2>El espejismo del crecimiento</h2><p>Las estadísticas parecen contundentes: Python <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/estos-seran-lenguajes-programacion-salida-2025-puedes-empezar-a-aprenderlos-gratis" data-vars-post-title="Estos serán los lenguajes de programación con más salida en 2025. Puedes empezar a aprenderlos gratis " data-vars-post-url="https://www.genbeta.com/desarrollo/estos-seran-lenguajes-programacion-salida-2025-puedes-empezar-a-aprenderlos-gratis" >encabeza rankings como el índice TIOBE</a> o las listas de proyectos en GitHub. Sin embargo, dice Ozcay, al mirar de cerca descubrimos que gran parte de esta "popularidad" corresponde a <strong>principiantes que lo usan durante uno o dos años y luego lo abandonan</strong>. El resultado: una comunidad enorme, pero con escaso peso de desarrolladores experimentados. Es como un estadio lleno de aficionados que entran y salen sin llegar a formar un equipo sólido en el campo.</p>
<h2>El fantasma del rendimiento (y la sombra de Rust)</h2><p>Quienes trabajan con Python lo saben: el lenguaje es cómodo, pero bastante <strong>lento</strong> en comparación con alternativas modernas. Lo novedoso es cómo los desarrolladores están respondiendo a este problema: escribiendo partes críticas en <strong>Rust</strong>, un lenguaje más rápido y seguro.</p>
<p>Ya no se trata solo de extensiones en C (como en el pasado), sino de bibliotecas de Python reescritas casi por completo en Rust. Ejemplos como <strong>Polars</strong> (alternativa a pandas), <strong>Pydantic v2</strong> (validación de datos) o <strong>Granian</strong> (servidor web ASGI) muestran una tendencia clara: hasta dentro de la propia comunidad Python, se busca escapar de sus limitaciones.</p>
<!-- BREAK 3 --><div class="article-asset-summary article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="sumario">Python fue fácil, fue útil y marcó una época. Pero puede que, para las próximas décadas, no sea suficiente.</div>
   </div>
</div>
<h2>¿Demasiado fácil para ser bueno?</h2><p>El marketing de Python siempre ha apostado por destacar su <strong>facilidad de uso</strong>. Esto <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/20-cursos-tutoriales-python-para-aprender-a-programar-lenguaje-amado-desarrolladores-1" data-vars-post-title="20 cursos y tutoriales de Python para aprender a programar en el lenguaje más amado por los desarrolladores" data-vars-post-url="https://www.genbeta.com/desarrollo/20-cursos-tutoriales-python-para-aprender-a-programar-lenguaje-amado-desarrolladores-1" >atrajo a miles de nuevos programadores</a>, pero al mismo tiempo generó una paradoja: un gran número de usuarios no profundiza en fundamentos como la gestión de memoria o la optimización.</p>
<p>El resultado es una espiral: código poco eficiente → más consumo de hardware → menos motivación para mejorar. Mientras tanto, quienes buscan construir sistemas de alto rendimiento optan por lenguajes que exigen comprender más a fondo lo que ocurre bajo el capó.</p>
<!-- BREAK 4 --><h2>Un lugar secundario en las empresas</h2><p>Aunque muchas grandes compañías usan Python, su papel suele ser <strong>periférico</strong>: scripts de automatización, análisis de datos, prototipos rápidos. Para sistemas centrales donde importan la confiabilidad y la velocidad, prevalecen lenguajes como Java, C# o Go. Esto refuerza la percepción de Python como una herramienta útil, pero sin poder aspirar al corazón tecnológico de las organizaciones.</p>
<h2>Engañosa popularidad en IA</h2><p>Python viene siendo conocido como "el lenguaje de la IA" <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/antes-que-se-impusiera-python-estos-fueron-lenguajes-que-se-desarrollaba-inteligencia-artificial-1" data-vars-post-title="Antes de que se impusiera Python, estos fueron los lenguajes con los que se desarrollaba inteligencia artificial" data-vars-post-url="https://www.genbeta.com/desarrollo/antes-que-se-impusiera-python-estos-fueron-lenguajes-que-se-desarrollaba-inteligencia-artificial-1" >desde hace ya tiempo</a>. Sin embargo, lo cierto es que en bibliotecas como TensorFlow, PyTorch o NumPy (que son las que le han dado esa fama), <strong>el trabajo duro lo hacen </strong><strong>C, C++ y CUDA</strong><strong>.</strong> Python actúa meramente como una interfaz, una especie de "volante" que dirige un motor construido en otros lenguajes.</p>
<p>A medida que los modelos de IA se despliegan en móviles o sistemas embebidos, donde cada ciclo de CPU cuenta, esta capa extra se convierte en un lastre. Y muchas compañías ya están experimentando (aquí también) con Rust, Go o incluso TypeScript para pipelines de IA más eficientes.</p>
<!-- BREAK 5 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/desarrollo/este-conocido-hacker-sorprende-al-decir-que-todo-programador-deberia-aprender-c-ensamblador-musk-contrato-para-arreglar-twitter" class="pivot-outboundlink" data-vars-post-title="Este conocido hacker sorprende al decir que todo programador debería aprender C y ensamblador. Musk lo contrató para arreglar Twitter ">
     <img alt="Este&#x20;conocido&#x20;hacker&#x20;sorprende&#x20;al&#x20;decir&#x20;que&#x20;todo&#x20;programador&#x20;deber&#x00ED;a&#x20;aprender&#x20;C&#x20;y&#x20;ensamblador.&#x20;Musk&#x20;lo&#x20;contrat&#x00F3;&#x20;para&#x20;arreglar&#x20;Twitter&#x20;" width="375" height="142" src="https://i.blogs.es/50aee4/assembly/375_142.webp" onerror='this.src="https://i.blogs.es/50aee4/assembly/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/desarrollo/este-conocido-hacker-sorprende-al-decir-que-todo-programador-deberia-aprender-c-ensamblador-musk-contrato-para-arreglar-twitter" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Este conocido hacker sorprende al decir que todo programador debería aprender C y ensamblador. Musk lo contrató para arreglar Twitter ">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/desarrollo/este-conocido-hacker-sorprende-al-decir-que-todo-programador-deberia-aprender-c-ensamblador-musk-contrato-para-arreglar-twitter" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Este conocido hacker sorprende al decir que todo programador debería aprender C y ensamblador. Musk lo contrató para arreglar Twitter ">Este conocido hacker sorprende al decir que todo programador debería aprender C y ensamblador. Musk lo contrató para arreglar Twitter </a>
   </div>
  </div>
 </div>
</div>
<h2>Una fundación en números rojos</h2><p>La <strong>Python Software Foundation (PSF)</strong> es la organización que financia el desarrollo central, mantiene el repositorio PyPI y coordina la comunidad. Sin embargo, sus últimos informes financieros muestran pérdidas millonarias y la necesidad de suspender programas de apoyo. En 2024, incluso tuvieron que pedir ayuda a empresas para poder organizar <strong>PyCon</strong>, la conferencia más importante del ecosistema. Que la institución responsable de la infraestructura del lenguaje esté al borde de la insolvencia genera un comprensible nerviosismo.</p>
<h2>El talón de Aquiles: sostenibilidad</h2><p>Buena parte del ecosistema de Python se mantiene gracias a <strong>trabajo voluntario y donaciones</strong>. Librerías críticas dependen de una o dos personas, lo que deja a la comunidad vulnerable al desgaste o abandono de esos mantenedores. La fragilidad financiera de la PSF es solo la punta del iceberg: la sostenibilidad a largo plazo está en juego.</p>
<h2>Versiones nuevas que no despegan</h2><p>Otro signo preocupante es la <strong>baja adopción de las versiones más recientes</strong> que va lanzando la citada fundación: apenas un 15% de los desarrolladores usa Python 3.13. Esto contrasta con lenguajes como Go o JavaScript, donde los equipos de desarrollo actualizan en cuestión de meses. El resultado es un ecosistema fragmentado, con una mayoría de proyectos estancados en versiones antiguas, lo que dificulta la innovación y la seguridad.</p>
<h2>Herramientas que desesperan</h2><p>El manejo de entornos virtuales y paquetes sigue siendo uno de los mayores dolores de cabeza para la comunidad: herramientas como <strong>pip</strong>, <strong>conda</strong> o <strong>poetry</strong> compiten entre sí y suelen generar conflictos. Mientras tanto, otros ecosistemas ofrecen experiencias más sencillas: Rust con su <strong>cargo</strong>, Go con sus módulos integrados, o JavaScript con <strong>npm</strong> y <strong>yarn</strong>. La respuesta en Python suele ser "usa Docker"... pero esa no es una solución, sino un parche.</p>
<h2>¿Un futuro escrito en otros lenguajes?</h2><p>Nadie (tampoco Ozcay) piensa que Python vaya a desaparecer mañana. Como ocurrió con COBOL, probablemente siga presente en universidades, scripts heredados y proyectos de ciencia de datos. Pero cada vez más indicios apuntan a que su rol como <strong>lenguaje de futuro</strong> está en entredicho, y que las energías innovadoras parecen moverse hacia otros horizontes: <strong>Rust</strong> por su seguridad y rendimiento, <strong>Go</strong> por su simplicidad en sistemas distribuidos, <strong>TypeScript</strong> por su popularidad en la web, o incluso nuevos jugadores como <strong>Kotlin</strong> y <strong>Zig</strong>.</p>
<p>Imagen | Marcos Merino mediante IA</p>
<p>En Genbeta | <a class="text-outboundlink" href="https://www.genbeta.com/ofimatica/su-jefe-se-rio-cuando-le-propuso-usar-python-limitate-a-usar-excel-le-cogeras-truco-1" data-vars-post-title="Su jefe se rio de él cuando le propuso usar Python: &quot;Limítate a usar Excel, ya le cogerás el truco&quot;" data-vars-post-url="https://www.genbeta.com/ofimatica/su-jefe-se-rio-cuando-le-propuso-usar-python-limitate-a-usar-excel-le-cogeras-truco-1" >Su jefe se rio de él cuando le propuso usar Python: "Limítate a usar Excel, ya le cogerás el truco"</a>&nbsp;</p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA["Es el peor lenguaje de programación que he usado". Cómo GW-BASIC traumatizó a toda una generación ]]></title>
                <link>https://www.genbeta.com/desarrollo/peor-lenguaje-programacion-que-he-usado-como-gw-basic-traumatizo-a-toda-generacion</link>
                <guid>https://www.genbeta.com/desarrollo/peor-lenguaje-programacion-que-he-usado-como-gw-basic-traumatizo-a-toda-generacion</guid>
                <pubDate>Tue, 23 Sep 2025 07:00:46 +0000</pubDate>
                                         <dc:creator>Marcos Merino</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/285f9f/chatgpt-image-16-sept-2025-20_36_11/1024_2000.png" alt="&quot;Es&#x20;el&#x20;peor&#x20;lenguaje&#x20;de&#x20;programaci&#x00F3;n&#x20;que&#x20;he&#x20;usado&quot;.&#x20;C&#x00F3;mo&#x20;GW-BASIC&#x20;traumatiz&#x00F3;&#x20;a&#x20;toda&#x20;una&#x20;generaci&#x00F3;n&#x20;">
    </p>
    <p>Cuando hablamos de lenguajes de programación "difíciles" y/o "odiados", es relativamente habitual que surjan nombres como C++, Java, PHP o incluso JavaScript. Sin embargo, para muchos programadores veteranos, hay un lenguaje que se lleva la palma como el peor de todos: <strong>GW-BASIC</strong>.</p>
<!-- BREAK 1 --><p>A pesar de haber sido el punto de partida en la programación para miles de personas en los años 80, este lenguaje representaba una auténtica pesadilla en términos de usabilidad, estructura y mantenimiento del código.</p>
<p>El escritor y desarrollador Huw Collingbourne ha <a rel="noopener, noreferrer" href="https://www.youtube.com/watch?v=oZc7NPwJMnw" >explicado</a> en su canal de YouTube todas las razones legítimas para tenerle cierta "inquina" a este lenguaje.</p>
<!-- BREAK 2 --><h2>Los orígenes de GW-BASIC</h2>
<p>A principios de la década de 1980, la informática personal comenzaba a despegar. Los primeros PC con <strong>MS-DOS</strong> solían incluir, de forma gratuita, un lenguaje de programación básico: GW-BASIC. El nombre nunca tuvo un origen oficial claro; algunos lo atribuían a '<em>Gee Whiz</em>' ("¡Caramba!", en inglés), como una expresión de sorpresa ante la programación de software.</p>
<!-- BREAK 3 --><p>La gratuidad y disponibilidad de GW-BASIC lo convirtieron en el <strong>primer lenguaje de muchos programadores autodidactas</strong>, pero también en la fuente de frustraciones que marcaron sus inicios.</p>
<h2>Obstáculos que hoy resultan impensables</h2>
<p>Y es que, comparado con cualquier lenguaje moderno, GW-BASIC parecía más un campo minado que un entorno de programación. Lo que para nosotros hoy es lo mínimo esperable en un lenguaje o en un editor, simplemente <strong>no existía</strong> en aquellos años.</p>
<!-- BREAK 4 --><h3>I) La tiranía de los números de línea</h3>
<p>El rasgo más característico (y temido) de GW-BASIC era la necesidad de <strong>numerar cada línea de código</strong>. Así, un programa típico podía comenzar con algo como:</p>
<!-- BREAK 5 --><blockquote>10 LET X = 1<br>20 X = X + 1<br>30 IF X &gt; 10 THEN GOTO 100<br>40 PRINT X<br>50 GOTO 20<br>100 END</blockquote>
<p>¿Por qué se dejaban saltos de diez en diez? Fácil: para poder <strong>insertar nuevas instrucciones después</strong>. El problema surgía cuando el espacio intermedio no era suficiente: si querías añadir veinte líneas entre el 10 y el 20, te encontrabas con un callejón sin salida.</p>
<!-- BREAK 6 --><p>La única solución era mandar el flujo de ejecución a otra parte del código, a veces en la línea 5000 o 10000, generando lo que más tarde se conoció como <strong>'código spaghetti'</strong>: un enredo de saltos ininteligibles y difíciles de mantener.</p>
<div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=1306 width=2286 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/46f215/gw/450_1000.webp 450w, https://i.blogs.es/46f215/gw/650_1200.webp 681w,https://i.blogs.es/46f215/gw/1024_2000.webp 1024w, https://i.blogs.es/46f215/gw/1366_2000.webp 1366w" src="https://i.blogs.es/46f215/gw/450_1000.webp" alt="Gw" onerror="this.src='https://i.blogs.es/46f215/gw/450_1000.png';this.srcset='https://i.blogs.es/46f215/gw/450_1000.png 450w, https://i.blogs.es/46f215/gw/650_1200.png 681w,https://i.blogs.es/46f215/gw/1024_2000.png 1024w, https://i.blogs.es/46f215/gw/1366_2000.png 1366w';return false;">
   <img alt="Gw" class="centro_sinmarco" src="https://i.blogs.es/46f215/gw/450_1000.webp">
   
      </div>
</div>
<h3>II) GOTO: la receta para el caos</h3>
<p>En lugar de estructuras modernas como funciones o procedimientos con nombres claros, GW-BASIC dependía de <strong>comandos GOTO y GOSUB</strong>. Estos trasladaban la ejecución a otra línea del programa, sin ofrecer contexto ni modularidad. El resultado era un laberinto de saltos donde <strong>seguir la lógica del programa era casi imposible</strong>.</p>
<!-- BREAK 7 --><p>Los programadores que venían de lenguajes más estructurados, o que luego pasaron a Pascal o C, recuerdan con horror la dificultad de <strong>depurar errores</strong> en medio de ese enredo de instrucciones.</p>
<h3>III) La ausencia total de herramientas de depuración</h3>
<p>Hoy en día damos por sentado que podemos detener la ejecución de un programa, inspeccionar variables, establecer puntos de ruptura e incluso visualizar la pila de llamadas. En GW-BASIC, nada de eso era posible. La única manera de entender qué estaba fallando era llenar el código con <strong>instrucciones </strong><strong>PRINT</strong><strong> estratégicamente colocadas</strong>:</p>
<!-- BREAK 8 --><blockquote>100 PRINT "X vale "; X<br>110 PRINT "Entrando en el bucle"</blockquote>
<p>Esto no solo ensuciaba el programa, sino que generaba aún más caos al obligar al programador a borrar, mover o añadir estas líneas de depuración improvisada.</p>
<!-- BREAK 9 --><h3>IV) La imposibilidad de estructurar el código</h3>
<p>GW-BASIC carecía de <strong>funciones y procedimientos con nombres significativos</strong>. Toda la lógica debía organizarse en una secuencia lineal, con saltos mediante GOTO o GOSUB. Esto significaba que <strong>no existía la reutilización real de código</strong>: cualquier comportamiento que se repitiera debía escribirse varias veces o resolverse con un salto a otra línea numerada.</p>
<!-- BREAK 10 --><p>El resultado era un monstruo difícil de leer, mantener o ampliar. En contraste, incluso los lenguajes contemporáneos como Pascal ya ofrecían <strong>módulos bien definidos</strong>, lo que marcaba la diferencia entre un programa caótico y uno comprensible.</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/a-fondo/esta-monja-creo-lenguaje-basic-se-convirtio-primera-doctorada-computacion-24-anos-despues-entrar-convento-1" class="pivot-outboundlink" data-vars-post-title="Esta monja creó el lenguaje BASIC (y se convirtió en la primera doctorada en computación) 24 años después de entrar en el convento">
     <img alt="Esta&#x20;monja&#x20;cre&#x00F3;&#x20;el&#x20;lenguaje&#x20;BASIC&#x20;&#x28;y&#x20;se&#x20;convirti&#x00F3;&#x20;en&#x20;la&#x20;primera&#x20;doctorada&#x20;en&#x20;computaci&#x00F3;n&#x29;&#x20;24&#x20;a&#x00F1;os&#x20;despu&#x00E9;s&#x20;de&#x20;entrar&#x20;en&#x20;el&#x20;convento" width="375" height="142" src="https://i.blogs.es/978ac8/keller/375_142.webp" onerror='this.src="https://i.blogs.es/978ac8/keller/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/a-fondo/esta-monja-creo-lenguaje-basic-se-convirtio-primera-doctorada-computacion-24-anos-despues-entrar-convento-1" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Esta monja creó el lenguaje BASIC (y se convirtió en la primera doctorada en computación) 24 años después de entrar en el convento">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/a-fondo/esta-monja-creo-lenguaje-basic-se-convirtio-primera-doctorada-computacion-24-anos-despues-entrar-convento-1" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Esta monja creó el lenguaje BASIC (y se convirtió en la primera doctorada en computación) 24 años después de entrar en el convento">Esta monja creó el lenguaje BASIC (y se convirtió en la primera doctorada en computación) 24 años después de entrar en el convento</a>
   </div>
  </div>
 </div>
</div>
<div class="article-asset-summary article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="sumario">Lo cierto es que GW-BASIC también tuvo méritos: su simplicidad lo hacía menos intimidante para los principiantes</div>
   </div>
</div>
<h3>V) Tipado implícito y frágil</h3>
<p>GW-BASIC tenía un enfoque 'liberal' en lo que a las variables respecta: <strong>no hacía falta declararlas</strong>. Bastaba con usarlas y el intérprete asignaba un tipo según el contexto. Esto, que hoy asociamos a lenguajes dinámicos modernos como Python o Ruby, en GW-BASIC era una <strong>trampa sin red de seguridad</strong>.</p>
<!-- BREAK 11 --><p>Un error de tipeo en el nombre de la variable (total frente a totla) podía crear una nueva variable sin avisar. Operaciones tan simples como sumar un número a una cadena podían provocar fallos catastróficos.</p>
<h3>VI) Un editor rudimentario</h3>
<p>El propio entorno de GW-BASIC era otra limitación: no había <strong>resaltado de sintaxis</strong>, ni autocompletado, ni ayuda contextual. El programador escribía a ciegas, sin soporte visual que le ayudara a detectar errores.</p>
<!-- BREAK 12 --><p>Para modificar un programa largo había que <strong>recordar el número exacto de la línea</strong> a editar. Insertar o eliminar fragmentos enteros se convertía en una tarea titánica, y más de un proyecto acababa abandonado porque reorganizarlo resultaba más complejo que volver a escribirlo desde cero.</p>
<h3>VII) Sin archivos fuente legibles</h3>
<p>Aunque GW-BASIC permitía guardar los programas, estos se almacenaban en un formato propio y no siempre fácil de compartir o versionar. La idea de un <strong>control de versiones</strong> —algo básico hoy en día con Git— era completamente impensable en aquel contexto. Cada copia del programa era, literalmente, <strong>la última y única versión válida</strong>, lo que hacía perder trabajo con frecuencia.</p>
<!-- BREAK 13 --><div class="article-asset-summary article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="sumario">Programar en GW-BASIC era como caminar por una cuerda floja: cualquier descuido podía provocar un desastre</div>
   </div>
</div>
<h2>El contraste: Turbo Pascal y la programación estructurada</h2><p>La salvación para muchos llegó con <strong>Turbo Pascal</strong>, lanzado a mediados de los 80. Este lenguaje introducía conceptos revolucionarios en comparación con GW-BASIC:</p>
<ul><li>Declaración explícita de variables.</li><li>Procedimientos y funciones con nombres significativos.</li><li>Tipado estricto y control de errores en tiempo de compilación.</li><li>Herramientas de depuración básicas pero muy superiores.</li></ul><p>Pasar de GW-BASIC a Turbo Pascal fue, para toda una generación, como <strong>pasar de un laberinto oscuro a una autopista bien iluminada</strong>. No solo facilitó escribir programas más fiables, sino que <a class="text-outboundlink" href="https://www.xataka.com/aplicaciones/que-niklaus-wirth-su-obra-cumbre-lenguaje-pascal-siguen-siendo-referencia-imprescindible-para-aprender-a-programar" data-vars-post-title="Por qué Niklaus Wirth y su obra cumbre, el lenguaje Pascal, siguen siendo una referencia imprescindible para aprender a programar" data-vars-post-url="https://www.xataka.com/aplicaciones/que-niklaus-wirth-su-obra-cumbre-lenguaje-pascal-siguen-siendo-referencia-imprescindible-para-aprender-a-programar" >enseñó prácticas sólidas de programación que aún hoy siguen vigentes</a>.</p>
<p>Al final, GW-BASIC puede considerarse un <strong>lenguaje de transición</strong>: incómodo, limitado y mal diseñado, pero que empujó a muchos hacia opciones mejores. Su legado más importante quizás no sea técnico, sino pedagógico: enseñó, a base de errores y frustración, <strong>cómo NO se debe programar</strong>.</p>
<!-- BREAK 14 --><p>Imagen | Marcos Merino mediante IA</p>
<p>En Genbeta | <a class="text-outboundlink" href="https://www.genbeta.com/a-fondo/bill-gates-publica-completo-codigo-genial-que-ha-programado-su-vida-esta-joya-fue-primera-piedra-microsoft" data-vars-post-title="Bill Gates publica completo el &quot;código más genial&quot; que ha programado en su vida: esta joya fue la primera piedra de Microsoft " data-vars-post-url="https://www.genbeta.com/a-fondo/bill-gates-publica-completo-codigo-genial-que-ha-programado-su-vida-esta-joya-fue-primera-piedra-microsoft" >Bill Gates publica completo el "código más genial" que ha programado en su vida: esta joya fue la primera piedra de Microsoft</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[La pregunta más infravalorada en entrevistas de trabajo a desarrolladores: demuestra la experiencia con muchos lenguajes]]></title>
                <link>https://www.genbeta.com/desarrollo/pregunta-infravalorada-entrevistas-trabajo-a-desarrolladores-demuestra-experiencia-muchos-lenguajes-1</link>
                <guid>https://www.genbeta.com/desarrollo/pregunta-infravalorada-entrevistas-trabajo-a-desarrolladores-demuestra-experiencia-muchos-lenguajes-1</guid>
                <pubDate>Fri, 15 Aug 2025 10:00:38 +0000</pubDate>
                                         <dc:creator>Bárbara Bécares</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/0d1ca8/original/1024_2000.jpeg" alt="La&#x20;pregunta&#x20;m&#x00E1;s&#x20;infravalorada&#x20;en&#x20;entrevistas&#x20;de&#x20;trabajo&#x20;a&#x20;desarrolladores&#x3A;&#x20;demuestra&#x20;la&#x20;experiencia&#x20;con&#x20;muchos&#x20;lenguajes">
    </p>
    <p>Las entrevistas de trabajo son un mecanismo esencial para<strong> lograr conseguir el talento que hace falta en tu empresa, </strong>y hay muchas formas de llevarlas a cabo de la mejor manera posible. Hoy vamos a ver una prueba de la que se <a rel="noopener, noreferrer" href="https://www.reddit.com/r/cscareerquestions/comments/10o4xfq/why_dont_more_companies_use_a_bug_squash_in_their/?rdt=59145">está hablando en foros</a> y redes para poder contratar a desarrolladores.</p>
<!-- BREAK 1 --><p>La han bautizado <strong>como entrevista de "bug squash" y tiene como valor que &nbsp;puede reflejar el desarrollo de software cotidiano</strong> que una persona desarrolla día a día. Es decir, el candidato o candidata debe corregir errores usando diversos lenguajes de programación y no ciñéndose solo a unos pocos.</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/a-fondo/esto-inteligente-que-puedes-decir-entrevista-trabajo-para-lograr-puesto-experto" class="pivot-outboundlink" data-vars-post-title="Esto es lo más inteligente que puedes decir en una entrevista de trabajo para lograr el puesto, según un experto">
     <img alt="Esto&#x20;es&#x20;lo&#x20;m&#x00E1;s&#x20;inteligente&#x20;que&#x20;puedes&#x20;decir&#x20;en&#x20;una&#x20;entrevista&#x20;de&#x20;trabajo&#x20;para&#x20;lograr&#x20;el&#x20;puesto,&#x20;seg&#x00FA;n&#x20;un&#x20;experto" width="375" height="142" src="https://i.blogs.es/34bcd9/tim-gouw-bwki71ap-y8-unsplash/375_142.webp" onerror='this.src="https://i.blogs.es/34bcd9/tim-gouw-bwki71ap-y8-unsplash/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/a-fondo/esto-inteligente-que-puedes-decir-entrevista-trabajo-para-lograr-puesto-experto" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Esto es lo más inteligente que puedes decir en una entrevista de trabajo para lograr el puesto, según un experto">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/a-fondo/esto-inteligente-que-puedes-decir-entrevista-trabajo-para-lograr-puesto-experto" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Esto es lo más inteligente que puedes decir en una entrevista de trabajo para lograr el puesto, según un experto">Esto es lo más inteligente que puedes decir en una entrevista de trabajo para lograr el puesto, según un experto</a>
   </div>
  </div>
 </div>
</div>
<p>El tema <a rel="noopener, noreferrer" href="https://www.reddit.com/r/cscareerquestions/comments/10o4xfq/why_dont_more_companies_use_a_bug_squash_in_their/">ya había sido debatido en Reddit</a> pero una<strong> </strong>publicación de Jake Zimmerman, un ingeniero de software que <a rel="noopener, noreferrer" href="https://jez.io/resume/resume.pdf">ha trabajado en empresas como Stripe</a>, Dropbox y que ahora es profesor de universidad, <a rel="noopener, noreferrer" href="https://blog.jez.io/bugsquash/?utm_source=tldrnewsletter">en su blog, ha puesto visibilidad a esta idea de entrevista</a> y se ha comenzado a <a rel="noopener, noreferrer" href="https://www.linkedin.com/posts/technology-resourcing_bug-squash-an-underrated-interview-question-activity-7232339096503750656-ymxG/">compartir en redes como LinkedIn</a>.</p>
<!-- BREAK 2 --><h2>Cómo funciona esta entrevista</h2>
<blockquote>Explica Zimmerman que necesitarás al menos una pregunta por cada lenguaje en el que deseas permitir que las personas realicen la entrevista. Puedes comenzar con algunos <strong>como JavaScript, Python, Java y C++, pero probablemente sea mejor luego ampliar a C#, Objective-C, Ruby, Go, Rust,</strong> etc. Si les pides a los candidatos que elijan y se ven obligados a elegir un lenguaje con cuyas herramientas no están familiarizados, es más difícil entender su desempeño.</blockquote><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/desarrollo/que-muchos-programadores-dicen-que-lenguajes-no-importan-secreto-esta-pseudocodigo-sintaxis" class="pivot-outboundlink" data-vars-post-title="Por qué muchos programadores dicen que los lenguajes no importan: el secreto está en el pseudocódigo y la sintaxis ">
     <img alt="Por&#x20;qu&#x00E9;&#x20;muchos&#x20;programadores&#x20;dicen&#x20;que&#x20;los&#x20;lenguajes&#x20;no&#x20;importan&#x3A;&#x20;el&#x20;secreto&#x20;est&#x00E1;&#x20;en&#x20;el&#x20;pseudoc&#x00F3;digo&#x20;y&#x20;la&#x20;sintaxis&#x20;" width="375" height="142" src="https://i.blogs.es/a46b08/la_sintaxis/375_142.webp" onerror='this.src="https://i.blogs.es/a46b08/la_sintaxis/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/desarrollo/que-muchos-programadores-dicen-que-lenguajes-no-importan-secreto-esta-pseudocodigo-sintaxis" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Por qué muchos programadores dicen que los lenguajes no importan: el secreto está en el pseudocódigo y la sintaxis ">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/desarrollo/que-muchos-programadores-dicen-que-lenguajes-no-importan-secreto-esta-pseudocodigo-sintaxis" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Por qué muchos programadores dicen que los lenguajes no importan: el secreto está en el pseudocódigo y la sintaxis ">Por qué muchos programadores dicen que los lenguajes no importan: el secreto está en el pseudocódigo y la sintaxis </a>
   </div>
  </div>
 </div>
</div>
<p>Una entrevista de "corrección de errores" es cuando <strong>se le pide a un ingeniero de software que identifique y corrija errores en repositorios de código desconocidos,</strong> simulando escenarios más realistas que los desafíos de codificación tradicionales.</p>
<!-- BREAK 3 --><p>Parece que esta opción está ganando popularidad, ya que se considera que está más relacionada con lo que <strong>hace realmente un ingeniero de software en su trabajo</strong>, por lo que, cuanta más experiencia tenga, es más probable que le vaya mejor.</p>
<h2>Una entrevista de correcciones de errores: lo positivo</h2>
<p>De acuerdo con Zimmerman, "hay muchas razones por las que me gusta esta entrevista". Por ejemplo, refleja el desarrollo de software cotidiano; es divertido ("porque corregir errores autónomos como este es lo que a muchos de nosotros más nos gusta de la ingeniería de software", añade); es fácil <strong>para el candidato autoevaluar su propio progreso porque va viendo si sabe hacer lo que le están pidiendo de forma objetiva</strong>, entre otros asuntos.</p>
<!-- BREAK 4 --><p>"Cuando alguien tiene el control total de sus herramientas, esta entrevista lo demuestra mejor que cualquier otra". Para pasar, debes convencer al entrevistador de que la técnica utilizada para encontrar el error es repetible y algo "científica". Y también concluye que "<strong>los candidatos que son buenos en esta entrevista lo son porque cuenta con una habilidad que han practicado día tras día durante toda su carrera</strong>".</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/a-fondo/procesos-seleccion-interminables-llevo-10-entrevistas-para-gran-tech-quieren-otra-presentacion-para-todo-equipo" class="pivot-outboundlink" data-vars-post-title="Procesos de selección interminables: &quot;Llevo 10 entrevistas para una gran tech y quieren otra presentación para todo el equipo&quot; ">
     <img alt="Procesos&#x20;de&#x20;selecci&#x00F3;n&#x20;interminables&#x3A;&#x20;&quot;Llevo&#x20;10&#x20;entrevistas&#x20;para&#x20;una&#x20;gran&#x20;tech&#x20;y&#x20;quieren&#x20;otra&#x20;presentaci&#x00F3;n&#x20;para&#x20;todo&#x20;el&#x20;equipo&quot;&#x20;" width="375" height="142" src="https://i.blogs.es/5e791b/dogukan-sahin-wddj9jjfb6k-unsplash/375_142.webp" onerror='this.src="https://i.blogs.es/5e791b/dogukan-sahin-wddj9jjfb6k-unsplash/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/a-fondo/procesos-seleccion-interminables-llevo-10-entrevistas-para-gran-tech-quieren-otra-presentacion-para-todo-equipo" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Procesos de selección interminables: &quot;Llevo 10 entrevistas para una gran tech y quieren otra presentación para todo el equipo&quot; ">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/a-fondo/procesos-seleccion-interminables-llevo-10-entrevistas-para-gran-tech-quieren-otra-presentacion-para-todo-equipo" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Procesos de selección interminables: &quot;Llevo 10 entrevistas para una gran tech y quieren otra presentación para todo el equipo&quot; ">Procesos de selección interminables: &quot;Llevo 10 entrevistas para una gran tech y quieren otra presentación para todo el equipo&quot; </a>
   </div>
  </div>
 </div>
</div>
<p>Por su parte, a los candidatos también parece gustarles este enfoque, ya que es más divertido que un «desafío de codificación» tradicional. El único inconveniente para el director de contratación <strong>parece ser el tiempo que lleva producir el script con errores (no es demasiado difícil ni demasiado fácil)</strong> y configurar y mantener el entorno de prueba.</p>
<!-- BREAK 5 --><h2>Lo negativo de este tipo de procesos</h2>
<p>Por su parte, uno de los principales problemas que los expertos ven es que redactar estas preguntas de entrevista lleva tiempo para que sea ideal y no cueste ni muchísimo poner solución al error ni sea muy fácil.</p>
<!-- BREAK 6 --><p>Además, para aquellos para los que sea más sencillo dar solución al error, probablemente <strong>querrán seguir utilizando los minutos</strong> restantes que el entrevistador le ofrezca para investigar y exponer toda su capacidad, como explica este experto.</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/a-fondo/programadores-espanoles-responden-cual-mejor-lenguaje-programacion-que-quieras-hacer-1" class="pivot-outboundlink" data-vars-post-title="Los programadores españoles responden: cuál es el mejor lenguaje de programación según lo que quieras hacer">
     <img alt="Los&#x20;programadores&#x20;espa&#x00F1;oles&#x20;responden&#x3A;&#x20;cu&#x00E1;l&#x20;es&#x20;el&#x20;mejor&#x20;lenguaje&#x20;de&#x20;programaci&#x00F3;n&#x20;seg&#x00FA;n&#x20;lo&#x20;que&#x20;quieras&#x20;hacer" width="375" height="142" src="https://i.blogs.es/01777e/sigmund-im_cq6hqo10-unsplash/375_142.webp" onerror='this.src="https://i.blogs.es/01777e/sigmund-im_cq6hqo10-unsplash/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/a-fondo/programadores-espanoles-responden-cual-mejor-lenguaje-programacion-que-quieras-hacer-1" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Los programadores españoles responden: cuál es el mejor lenguaje de programación según lo que quieras hacer">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/a-fondo/programadores-espanoles-responden-cual-mejor-lenguaje-programacion-que-quieras-hacer-1" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Los programadores españoles responden: cuál es el mejor lenguaje de programación según lo que quieras hacer">Los programadores españoles responden: cuál es el mejor lenguaje de programación según lo que quieras hacer</a>
   </div>
  </div>
 </div>
</div>
<p>También se requiere al menos una pregunta por cada lenguaje que quieras que las personas usen. Si la prueba <strong>se ciñe a pocos lenguajes, la empresa puede estar perdiendo talento de gente que domina mucho </strong>más otros que no se han incluido en las pruebas.</p>
<!-- BREAK 7 --><p>Imagen | Foto de <a rel="noopener, noreferrer" href="https://unsplash.com/es/@nathanareboucas?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Nathana Rebouças</a> en <a rel="noopener, noreferrer" href="https://unsplash.com/es/fotos/texto-4adsYuQiaRw?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a></p>
<p>En Genbeta | <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/estos-lenguajes-programacion-demandados-empresas-que-desarrolladores-dominan" data-vars-post-title="Estos son los lenguajes de programación más demandados por las empresas y que menos desarrolladores dominan" data-vars-post-url="https://www.genbeta.com/desarrollo/estos-lenguajes-programacion-demandados-empresas-que-desarrolladores-dominan">Estos son los lenguajes de programación más demandados por las empresas y que menos desarrolladores dominan</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[El creador del lenguaje C++ terminó siendo programador "por error". Pero tiene varios consejos para los jóvenes del sector]]></title>
                <link>https://www.genbeta.com/desarrollo/creador-lenguaje-c-termino-siendo-programador-error-tiene-varios-consejos-para-jovenes-sector-2</link>
                <guid>https://www.genbeta.com/desarrollo/creador-lenguaje-c-termino-siendo-programador-error-tiene-varios-consejos-para-jovenes-sector-2</guid>
                <pubDate>Thu, 14 Aug 2025 10:00:38 +0000</pubDate>
                                         <dc:creator>Marcos Merino</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/553acc/original/1024_2000.jpeg" alt="El&#x20;creador&#x20;del&#x20;lenguaje&#x20;C&#x2B;&#x2B;&#x20;termin&#x00F3;&#x20;siendo&#x20;programador&#x20;&quot;por&#x20;error&quot;.&#x20;Pero&#x20;tiene&#x20;varios&#x20;consejos&#x20;para&#x20;los&#x20;j&#x00F3;venes&#x20;del&#x20;sector">
    </p>
    <p>Hace un par de años, repasábamos <a href="https://www.genbeta.com/a-fondo/que-fue-bjarne-stroustrup-creador-lenguaje-c-que-esta-convencido-que-software-moririamos-hambre#comments">quién era Bjarne Stroustrup</a>. Si no te apetece hacer clic (hazlo, está muy interesante) te lo resumimos en pocas palabras:<strong> se trata del creador del lenguaje C++</strong>, uno de los más usados del mundo desde su lanzamiento en 1985.</p>
<!-- BREAK 1 --><p>Por esas mismas fechas, en una mini (muy mini) vídeoentrevista concedida a la plataforma europea de empleo tecnológico <em>Honeypot.io</em>, desvelaba algo curioso sobre su vocación profesional: que<strong> terminó dedicándose a la programación "básicamente por un error"</strong>.</p>
<div class="article-asset-video article-asset-large article-asset-center">
 <div class="asset-content">
  <div class="base-asset-video">
   <iframe width="650" height="366" src="//www.youtube.com/embed/OQZhHHq3p1I" allowfullscreen></iframe>
  </div>
 </div>
</div>
<p>Y es que, tras hacer la Selectividad, y tener que decidir en qué carrera matricularse, decidió que <strong>una de sus materias favoritas —Historia— era "una carrera pésima"</strong>, aunque podía ser "un buen pasatiempo".</p>
<!-- BREAK 2 --><blockquote>"Entonces elegí matemáticas. Pero mientras estudiaba matemáticas quería hacer algo práctico, algo que tuviera algún atractivo más allá de las matemáticas puras. Y me inscribí en lo que en Dinamarca se llamaba "matemáticas con datalogi". <strong>"Datalogi" es la palabra danesa para informática, pero yo entonces no lo sabía</strong> [Stroustrup entró en la universidad a finales de los 60], pensaba que era una rama de las matemáticas aplicadas".</blockquote>
<blockquote>"Así que me inscribí en esa asignatura y con el tiempo descubrí dos cosas: una, que no era tan bueno en matemáticas como pensaba, cosa que les sucede a la mayoría de los estudiantes de matemáticas, y que la programación era muy divertida […]. Así que <strong>todo comenzó cuando un estudiante ignorante escogió algo que no sabía qué era</strong>".</blockquote>
<h2>Llegó por error, se quedó porque sabía lo que hacía</h2>
<p>Pero, como decíamos, por muy fortuita que fuera su llegada a este campo profesional, ha disfrutado de una larga, productiva y exitosa carrera… así que hace unos meses, en otra (igualmente breve) entrevista para <em>Honeypot.io</em>, Stroustrup aprovechaba para resumir <strong>sus consejos, tanto laborales como, en general, para la vida de los aspirantes a programador</strong>.</p>
<!-- BREAK 3 --><p>Empieza de manera contundente:</p>
<blockquote>"No te especialices demasiado, no estés demasiado seguro de conocer el futuro".</blockquote><div class="article-asset-video article-asset-large article-asset-center">
 <div class="asset-content">
  <div class="base-asset-video">
   <iframe width="650" height="366" src="//www.youtube.com/embed/-QxI-RP6-HM" allowfullscreen></iframe>
  </div>
 </div>
</div>
<p>Ambas frases están, claro, directamente relacionadas. Stroustrup explica a continuación que ha visto a demasiados jóvenes especializarse mucho en un campo y comprobar luego, un par de años más tarde, que <strong>quizá no lo habían hecho en el campo correcto</strong>… incluso si, efectivamente, sí era el correcto cuando empezaron a estudiar para el mismo.</p>
<!-- BREAK 4 --><p>Y es que la tecnología evoluciona que es una barbaridad. Así que, dicho con otras palabras:</p>
<blockquote><strong>"Sé flexible y recuerda que las carreras y los trabajos son algo a largo plazo".</strong></blockquote>
<p>Porque esos jóvenes que Stroustrup ha visto equivocarse apostando por la especialización "se terminan quemando en el proceso".</p>
<p>Y es que <strong>la formación de un programador no sólo ser amplia dentro de su campo</strong>…</p>
<blockquote>"Mi propia educación fue bastante amplia: he trabajado con compiladores, con múltiples lenguajes —creo que he llegado a conocer dos docenas de ellos—, con arquitectura de máquinas, con sistemas operativos… y todo ese conjunto de habilidades resultó ser útil".</blockquote>
<p>Pero <strong>también debe ser amplia fuera del mismo</strong>:</p>
<blockquote>"Me encuentro con un montón de 'geeks junior' que piensan que lo único que importa es la especialidad de la informática: la programación o la inteligencia artificial o los gráficos o algo así. Y, bueno, no es así…".</blockquote>
<blockquote>"Nunca me arrepentí del tiempo que le dediqué a la historia y a las matemáticas. Las matemáticas te agudizan la mente, la historia te da una idea de tus limitaciones y de lo que pasa en el mundo".</blockquote><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/desarrollo/secreto-para-convertirte-gran-desarrollador-bill-gates-experiencia-no-tuya" class="pivot-outboundlink" data-vars-post-title="Bill Gates cuenta cómo consiguió convertirse en un gran desarrollador: este es su principal consejo">
     <img alt="Bill&#x20;Gates&#x20;cuenta&#x20;c&#x00F3;mo&#x20;consigui&#x00F3;&#x20;convertirse&#x20;en&#x20;un&#x20;gran&#x20;desarrollador&#x3A;&#x20;este&#x20;es&#x20;su&#x20;principal&#x20;consejo" width="375" height="142" src="https://i.blogs.es/16ab13/billy/375_142.webp" onerror='this.src="https://i.blogs.es/16ab13/billy/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/desarrollo/secreto-para-convertirte-gran-desarrollador-bill-gates-experiencia-no-tuya" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Bill Gates cuenta cómo consiguió convertirse en un gran desarrollador: este es su principal consejo">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/desarrollo/secreto-para-convertirte-gran-desarrollador-bill-gates-experiencia-no-tuya" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Bill Gates cuenta cómo consiguió convertirse en un gran desarrollador: este es su principal consejo">Bill Gates cuenta cómo consiguió convertirse en un gran desarrollador: este es su principal consejo</a>
   </div>
  </div>
 </div>
</div>
<p>Y es que, según Stroustrup, <strong>cuando te formas básicamente lo que estás construyendo es una 'cartera de aptitudes'</strong>, y por eso nos interesa que esa cartera tiene que ser lo más amplia posible, para ser capaces de reconocer y aprovechar las muchas oportunidades que se nos presentes.</p>
<!-- BREAK 5 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/paso-a-paso/300-000-alumnos-han-estudiado-este-curso-python-pago-su-creador-decidio-regalarlo-podemos-hacerlo-gratis" class="pivot-outboundlink" data-vars-post-title="Más de 300.000 alumnos han estudiado este curso de Python de pago. Su creador decidió regalarlo y podemos hacerlo gratis ">
     <img alt="M&#x00E1;s&#x20;de&#x20;300.000&#x20;alumnos&#x20;han&#x20;estudiado&#x20;este&#x20;curso&#x20;de&#x20;Python&#x20;de&#x20;pago.&#x20;Su&#x20;creador&#x20;decidi&#x00F3;&#x20;regalarlo&#x20;y&#x20;podemos&#x20;hacerlo&#x20;gratis&#x20;" width="375" height="142" src="https://i.blogs.es/2938ee/python/375_142.webp" onerror='this.src="https://i.blogs.es/2938ee/python/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/paso-a-paso/300-000-alumnos-han-estudiado-este-curso-python-pago-su-creador-decidio-regalarlo-podemos-hacerlo-gratis" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Más de 300.000 alumnos han estudiado este curso de Python de pago. Su creador decidió regalarlo y podemos hacerlo gratis ">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/paso-a-paso/300-000-alumnos-han-estudiado-este-curso-python-pago-su-creador-decidio-regalarlo-podemos-hacerlo-gratis" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Más de 300.000 alumnos han estudiado este curso de Python de pago. Su creador decidió regalarlo y podemos hacerlo gratis ">Más de 300.000 alumnos han estudiado este curso de Python de pago. Su creador decidió regalarlo y podemos hacerlo gratis </a>
   </div>
  </div>
 </div>
</div>
<p>Pero ni siquiera se trata de poder aprovechar opciones laborales fuera de la propia programación, porque, incluso si encuentras el trabajo que buscabas en dicho campo, <strong>limitarte a codificar no te permitirá tener impacto en el mundo tecnológico</strong>, algo que "muchos nerds caricaturescos olvidan siempre".</p>
<!-- BREAK 6 --><blockquote>"Piensan que si pueden escribir el mejor código, cambiarán el mundo. Pero tienes que ser capaz de escuchar. Tienes que ser capaz de comunicarte con tus futuros usuarios y aprender de ellos. Y <strong>tienes que ser capaz de comunicarles tus ideas</strong>".</blockquote>
<p>Pero más allá de todo eso, nuestro protagonista cree que, a veces, los que se queman lo hacen sencillamente</p>
<blockquote>"Porque no han pasado suficiente tiempo haciendo amistades y <strong>teniendo una vida fuera de la informática</strong>. […] Tómate tiempo para tener una vida equilibrada".</blockquote>
<p>Haced caso a Stroustrup, gente. Que sabe de lo que habla.</p>
<p><em>Una versión anterior de este artículo se publicó en 2024.</em></p>
<p>Imagen | Marcos Merino mediante IA</p>
<p>En Genbeta | <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/casa-blanca-pidio-a-industria-que-dejara-usar-c-c-proponen-este-lenguaje-que-hay-guerra-abierta-linux" data-vars-post-title="La Casa Blanca pidió a la industria que dejara de usar C/C++. Y están de acuerdo con Google en el lenguaje que debe sustituirlos" data-vars-post-url="https://www.genbeta.com/desarrollo/casa-blanca-pidio-a-industria-que-dejara-usar-c-c-proponen-este-lenguaje-que-hay-guerra-abierta-linux">La Casa Blanca pidió a la industria que dejara de usar C/C++. Y están de acuerdo con Google en el lenguaje que debe sustituirlos</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA["El HTML está muerto", según este programador, y estas son las razones (también habla de cómo podríamos resucitarlo) ]]></title>
                <link>https://www.genbeta.com/desarrollo/html-esta-muerto-este-programador-estas-razones-tambien-habla-como-podriamos-resucitarlo</link>
                <guid>https://www.genbeta.com/desarrollo/html-esta-muerto-este-programador-estas-razones-tambien-habla-como-podriamos-resucitarlo</guid>
                <pubDate>Wed, 06 Aug 2025 13:30:09 +0000</pubDate>
                                         <dc:creator>Marcos Merino</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/0ee074/chatgpt-image-6-ago-2025-14_08_01/1024_2000.png" alt="&quot;El&#x20;HTML&#x20;est&#x00E1;&#x20;muerto&quot;,&#x20;seg&#x00FA;n&#x20;este&#x20;programador,&#x20;y&#x20;estas&#x20;son&#x20;las&#x20;razones&#x20;&#x28;tambi&#x00E9;n&#x20;habla&#x20;de&#x20;c&#x00F3;mo&#x20;podr&#x00ED;amos&#x20;resucitarlo&#x29;&#x20;">
    </p>
    <p>La web ha evolucionado enormemente desde sus inicios, pero en algunos aspectos cruciales sigue anclada en el pasado. Mientras tecnologías como WebAssembly (WASM) ganan terreno incluso en el servidor, las páginas web que usamos todos los días todavía funcionan con sistemas viejos como el DOM, HTML y CSS, que fueron creados hace décadas y no están pensados para las necesidades de hoy.</p>
<!-- BREAK 1 --><p>En su blog profesional, el desarrollador Steven Wittens ha expuesto con detalle esa idea (y dejado caer, al final, algunas posibles soluciones) en un <a rel="noopener, noreferrer" href="https://acko.net/blog/html-is-dead-long-live-html/">texto</a> que propone repensar, desde su misma base, los fundamentos del desarrollo web.</p>
<h2>¿Qué es el DOM y por qué es un lío?</h2>
<p>Cuando visitas una página web, tu navegador construye una especie de "árbol" interno para entender y mostrar el contenido. Ese árbol se llama <strong>DOM</strong>, que significa <em>Document Object Model</em> o "Modelo de Objetos del Documento".</p>
<!-- BREAK 2 --><p>Imagina que el DOM es como una maqueta de LEGO de la página, donde cada bloque representa un elemento: un título, una imagen, un botón, etc. Suena bien, ¿verdad? El problema es que este sistema se ha vuelto tan viejo y complicado que ya nadie lo entiende del todo bien… ni siquiera los expertos.</p>
<p>Por ejemplo, en Google Chrome, un solo bloque de esa maqueta (<code>document.body</code>, que es básicamente el cuerpo de la página) tiene más de <strong>350 funciones y propiedades</strong> diferentes. Y si hablamos del estilo (colores, márgenes, tamaños), hay más de <strong>660 opciones solo para eso</strong>.</p>
<!-- BREAK 3 --><p>Es como tener una caja de herramientas tan grande que ya no sabes qué usar, ni cómo. Además:</p>
<ul>
  <li>Muchas herramientas están obsoletas (ya no se usan, pero ahí siguen).</li>
  <li>Varias hacen lo mismo, pero de formas diferentes.</li>
  <li>Algunas cambian cosas en la página de maneras inesperadas.</li>
</ul>
<p>Debido a este caos, la mayoría de desarrolladores modernos evitan trabajar directamente con el DOM. Usan herramientas más fáciles y organizadas (como React o Vue), que simplifican todo.</p>
<!-- BREAK 4 --><p>Y aunque hay intentos por mejorar esto, como los <em>Web Components</em> (una forma más moderna de crear partes reutilizables de una página), llegaron tarde y no son muy populares porque son difíciles de usar.</p>
<h2>HTML: ¿Y la semántica, dónde quedó?</h2>
<p>HTML es el lenguaje básico con el que se construyen las páginas web. Su objetivo original era permitir que los sitios fueran claros y organizados: con títulos, párrafos, listas, artículos, comentarios… todo bien etiquetado.</p>
<!-- BREAK 5 --><p>Eso se llama <strong>semántica</strong>: usar etiquetas que explican <em>qué</em> es cada parte del contenido, no solo <em>cómo se ve</em>.</p>
<p>Pero, aunque han pasado más de 10 años desde que salió <a class="text-outboundlink" href="https://www.xataka.com/basics/que-html5-que-novedades-ofrece" data-vars-post-title="Qué es el HTML5 y qué novedades ofrece" data-vars-post-url="https://www.xataka.com/basics/que-html5-que-novedades-ofrece">la versión vigente de HTML (HTML5)</a>, seguimos sin tener etiquetas para cosas tan comunes como un hilo de conversación (<code>&lt;thread&gt;</code>) o un comentario (<code>&lt;comment&gt;</code>). Eso significa que los desarrolladores tienen que improvisar y usar etiquetas genéricas como <code>&lt;div&gt;</code> o <code>&lt;article&gt;</code>, que no dicen claramente lo que representan.</p>
<!-- BREAK 6 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/a-fondo/no-suele-considerarse-a-html-css-lenguajes-programacion-hay-quien-no-esta-acuerdo-tienen-buenos-argumentos" class="pivot-outboundlink" data-vars-post-title="No suele considerarse a HTML y CSS lenguajes de programación... pero hay quien no está de acuerdo (y tienen buenos argumentos) ">
     <img alt="No&#x20;suele&#x20;considerarse&#x20;a&#x20;HTML&#x20;y&#x20;CSS&#x20;lenguajes&#x20;de&#x20;programaci&#x00F3;n...&#x20;pero&#x20;hay&#x20;quien&#x20;no&#x20;est&#x00E1;&#x20;de&#x20;acuerdo&#x20;&#x28;y&#x20;tienen&#x20;buenos&#x20;argumentos&#x29;&#x20;" width="375" height="142" src="https://i.blogs.es/46f2ee/html_css_turing/375_142.webp" onerror='this.src="https://i.blogs.es/46f2ee/html_css_turing/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/a-fondo/no-suele-considerarse-a-html-css-lenguajes-programacion-hay-quien-no-esta-acuerdo-tienen-buenos-argumentos" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="No suele considerarse a HTML y CSS lenguajes de programación... pero hay quien no está de acuerdo (y tienen buenos argumentos) ">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/a-fondo/no-suele-considerarse-a-html-css-lenguajes-programacion-hay-quien-no-esta-acuerdo-tienen-buenos-argumentos" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="No suele considerarse a HTML y CSS lenguajes de programación... pero hay quien no está de acuerdo (y tienen buenos argumentos) ">No suele considerarse a HTML y CSS lenguajes de programación... pero hay quien no está de acuerdo (y tienen buenos argumentos) </a>
   </div>
  </div>
 </div>
</div>
<p><strong>Además, las reglas para usar las etiquetas "correctamente" son confusas</strong>. Por ejemplo, según algunas guías, un artículo dentro de otro artículo podría considerarse un comentario... pero eso no tiene mucho sentido, ¿verdad?</p>
<!-- BREAK 7 --><p>Hoy en día, las grandes decisiones sobre cómo evoluciona HTML las toman principalmente los creadores de navegadores (como Google o Apple), no una comunidad abierta. ¿Y qué han hecho? Pues en lugar de rediseñar o simplificar HTML, han ido agregando pequeñas cosas nuevas aquí y allá, como quien sigue parcheando una prenda vieja.</p>
<div class="article-asset-summary article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="sumario"> El resultado: tenemos un HTML estancado, anticuado y que no termina de cumplir bien con su propósito original</div>
   </div>
</div>
<h2>CSS: ¿por qué alinear cosas en la web es tan difícil?</h2>
<p>CSS (siglas en inglés de "hojas de estilo en cascada") es lo que usamos para darle forma y colores a una página web: tamaños, márgenes, colores, posiciones, etc. Pero a pesar de ser tan importante… muchas veces parece estar en contra nuestra.</p>
<!-- BREAK 8 --><p>¿Te ha pasado que simplemente quieres poner dos cosas una al lado de la otra, o que algo quede centrado en la pantalla, y por más que lo intentas <strong>no pasa lo que esperas</strong>? No estás solo.</p>
<p>El problema principal es que CSS no funciona como creemos.</p>
<p>Imagina que tienes una caja con dos cajones adentro y que quieres que cada cajón ocupe la mitad del espacio. Lógico, ¿no?</p>
<p><code>&lt;div&gt;<br>
 &nbsp;&lt;div style="height: 50%"&gt;...&lt;/div&gt;<br>
 &nbsp;&lt;div style="height: 50%"&gt;...&lt;/div&gt;<br>
&lt;/div&gt;</code></p>
<p>Pero CSS no lo entiende así. En realidad, necesita que primero le digas <strong>cuánto mide la caja grande</strong>. Si no lo haces, simplemente <strong>ignora tus instrucciones</strong>.</p>
<p>Esto es porque CSS trabaja de una forma algo rara: primero mira el contenido (lo que hay dentro) y luego decide qué tamaño debería tener el contenedor. Es como si compraras una caja para tus cosas... <strong>después</strong> de ver cuántas cosas tienes.</p>
<!-- BREAK 9 --><p><strong>¿Cómo se soluciona eso?</strong> Bueno, el CSS moderno tiene herramientas como <strong>Flexbox</strong>, que ayudan a distribuir mejor el espacio entre elementos. Pero hasta esas herramientas cuentan con sus propios problemas.</p>
<h2>SVG: potente pero caótico</h2>
<p>SVG son las siglas en inglés de "gráficos vectoriales escalables". Es una tecnología que permite dibujar cosas como iconos, gráficos, logotipos o ilustraciones directamente dentro de una página web, sin que se vean borrosas al hacer zoom. Resulta útil porque...</p>
<!-- BREAK 10 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/desarrollo/asi-se-ha-ido-complicando-arquitectura-detras-aplicaciones-web-ultimos-26-anos" class="pivot-outboundlink" data-vars-post-title="Así se ha ido complicando la arquitectura detrás de las aplicaciones web en los últimos 26 años">
     <img alt="As&#x00ED;&#x20;se&#x20;ha&#x20;ido&#x20;complicando&#x20;la&#x20;arquitectura&#x20;detr&#x00E1;s&#x20;de&#x20;las&#x20;aplicaciones&#x20;web&#x20;en&#x20;los&#x20;&#x00FA;ltimos&#x20;26&#x20;a&#x00F1;os" width="375" height="142" src="https://i.blogs.es/049646/web-hosting-5965504_1920/375_142.webp" onerror='this.src="https://i.blogs.es/049646/web-hosting-5965504_1920/375_142.jpg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/desarrollo/asi-se-ha-ido-complicando-arquitectura-detras-aplicaciones-web-ultimos-26-anos" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Así se ha ido complicando la arquitectura detrás de las aplicaciones web en los últimos 26 años">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/desarrollo/asi-se-ha-ido-complicando-arquitectura-detras-aplicaciones-web-ultimos-26-anos" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Así se ha ido complicando la arquitectura detrás de las aplicaciones web en los últimos 26 años">Así se ha ido complicando la arquitectura detrás de las aplicaciones web en los últimos 26 años</a>
   </div>
  </div>
 </div>
</div>
<ul>
  <li>Puedes cambiar el tamaño de un dibujo sin perder calidad.</li>
  <li>Puedes modificar colores, formas o posiciones con código.</li>
  <li>Incluso puedes hacer que reaccione al pasar el mouse o hacer clic.</li>
</ul>
<p>Pero, aunque <strong>SVG</strong> sea tan polivalente, usarlo en combinación con HTML y CSS puede volverse un lío por varias razones:</p>
<ul>
  <li><strong>No 'habla el mismo idioma' que CSS</strong>: Aunque a veces puedes aplicar estilos CSS a los dibujos SVG, no siempre funcionan igual. Hay reglas que se comportan diferente o simplemente no aplican.</li>
  <li><strong>Es complejo</strong>: Para hacer un dibujo, tienes que escribir instrucciones como <code>&lt;path d="M150 0 L75 200 L225 200 Z" /&gt;</code>. ¡Sí, eso es un triángulo! Pero no es precisamente amigable a la vista ni fácil de entender.</li>
  <li><strong>¿Cuándo usar SVG y cuándo HTML?</strong>: A veces puedes hacer una figura con HTML y CSS, otras veces necesitas SVG. Pero no hay una regla clara. Elegir entre uno u otro puede depender de detalles técnicos molestos.</li>
  <li><strong>Algunas cosas útiles solo están en SVG</strong>: Por ejemplo, si quieres detectar clics en formas con bordes irregulares (como una estrella), SVG lo hace fácil. HTML y CSS... no tanto.</li>
</ul>
<h2>La pesadilla del 'kitbashing web'</h2>
<p>A lo largo de los años, el desarrollo de interfaces web ha evolucionado a base de "parchar" las herramientas existentes. Esto ha dado lugar al fenómeno del <em>kitbashing</em>, un término tomado del modelismo donde se ensamblan modelos a partir de piezas que no estaban diseñadas para funcionar juntas. En la web, esto se traduce en construir interfaces sofisticadas combinando HTML, CSS y SVG en formas para las que nunca fueron concebidos.</p>
<!-- BREAK 11 --><p>Esto ocurre porque HTML y CSS <strong>no fueron pensados originalmente para hacer aplicaciones</strong>. Se crearon para mostrar documentos, como artículos o noticias, no para hacer cosas como editores de texto tipo Google Docs o chats como WhatsApp Web.</p>
<h3>Ejemplos de lo difícil que puede ser:</h3>
<ul>
  <li><strong>Un chat que se quede pegado abajo (como en WhatsApp):</strong><br>
Parece algo básico, ¿no? Pero lograr que la ventana del chat se quede abajo cuando llega un nuevo mensaje requiere escribir código personalizado cada vez. No hay una forma fácil y automática de hacerlo con HTML y CSS.</li>
  <li><strong>Copiar y pegar texto con formato:</strong> Si alguna vez copiaste texto de una página web y lo pegaste en otro lugar, sabrás que a veces se conserva el color o el estilo… y a veces no. Hacer que eso funcione bien en una app web requiere "trucos invisibles", como poner elementos escondidos fuera de la pantalla para que el sistema entienda qué se está copiando.</li>
  <li><strong>Listas y tablas muy largas (como una hoja de cálculo):</strong> Mostrar muchos datos (como en Excel) es difícil en una web. Si lo haces directamente, la página se vuelve lenta. Para solucionarlo, los desarrolladores tienen que "engañar" al navegador: solo muestran una parte de la lista y cambian lo que se ve a medida que el usuario se desplaza.</li>
  <li><strong>Cajas que se vean bien en diferentes tamaños de pantalla:</strong> Ajustar el diseño para que se vea bien en un celular y en una computadora suena lógico, pero hacerlo con HTML y CSS puede ser muy complicado. A veces hay que escribir muchas reglas específicas, o usar herramientas externas que tratan de hacerlo más fácil.</li>
</ul><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/desarrollo/estos-errores-que-todo-desarrollador-web-deberia-evitar-no-quiere-perder-tiempo-energia-este-experto" class="pivot-outboundlink" data-vars-post-title="Estos son los errores que todo desarrollador web debería evitar (si no quiere perder tiempo y energía), según este experto ">
     <img alt="Estos&#x20;son&#x20;los&#x20;errores&#x20;que&#x20;todo&#x20;desarrollador&#x20;web&#x20;deber&#x00ED;a&#x20;evitar&#x20;&#x28;si&#x20;no&#x20;quiere&#x20;perder&#x20;tiempo&#x20;y&#x20;energ&#x00ED;a&#x29;,&#x20;seg&#x00FA;n&#x20;este&#x20;experto&#x20;" width="375" height="142" src="https://i.blogs.es/eb27a3/chatgpt-image-29-jul-2025-15_17_53/375_142.webp" onerror='this.src="https://i.blogs.es/eb27a3/chatgpt-image-29-jul-2025-15_17_53/375_142.png"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/desarrollo/estos-errores-que-todo-desarrollador-web-deberia-evitar-no-quiere-perder-tiempo-energia-este-experto" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Estos son los errores que todo desarrollador web debería evitar (si no quiere perder tiempo y energía), según este experto ">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/desarrollo/estos-errores-que-todo-desarrollador-web-deberia-evitar-no-quiere-perder-tiempo-energia-este-experto" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Estos son los errores que todo desarrollador web debería evitar (si no quiere perder tiempo y energía), según este experto ">Estos son los errores que todo desarrollador web debería evitar (si no quiere perder tiempo y energía), según este experto </a>
   </div>
  </div>
 </div>
</div>
<h2>Canvas: ¿una solución?</h2>
<p>Ante las limitaciones evidentes del DOM y CSS, algunos desarrolladores y estándares emergentes han puesto sus ojos en <strong>una alternativa radical</strong>: usar <code>&lt;canvas&gt;</code> como plataforma principal para renderizar interfaces. La propuesta más notable en esta línea es <a rel="noopener, noreferrer" href="https://github.com/WICG/html-in-canvas">HTML-in-Canvas</a>, que plantea la idea de renderizar fragmentos de HTML dentro de un <code>&lt;canvas&gt;</code>, permitiendo personalizar completamente su presentación visual.</p>
<!-- BREAK 12 --><p>Suena atractivo: ¿por qué no aprovechar la potencia gráfica de Canvas para superar las deficiencias del modelo de caja y de estilo del navegador? Pero este enfoque trae consigo una gran cantidad de obstáculos tanto técnicos como filosóficos.</p>
<p>Para empezar, <strong>la API propuesta sigue estando atada al DOM</strong>, lo que significa que los elementos a renderizar deben seguir existiendo dentro del árbol de documentos para ser interpretables. Esto introduce una contradicción: si necesitas <code>&lt;canvas&gt;</code> para librarte del DOM, ¿por qué seguir dependiendo de él para dibujar?</p>
<!-- BREAK 13 --><p>Además, para lograr interactividad, el sistema obliga a <strong>reimplementar el modelo de interacción desde cero</strong>: gestión de eventos de mouse, teclas, estados de foco, accesibilidad... todo debe recrearse manualmente.</p>
<p>Se trata de un sistema donde el desarrollador asume el control absoluto, pero también la carga completa, como si estuviera desarrollando usando un motor de videojuegos.</p>
<!-- BREAK 14 --><p>Uno de los principales argumentos a favor de usar canvas es que “al menos es programable”. Pero <strong>en realidad, es un recurso extremadamente limitado</strong>:</p>
<ul>
  <li>No tiene acceso directo a fuentes del sistema ni a APIs nativas de layout de texto.</li>
  <li>No ofrece herramientas nativas para manejar accesibilidad, localización o compatibilidad móvil.</li>
  <li>No permite reusar eficientemente estilos, efectos ni interacciones predefinidas del navegador.</li>
</ul>
<h2>¿Y entonces, qué?</h2>
<p>Después de todo lo que hemos visto, queda claro que el modelo actual de cómo se construyen las páginas web —usando HTML, CSS y el famoso DOM— está roto, pero eso no significa que no haya solución. De hecho, según Wittens <strong>es totalmente posible mejorar todo esto</strong>… si nos atrevemos a cambiar las bases. Así que, ¿qué deberíamos hacer?</p>
<!-- BREAK 15 --><h3>Empezar con una estructura más clara</h3>
<p>Hoy en día, cuando haces una web, terminas mezclando muchas cosas: contenido, estilo y comportamiento. Todo está enredado.<br>
Lo ideal sería separar mejor:</p>
<!-- BREAK 16 --><ul>
  <li><strong>Lo que se muestra</strong> (el diseño).</li>
  <li><strong>Cómo se comporta</strong> (la interacción).</li>
  <li><strong>Qué significa cada cosa</strong> (la semántica).</li>
</ul><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xataka.com/retro/internet-se-ha-convertido-lugar-confuso-que-hay-mucha-gente-anorando-web-1-0-neocities-puedes-revivirla" class="pivot-outboundlink" target="_blank" data-vars-post-title="La web se ha convertido en un lugar horrendo para mucha gente. Así que están reconstruyendo su versión 1.0 como refugio">
     <img alt="La&#x20;web&#x20;se&#x20;ha&#x20;convertido&#x20;en&#x20;un&#x20;lugar&#x20;horrendo&#x20;para&#x20;mucha&#x20;gente.&#x20;As&#x00ED;&#x20;que&#x20;est&#x00E1;n&#x20;reconstruyendo&#x20;su&#x20;versi&#x00F3;n&#x20;1.0&#x20;como&#x20;refugio" width="375" height="142" src="https://i.blogs.es/f7ee9c/lo-que-te-cuenta-netflix/375_142.webp" onerror='this.src="https://i.blogs.es/f7ee9c/lo-que-te-cuenta-netflix/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xataka.com/retro/internet-se-ha-convertido-lugar-confuso-que-hay-mucha-gente-anorando-web-1-0-neocities-puedes-revivirla" class="desvio-taxonomy-anchor pivot-outboundlink m-crosspost" target="_blank" data-vars-post-title="La web se ha convertido en un lugar horrendo para mucha gente. Así que están reconstruyendo su versión 1.0 como refugio">En Xataka</a>
    </div>
    <a href="https://www.xataka.com/retro/internet-se-ha-convertido-lugar-confuso-que-hay-mucha-gente-anorando-web-1-0-neocities-puedes-revivirla" class="desvio-title js-desvio-title pivot-outboundlink" target="_blank" data-vars-post-title="La web se ha convertido en un lugar horrendo para mucha gente. Así que están reconstruyendo su versión 1.0 como refugio">La web se ha convertido en un lugar horrendo para mucha gente. Así que están reconstruyendo su versión 1.0 como refugio</a>
   </div>
  </div>
 </div>
</div>
<p>Tener estos tres aspectos separados haría que todo fuese más fácil de desarrollar, mantener y escalar.</p>
<h3>Diseñar pensando en cómo se hacen apps hoy</h3>
<p>Las páginas web de hoy ya no son solo documentos, son <strong>aplicaciones completas</strong>, como redes sociales, editores de texto, videojuegos… Y para eso necesitamos herramientas más modernas. Cosas como React, Vue o Svelte existen precisamente porque el sistema base (HTML+CSS+DOM) no da la talla.</p>
<!-- BREAK 17 --><p>Así que ¿por qué no rediseñar esas bases para que lo moderno ya venga incorporado?</p>
<ul>
  <li>Que los cambios en la pantalla sean automáticos cuando cambie algo en el sistema.</li>
  <li>Que podamos mover elementos o cambiar estilos sin pelear con reglas raras de CSS.</li>
  <li>Que el código sea fácil de leer, escribir y entender.</li>
</ul>
<h3>Ya hay ejemplos funcionando</h3>
<p>Wittens insiste en que no estamos hablando de fantasías, pues ya hay proyectos reales que ya están probando cómo se podría hacer todo esto mejor. Uno de ellos, por ejemplo, es <a rel="noopener, noreferrer" href="https://usegpu.live/">Use.GPU</a>, un sistema visual hecho con tecnología nueva llamada WebGPU. ¿Qué logra?</p>
<!-- BREAK 18 --><ul>
  <li>Interfaces mucho más rápidas y suaves.</li>
  <li>Diseños con menos líneas de código.</li>
  <li>Posicionamiento de elementos que <strong>por fin tiene sentido</strong> (sí, centrar cosas es fácil).</li>
  <li>Efectos visuales sin trucos raros ni dolores de cabeza.</li>
</ul>
<p>Y esto lo ha hecho una sola persona, con un sistema más claro y moderno que toda la maquinaria actual del navegador.</p>
<p>También hay navegadores nuevos como <a rel="noopener, noreferrer" href="https://servo.org/">Servo</a> y <a rel="noopener, noreferrer" href="https://ladybird.org/">Ladybird</a> que están empezando de cero. No arrastran todo el peso de 30 años de web, así que pueden tomar decisiones más inteligentes desde el principio.</p>
<p>Imagen | Marcos Merino mediante IA</p>
<p>En Genbeta | <a class="text-outboundlink" href="https://www.genbeta.com/desarrollo/esto-consiste-labor-desarrollador-full-stack-perfil-laboral-todoterreno" data-vars-post-title="En esto consiste la labor de un desarrollador Full Stack: un perfil laboral todoterreno" data-vars-post-url="https://www.genbeta.com/desarrollo/esto-consiste-labor-desarrollador-full-stack-perfil-laboral-todoterreno">En esto consiste la labor de un desarrollador Full Stack: un perfil laboral todoterreno</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Esta web es una mina para aprender a programar gratis: hasta 77 lenguajes y con la ayuda de miles de mentores]]></title>
                <link>https://www.genbeta.com/desarrollo/esta-web-mina-para-aprender-a-programar-gratis-77-lenguajes-ayuda-miles-mentores</link>
                <guid>https://www.genbeta.com/desarrollo/esta-web-mina-para-aprender-a-programar-gratis-77-lenguajes-ayuda-miles-mentores</guid>
                <pubDate>Tue, 29 Jul 2025 12:00:38 +0000</pubDate>
                                         <dc:creator>Antonio Vallejo</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/43d4f6/programac/1024_2000.jpeg" alt="Esta&#x20;web&#x20;es&#x20;una&#x20;mina&#x20;para&#x20;aprender&#x20;a&#x20;programar&#x20;gratis&#x3A;&#x20;hasta&#x20;77&#x20;lenguajes&#x20;y&#x20;con&#x20;la&#x20;ayuda&#x20;de&#x20;miles&#x20;de&#x20;mentores">
    </p>
    <p>Aprender a programar es algo a lo que cada vez más usuarios se apuntan, ya sea a través de distintos niveles académicos, <a class="text-outboundlink" href="https://www.genbeta.com/a-fondo/mejores-cursos-para-aprender-a-programar-cero-gratis" data-vars-post-title="Los mejores cursos para aprender a programar desde cero gratis" data-vars-post-url="https://www.genbeta.com/a-fondo/mejores-cursos-para-aprender-a-programar-cero-gratis">cursos</a>, o de forma autodidacta. Y si bien en Genbeta hemos hablado de <a class="text-outboundlink" href="https://www.genbeta.com/web/mejores-webs-para-aprender-a-programar-gratis" data-vars-post-title="Las mejores webs para aprender a programar gratis" data-vars-post-url="https://www.genbeta.com/web/mejores-webs-para-aprender-a-programar-gratis">infinidad de recursos</a> para aprender a escribir código en múltiples lenguajes de programación, esta web de la que te vamos a hablar es genial para aquellos curiosos que se quieran aventurar en el genial mundo de la programación.</p>
<!-- BREAK 1 --><p><a rel="noopener, noreferrer" href="https://exercism.org/">Exercism</a> es un sitio web que recopila recursos de todo tipo para ayudar a los usuarios a aprender a programar. <strong>La página incluye ejercicios de hasta 77 lenguajes de programación</strong>, todo ello de manera gratuita.</p>
<h2>Una web para aprender a programar de forma divertida y fácil</h2>
<p>Si alguna vez te has planteado aprender algún lenguaje de programación como Python, JavaScript, Java, C++, C#, Rust y otros tantos, Exercism es una buena guía para comenzar.</p>
<!-- BREAK 2 --><p><strong>El aprendizaje funciona a modo de reto para el usuario</strong>, donde en cada lección aprendemos fundamentos básicos de diversos temas. La idea es que el usuario vaya escribiendo código y que esto sirva para ir pasando a niveles más avanzados.</p>
<div class="article-asset-image article-asset-large article-asset-center">
 <div class="asset-content">
                   <img class="" height=1880 width=2880 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/450_1000.webp 450w, https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/650_1200.webp 681w,https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/1024_2000.webp 1024w, https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/1366_2000.webp 1366w" src="https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/450_1000.webp" alt="exercism" onerror="this.src='https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/450_1000.jpeg';this.srcset='https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/450_1000.jpeg 450w, https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/650_1200.jpeg 681w,https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/1024_2000.jpeg 1024w, https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/1366_2000.jpeg 1366w';return false;">
   <img alt="exercism" class="" src="https://i.blogs.es/55a91a/mentoring-55681b539cc66e98874c057bc76f778742f79f1e/450_1000.webp">
   
      </div>
</div>
<p>Exercism insiste en que <strong>su método será siempre gratis</strong>, y se apoya en una gran comunidad con el fin de colaborar y hacer que nuevos miembros puedan aprender a programar. Todas las contribuciones son de libre distribución, aunque sus responsables también aceptan donaciones.</p>
<!-- BREAK 3 --><p>Para comenzar en Exercism, lo único que debe hacer el usuario es registrarse de manera gratuita y escoger el lenguaje de programación que desea practicar. Si bien dispone de niveles para todo tipo de usuarios, Exercism se notará algo menos frustrante si el usuario llega con algunas nociones, aunque sean muy básicas.</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.genbeta.com/a-fondo/este-curso-gratis-online-famoso-para-aprender-a-programar-harvard-ofrece-certificado" class="pivot-outboundlink" data-vars-post-title="El curso gratis online más famoso para aprender a programar acaba de empezar y aún puedes apuntarte: de Harvard y con certificado">
     <img alt="El&#x20;curso&#x20;gratis&#x20;online&#x20;m&#x00E1;s&#x20;famoso&#x20;para&#x20;aprender&#x20;a&#x20;programar&#x20;acaba&#x20;de&#x20;empezar&#x20;y&#x20;a&#x00FA;n&#x20;puedes&#x20;apuntarte&#x3A;&#x20;de&#x20;Harvard&#x20;y&#x20;con&#x20;certificado" width="375" height="142" src="https://i.blogs.es/19482d/harvard/375_142.webp" onerror='this.src="https://i.blogs.es/19482d/harvard/375_142.jpeg"'>
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.genbeta.com/a-fondo/este-curso-gratis-online-famoso-para-aprender-a-programar-harvard-ofrece-certificado" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="El curso gratis online más famoso para aprender a programar acaba de empezar y aún puedes apuntarte: de Harvard y con certificado">En Genbeta</a>
    </div>
    <a href="https://www.genbeta.com/a-fondo/este-curso-gratis-online-famoso-para-aprender-a-programar-harvard-ofrece-certificado" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="El curso gratis online más famoso para aprender a programar acaba de empezar y aún puedes apuntarte: de Harvard y con certificado">El curso gratis online más famoso para aprender a programar acaba de empezar y aún puedes apuntarte: de Harvard y con certificado</a>
   </div>
  </div>
 </div>
</div>
<p>En total, más de un millón y medio de usuarios utilizan los recursos de Exercism para aprender a programar. Además, si te encuentras en problemas con tu código, <strong>siempre puedes contar con su comunidad</strong>, siendo una de las bases más valiosas de la web. Y es que Exercism cuenta con más de 11.500 mentores, personas que voluntariamente ayudan a otros usuarios a aprender a programar.</p>
<!-- BREAK 4 --><div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x7zoabz","autoplay":true,"title":"Las matemáticas no se me dan mal, quiero aprender a programar _ CAPTCHA 2x04", "tag":"Programar"}
                  </script>
   </div>
  </div>
 </div>
</div>
<p>Por ponerle alguna pega, merece la pena destacar que <strong>la web se encuentra totalmente en inglés</strong>. Así que si quieres comenzar a utilizar esta página también sería recomendable que al menos te sepas manejar un poco con el idioma (o tirar de traductor).</p>
<!-- BREAK 5 --><p><em>Una versión anterior de este artículo se publicó en 2024</em>.</p>
<p>En Genbeta | <a class="text-outboundlink" href="https://www.genbeta.com/a-fondo/todos-cursos-programacion-que-hay-estos-13-a-que-yo-me-apuntaria" data-vars-post-title="De todos los cursos de programación que hay, estos son los 13 a los que yo me apuntaría " data-vars-post-url="https://www.genbeta.com/a-fondo/todos-cursos-programacion-que-hay-estos-13-a-que-yo-me-apuntaria">De todos los cursos de programación que hay, estos son los 13 a los que yo me apuntaría</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
            </channel>
</rss>
