Tecnología, Internet y juegos
214 meneos
1965 clics
El Gran Colapso de la Calidad del Software: Cómo normalizamos la catástrofe [Eng]

El Gran Colapso de la Calidad del Software: Cómo normalizamos la catástrofe [Eng]

La calculadora de Apple tuvo una fuga 32 GB de RAM. No usada. No asignada. Fugada. Una simple aplicación de calculadora está perdiendo más memoria de la que la mayoría de los ordenadores tenían hace una década. Hace veinte años, esto habría desencadenado parches de emergencia y análisis post mortem. Hoy, es solo otro informe de error en la cola.

| etiquetas: software , inteligencia artificial
102 112 0 K 313
102 112 0 K 313
Comentarios destacados:                
#1 "We've created a perfect storm: tools that amplify incompetence, used by developers who can't evaluate the output, reviewed by managers who trust the machine more than their people."

:clap: :clap: :clap:
"We've created a perfect storm: tools that amplify incompetence, used by developers who can't evaluate the output, reviewed by managers who trust the machine more than their people."

:clap: :clap: :clap:
#1 lo mismo que con las redes sociales que amplifican y dan voz a la estupidez. Pues faltaba algo para el resto también.
#1 Y espera, que ahora viene el código hecho con IA. :shit:
no son errores, son features que ayudan a retirar equipos viejos de la circulacion para vender equipos nuevos.
#22 que tirria le tengo a mongodb. En su momento, nos lo vendieron como algo que ahorra tiempo por que no hay que modelar la base de datos de forma estricta y puedes tirar consultas y guardar cualquier registros desde el minuto cero. Cuando pasan los años y eso no hay quien lo toque (entre otras cosas por lo que comentas que es mas complicado hacer joins que una relacional de toda la vida) te das cuenta que el tiempo que ahorraste al principio lo estás pagando con intereses descomunales ahora.…   » ver todo el comentario
Dramatización.

Pero fuera de bromas con el meme, si que noto que se pierde mucha optimización y calidad en sitios donde he trabajado porque total, si hay "problemas" se mete más hardware y listo.

En la empresa en la que estoy ahora he mejorado mucho el rendimiento de algunos procesos simplemente optimizando el código. Y si os contara de algunas guarrerías que he visto...

Recuerdo una vez que tuve que modificar una app que usaba mongodb... Que tenia que mostrar por pantalla miles de…  media   » ver todo el comentario
#15 Que una petición como la que comentas tarde 15 segundos me parece una aberración.
#17 Se puede optimizar mucho más pero implica modificar la base de datos que no estaba bien diseñada. Sumado a node.js, mongodb y un vps muy regulero... poco me parece.

Demasiado que les hice ese cambio gratis (que lo hice más por mi que por ellos ya que tenia que hacer algunos cambios y me desesperaba cuando había que cargar y tardaba una eternidad)
#22 con paginación lazy para no tener que cargar todos los registros de golpe no hay que tocar la bbdd y mejoras mucho los tiempos de carga (con tamPagina adecuado, claro)
#15 a raíz de la queja, se lo hubiese vuelto a poner como estaba... Putos usuarios
#15 Me acabas de despertar el flashback de una aplicación de una famosa empresa de cuyo nombre no quiero acordarme para mostrar información de los restaurantes que tenían incorporados en su zona corporativa central para los empleados.

Los restaurantes, la ocupación de estos de forma dinámica, los platos de cada día, incluso las calorías de cada alimento; todo estaba metido en una sola tabla SQL con pares clave->valor e indicadores del tipo de información. Precisamente me pusieron a meterle mano porque tardaba como dos minutos en cargar la página montada en torno a la tabla-monolito...
#46 Lo de hacer diferentes tablas con diferentes atributos ni se lo pensaron ¿no?

Algo parecido vi en otro proyecto, que trabajaba con imágenes. Los atributos relativos a esas imágenes eran comunes pero en lugar de usar columnas con atributos, había una columna que le indicabas que atributo era y luego otra que valor tenía... Eternizaba las búsquedas y necesitabas hacer mucho procesado.

Y luego las imágenes estaban todas en un mismo directorio. Millones y millones de ficheros en el mismo directorio donde tardaba minutos en cargar una imagen concreta. ¿Dividirlos por zonas o fechas al menos? Nada...
fn main() {
println!("Hello, world!");
}

