2 puntos por GN⁺ 1 시간 전 | Aún no hay comentarios. | Compartir por WhatsApp
  • Un ensayo que explica el caos del desarrollo de software con la analogía de construir un puente: todos los equipos de programación están formados por locos, y sobre el resultado de eso funcionan el software bancario e internet
  • El código perfecto solo existe en archivos que hacen una sola cosa y fueron escritos por una sola persona; en la realidad, te dicen un viernes que para el martes tengas 600 listos, así que todo se opera como recargar un Picasso sobre un montón de copos de nieve derretidos
  • Un desarrollador web tiene que aprender una tecnología nueva cada semana y comprobar que cientos de herramientas existentes no se hayan roto; incluso para un experto, que le tome 6 horas averiguar la causa de un problema ya es buena suerte
  • Internet depende de billones de dólares apoyados sobre acuerdos informales y código de hace 10 años con comentarios que dicen "TODO: FIX THIS", y si todos los administradores de sistemas almuerzan al mismo tiempo, la civilización colapsa
  • Los programadores pasan 10 a 15 horas al día haciendo trabajos para los que el cerebro no fue diseñado y se van volviendo locos lentamente; ese es el precio de la profesión que eligieron en vez de cargar cosas de 50 libras

Todos los equipos de programación están formados por locos

  • Los amigos que hacen trabajo físico siempre arrancan diciendo algo como: "tú la tienes fácil; yo cavé un túnel con una perforadora debajo de Mordor"
  • Si estás de acuerdo en que el estrés y el sufrimiento mental son cosas malas, bienvenido al mundo de la programación
  • Analogía de construir un puente: te unes a un proyecto de un puente en una gran ciudad y la situación es esta
    • Mary es la líder del proyecto; Fred solo trabaja con madera, pero está a cargo de la pasarela de un puente a 200 pies de altura sobre una corriente violenta
    • A Dave le robaron el suéter y después instaló una verificación de seguridad de 15 pasos
    • Phil no es ingeniero, pero hace cumplir una regla que prohíbe los barandales; nadie sabe qué hace Phil, pero como tiene relación con la gerencia, nadie lo toca
    • Sara mete al diseño varias tecnologías de pavimentación de vanguardia sangrante ("hemorrhaging-edge")
    • Tom y Harry llevan años peleando por sistema métrico vs. sistema imperial, y se usa la unidad del que haya trabajado primero
    • El puente se diseñó como colgante, pero como nadie sabe construir puentes colgantes, agregan pilares de soporte a la mitad, y dejan los cables colgantes ahí porque seguramente sostienen algo
    • Le piden al nuevo que proponga ideas nuevas, pero en realidad es ingeniero en propulsión y no sabe nada de puentes
  • Si preguntas si alguien cruzaría ese puente, nadie lo haría; pero estructuras así hicieron todo el software bancario, los sitios web y los programas de seguridad de internet

Todo el código es malo

  • Todo programador tiene en casa un archivo de Good Code que saca cuando no hay nadie y lee llorando
    • Los nombres de funciones y variables son consistentes, concisos, no hacen cosas obviamente idiotas y nunca estuvieron expuestos al mundo real ni a las exigencias del equipo de ventas
    • Lo escribió una sola persona, nadie más lo tocó, y se lee como un poema escrito por alguien mayor de 30
  • La realidad: si un viernes te dicen que para el martes tengas 600 copos de nieve, haces trampas por todos lados, un compañero los derrite, todo se mezcla en una masa informe, le recargas un Picasso encima y la semana siguiente echas más nieve para que el Picasso no se caiga
  • Existe la teoría de que seguir estándares resuelve esto, pero hay más estándares de los que una computadora realmente puede hacer, y además cada quien los deforma a su gusto, así que en la práctica tienes bases de código donde la misma tarea se hace de decenas de formas distintas
  • Las primeras semanas en un trabajo nuevo, aunque conozcas todos los lenguajes, frameworks y estándares, se te van en entender cómo funciona el programa, porque los estándares son unicornios