3.7Mb de ejecutable xD Na, es coña. La peña que para usar cuatro funciones de mierda emplea frameworks y librerías que devoran recursos, es mas cómodo y rápido.
#3 y 64MB si le metes el .net xD
#6 y 200MB en Electron, framework usado por muchas aplicaciones populares como Discord, WhatsApp, Skype.
#18 existen alternativas ligeras a electon como tauri ( tauri.app/ )
Pero electron lleva muchas cosas de serie y en general no vale la pena optimizar si tus clientes tienen suficiente ram
También depende de como esté hecha la aplicación: teams, y vscode usan electron, pero teams parece pesado, lento e inestable y vscode parece que va como un tiro (si no lo petas con extensiones)
#6 Dime eso a la cara, me paso el móvil por el ojete y te lo hago chupar para que lamas mi brillante culo por System.Reflection. Es coña. Sólo un chiste de dotnet.
#3 Y ... cuando empece a programar para Win95 con un BorlandC++ en el 96... . De tener un TurboC++ par win32 que compilaba como ... "como las balas", pase a tener triceps, porque en mi silla hacia levantadas esperando que aquello compilara y linkara.
#20 me pasa lo mismo compilando MAUI, pero en vez de triceps hago sentadillas xD
Yo he conocido "seniors" que no sabían la diferencia entre un puntero y una referencia, un linkage interno o externo, o incluso una librería estática y otra dinámica. Y ya si les preguntabas de patrones de diseño o la complejidad de un algoritmo, les parecía ciencia alienígena. Y algunos se dedicaban a software crítico...

Madre mía, creo que en muchas carreras técnicas hace falta formación transversal en Ingeniería del Software, porque para muchos es poco menos que tirar líneas...
#7 Apestas a C++. Sin acritud. Es que le tengo tirria.
#8 Premio para el caballero: un framework para Python todo reshulón.
#7 #8 A ver... que cuando yo tengo que explicar lo de "No class Def found" y digo: eso es por el linker, hay que gente que se me queda mirando y otros que sonrien con complicidad.

#8 ... Tirria a C++.... me tire programando en JAVA desde el 99... sigo diciendo que no... que querria mi C++... . Por mucho que me pese y que me he tirado con JAVA toda la vida, hubiera preferido C++.
#11 Yo pasé de C a C#. Lo poco que toqué de C++ me pareció lo que creo que es: el primer intento de hacer POO. Como suele pasar con el primer intento de lo que sea: fue el peor. No me malinterpretes: Si quisiera hacer algo enfocado al rendimiento sin bajar a ensamblador, lo haría en C++ pero la POO con C++ es un dolor de huevos en comparación con lenguajes más modernos.
#7 Y no nos metemos en el tema de Algoritmica, que "me se ha olvidado". Pero que cuando tienes un desarrollo "complejo" te viene cojonudo saber las O, para parar a alguien de que se cargue algo gordo.
#7 unsigned int *var = &var2;

¿Era algo así? Hace 10 años que no toco C++ pero me encantaba ese lenguaje y la optimización que permite.
#7 En buena parte es culpa del mercado. Salen de las universidades e institutos y exigen al año o 2 el título senior, sino renuncian.
#7 Si eres senior de Java conocer los punteros no te sirve para nada.
De patrones de diseño y complejidad, ahí sí te lo compro.
#31 Te sirve porque en Java todas las variables son punteros menos los tipos nativos.
#53 no son punteros, son referencias
#63 Era una frase hecha. Pero correcto.
hay q producir, aunque solo sea mierda, hace tiempo q estamos condenados, no hay vuelta atras, el fin esta cerca, es solo cuestion de tiempo, el cable del tranvia esta roto, durara lo q dure, hasta q encontremos la pared
#4 Tranquilo, hay tiempo para comer
Este estilo de redacción basado en muchos títulos y listas de elementos... es reconocerlo y sospechar de que el artículo haya sido escrito por una IA, por mucho que luego lo haya revisado el "abajo firmante" (básicamente para verificar que los enlaces son a páginas reales).

También contribuye a esa sensación el que el artículo parezca alargado innecesariamente con mucha paja redundante, repitiendo la misma idea una y otra vez (p. ej., "a calculator leaks 32 GB of RAM" está…   » ver todo el comentario
Ríete, pero es un problema muy real... el otro dia haciendo un programa en python que simplemente hacia un pixel color match a partir de captura de pantalla y click en la posición... unas 30 líneas de código, (prácticamente nada), compilo y me sale un exe con 200mb de overhead... transformando lo que debería ser un exe de 0,5-1mb ágil en un monstruo pesado de 200mb.

Por supuesto, soy consciente de que el programa "es tan simple de programar" precisamente porque uso llamadas a…   » ver todo el comentario
#39 Compilas Python? :shit:
#56 cliente sin privilegios en entorno bastante capado para instalar nada y en el que no podía meter el entorno de desarrollo... lo unico que podia meter es un exe y necesitaba algo "hecho por mi" para estar seguro 100% de que estaba limpio y no llevaba regalito. Por supuesto tras empaquetar y ver un monstruo de 200mb que tardaba 10 segundos en abrirse si quiera para 10 mierdas de lineas de codigo desisti de usar python :-D
Y eso sumado a la enshitification, enmierdacion.
#50 He flipado con que la calculadora de Apple sea peor que el Notepad de Windows.
El incidente donde una IA se cargó una BD de producción durante un freeze y lo intentó ocultar, es impagable.
#30 Probando Cursor me hizo una parecida. No fue en producción ni nada crítico, pero le pedí una cosa muy sencilla (ni recuerdo cual) y recuerdo que al 3º mensaje de respuesta leí "oh, parece que el comando estaba mal y he borrado todos los ficheros de la carpeta, voy a buscar a ver si hay copia" xD

No pasó nada al ser una cosa que estaba en un repositorio, nada que no se arregle con un git reset --hard, pero vaya risa.

No la puedes dejar a su bola ni de coña o te lía una espectacular.
#41 Pues a saber que modelo estabas utilizando, mi experiencia con gpt5/sonnet4.5 MAX en modo agente es muy diferente. Le he pedido que haga troubleshooting de red y ha sido capaz de identificar el problema y dar la solución correcta en todas las ocasiones. Es verdad que mi red casera no es especialmente compleja, apenas 4 máquinas, pero ahí está.
#49 a veces va muy bien, pero le tienes que llevar de la manita para que no la cague el 35% de las veces.
#30 joer, tienes algún link sobre ello ? Gracias
#30 hace un par de semanas le dije al Copilot que me generase un env para meter los ids y las contraseñas de la store de Apple y Google, y va el hijodeputa y me borra un env que mi jefe tenia hecho para su parte del projecto xD
#48 Sí, esa es otra, a veces le da por pisar código ajeno sin más.
#30 Si no sabe aguantar una broma, márchese del pueblo.
Recordemos la entrevista a Stirpuoer... Sturppur... como cojones se escriba ese apellido, cojones...

www.snopes.com/fact-check/program-management/
#37 Go arranca y compila más rápido, pero Java se suele ejecutar más rápido a largo plazo gracias al JIT.

Así que, en cuanto a rapidez, la cosa quedaría así: C > C++ > Rust > Java > Go
#54 Increíble. Tal vez se suele sobrestimar el rendimiento de Golang.
Aún así muchas de las herramientas creadas con Golang como Docker y Kubernetes van genial
:-D Como creador de esa frase en el 97, te doy un positivazo.
:-D Como creador de esa frase en el 97, te doy un positivazo.
Que gran artículo :popcorn:
#25 Sin duda. Y los comentarios aunque no estoy de acuerdo son también buenísimos.
#25 productividad productividad...cuanto tiempo tardas en hacer esto 2 semanas, tú jefe, no le puedo decir eso al cliente, lo dejamos en una semana, resultado o prinhas horas no pagadas o entregas lo que tengas.
Al no tener tiempo las cosas no se prueban bien, el consultor no hace su trabajo y confía en que lo has probado, el cliente confía en que nosotros lo hemos probado y se sube a producción, que pasa el día del arranque, incidencias y más incidencias y nadie sabe explicar porque está fallando si se probó.
#29 Tú trabajas en mi empresa ¿No? :-D
#29 eso era lo que pasaba enel Enterprise, qué el ingeniero decía que necesitaba 6 horas y el capitán le decía que en 1 tenía que estar.
Ahora ya me explico los innumerables problemas de seguridad que esa nave xD xD
Hay gente en el entorno de Segridad que lo que dicen es que la gallina de los huevos de oro es dentro como para 2026-7, y a ser como lo de Y2K por todas las mierdas de IA en codigo.
#16 vamos a pasar de startups donde el marketing resalta que usan la IA como un plus a todo lo contrario: Creo que de aquí a unos años se resultará que no se a usado IA o que se a usado con mesura y revisión de equipo humano. En bancos y empresas serias no me extrañaría que directamente se prohíba usar IA para generar código
Joder, yo tuve que devolver un PC porque en realidad no tenia 1 MB de RAM y no corria el TurboC++... . :-D

Como volvemos a lo de siempre.

Un amigo siempre decia que Sun habia creado JAVA para vender estaciones Sun.
#21 dicen que java iba genial en solaris en servidores sun, pero nunca lo he visto de primera mano
Realmente java está bastante optimizado (posiblemente sea el lenguaje mas rápido después de los lenguajes del estilo de C, C++, rust y Golang)
El problema es la calidad de mucho del software hecho en Java
Yo como persona que lleva unos añitos picando no veo el problema. Hay que garantizarse el trabajo... :troll:
Cómo puede ser si el capitalismo favorece la competición y que los servicios y productos de mayor calidad se vean recompensados por el mercado y Blabla Blabla

Las putitas de monopolios despiadados somos y vamos a ser

menéame