Siempre hay oscuridad

  • Analogía del clóset en la infancia: entras, la pared de atrás se aleja y se convierte en repisa, y cuando vuelves a mirar hacia arriba existe el vacío absoluto de un entretecho al que no llega la luz; intuyes que ahí vive el monstruo que todas las noches tratabas de contener con una linterna y un muñeco
  • Aprender programación es igual: aprendes una herramienta útil, miras alrededor, hay otra nueva, y esa herramienta te muestra el terror sin fondo que siempre estuvo justo al lado de tu cama
  • La realidad de un desarrollador web promedio
    • Aunque conozca 12 lenguajes de programación y una cantidad enorme de bibliotecas, estándares y protocolos, cada semana tiene que aprender uno nuevo
    • Tiene que revisar si cientos de herramientas existentes se actualizaron o se rompieron, y comprobar que no hayan corregido el bug que aprovechó ingeniosamente en un fin de semana borracho
    • Crees que todo está al día y, de pronto, todo deja de funcionar
  • Ejemplo de una causa de falla: alguien decide usar 1/0 como Infinity, otra persona hace que eso sea un error en el compilador y no se lo dice a nadie; como resultado, incluso un experto tarda 6 horas en encontrar la causa
  • Incluso la experiencia en tu propio campo es apenas una fracción diminuta de toda la informática, y no existe ni una sola persona que sepa cómo funciona una MacBook de hace 5 años
  • La razón por la que dicen "apágalo y vuélvelo a encender" es que no tienen idea de qué salió mal, así que meten la computadora en coma y se la dejan al equipo médico automático integrado

Internet es un infierno especial por sí mismo

  • Incluso un sitio con nivel de carrito de compras de 3 páginas dinámicas requiere un equipo de mantenimiento 24/7, porque todo se rompe siempre, en todas partes y para todo el mundo
  • En este mismo momento, empleados de Facebook están lidiando con decenas de miles de mensajes de error; un equipo en alguna oficina de Google lleva 3 días sin dormir; y algún programador de bases de datos, rodeado de botellas vacías de Mountain Dew, cree que su esposo murió
  • Si todos los administradores de sistemas se fueran a almorzar al mismo tiempo, antes de llegar a la fonda ya estarían peleando con hordas de mutantes por unas latas de comida
  • Billones de dólares dependen de acuerdos informales y de código escrito hace 10 años con comentarios como "TODO: FIX THIS IT'S A REALLY DANGEROUS HACK"
  • Hay grupos que atacan internet por espionaje, por dinero o por aburrimiento, y 4chan en una tarde de mal humor puede destruir la vida y el negocio de alguien, pero a nadie le preocupa demasiado porque sería como otra bomba nuclear cayendo en un invierno nuclear
  • En internet, si dices "creo que esto a veces funciona", eso pasa a formar parte de internet; y con unos cientos de dólares y una computadora, cualquiera puede subir código horrible de hackeo y volverlo todo un poco peor
  • La regla secreta de internet: cinco minutos después de abrir el navegador, un niño ruso ya tiene tu número de identificación; si te registras, la NSA empieza a rastrear tu ubicación; si mandas un correo, tu dirección termina en un anuncio espectacular en Nigeria
  • Esto no pasa por indiferencia, sino porque todo está roto y no existe el buen código, así que todos apenas intentan mantenerlo funcionando

No es que estemos locos, es que nos estamos volviendo locos

  • ERROR: Attempted to parse HTML with regular expression; system returned Cthulhu — si esto te da risa, todavía estás bien; pero si cuando te preguntan si es "arrayReverse" respondes s/camel/_/, entonces ya entraste a la etapa de hablar en código
  • El cerebro humano no es especialmente bueno para la lógica básica, pero existe una profesión que te obliga a hacer lógica extremadamente compleja todo el día
  • Si pasas el día recorriendo cadenas gigantes de condiciones y requisitos abstractos para encontrar algo como una coma faltante, luego miras la cara de una persona y ni siquiera sabes si ya terminó de hablar, porque no hay punto y coma
  • Ejemplos de lenguajes de programación esotéricos (esolang) para demostrar el efecto destructivo sobre el cerebro
    • Existen programas que producen la misma salida que el "Hello World" de C++, pero escritos en Brainfuck, Ook! o en código Perl que representa números mayas como arte ASCII girado 90 grados
    • El programa de números mayas ganó una competencia, y en un mundo así nadie cuestiona que alguien se fume una cajetilla al día
  • Todos los programadores están obligando a su cerebro a hacer algo para lo que no fue diseñado durante 10 a 15 horas al día, 5 a 7 días por semana, y todos se están volviendo locos lentamente
  • Conclusión: en vez de levantar objetos de 50 libras, obtuvimos la oportunidad de servir a Satán mientras le recortamos el vello corporal y comemos sobre un cráneo abierto, y a cambio una parte de internet sigue funcionando unos días más

Aún no hay comentarios.

Aún no hay comentarios.