¿Se han preguntado cómo puede ser que después de tanto tiempo de evolución de la informática los programas se sigan colgando de la misma manera?
Siempre se ha discutido acerca de qué tan exacta es la ciencia de la informática. En esta entrega les presentamos un nuevo análisis que no hace más que confirmar lo que ya sospechábamos: a pesar de tanto parafernalia, la informática es una de las ciencias menos exactas, ¡y no parece que eso vaya a cambiar!
Tengo un pen drive conectado a mi notebook. Cuando hago un descanso en mi trabajo suelo hibernarla. Algunas veces, cuando la vuelvo a encender, me encuentro con un cartel de “USB not recognized”. ¿Por que eso sucede algunas veces sí y otras no? Se pueden ensayar varias explicaciones técnicas, como que el momento de cerrarla… el driver… la interrupción… el flush del buffer de datos… bla, bla… Pero desde nuestra perspectiva como usuarios, lo que estamos percibiendo es un “resultado inesperado”.
Revisemos un poco los conceptos: para que una operación se lleve a cabo, una serie de elementos tienen que funcionar bien en forma simultánea. Si uno de los elementos falla, la secuencia completa no va a funcionar. En términos lógicos, podríamos decir que una operación lógica “Y” (“AND”) de una serie de elementos tiene que ser verdadera, por lo que cada operando debe ser verdadero para que toda la ecucación funcione.
Ejemplo para el caso de un llamado telefónico:
funcion(llamado telefónico)
SI SmartphoneEncendido AND AndroidRunning AND OSPatchesInstalled AND PhoneAppRunning AND SignalLevelOK AND IntermediateRoutingOK AND PlanTelefonicoPago AND laTelefonicaQuiere AND . . . ENTONCES LlamadoTelefónicoOK
La realidad es que, si refinamos la secuencia, la lista de ANDs puede hacerse casi infinita. Sabemos que basta con que uno de los elementos falle para que toda la secuencia falle. En la práctica, si esto sucede los resultados pueden ser imprecedibles, desde ruidos o baja calidad del llamado, hasta la imposibilidad de comunicarse. La cantidad de posibles resultados de la operación está en función de la cantidad de operandos, con una combinatoria algo así como de 2 elevado a la N, y esto solo en caso de trabajar con unos y ceros.
Dos más dos es cuatro solo en la teoría, en donde los números están a salvo de las contingencias de la realidad espacio-temporal.
Ahora bien, nosotros, como personas, ¿no somos lo mismo? Una sucesión de elementos seudo-aleatorios que pueden funcionar de una manera o de otra, con una gran cantidad de combinatorias posibles, en el fondo posiblemente explicables, pero que desde nuestra perspectiva de individuos nos da como resultado la “imprevisibilidad humana”. ¿Por qué en el caso de las personas decimos que los errores se producen “porque somos humanos” y en el caso de un dispositivo complejo insistimos en decir que es algo lógico que falla?
Dos más dos es cuatro solo en la teoría, en donde los números están a salvo de las contingencias de la realidad espacio-temporal. Dos patitos más dos patitos van a dar cuatro sólo si en el medio de la operación no se nos escapa uno de ellos.
Estamos en la realidad contante y sonante y hay que asumir que no es posible controlar todo. Es bueno saberlo para evitarse un estrés innecesario. Ya lo dice la vieja frase: “si quieres hacer reír a Dios, cuéntale tus planes”.
Como se imaginarán, o como os imaginaréis, según de qué lado del Atlántico estén o estéis, queridos lectores, el foro aquí debajo está ansioso por recibir sus quejas, elogios, críticas y sesudas reflexiones.
Lo que comprendí.. Es que nunca la informática por si misma en su definición de ciencia con su conjunto de teorías deja de ser una ciencia exacta… la mentada inexactitud… es una mera percepción humana…. siempre es exacta… solo que la cantidad de permutaciones y condiciones puede ser tan grande que nuestro entender común es sobre pasado y por ende al fallar alguna de las condiciones es normal que exista una incertidumbre para definir que es lo que fallo en concreto..
#1 señor, me ha leido la mente
1+1 generalmente es 2, hasta que le preguntas a un contador.
Es la discusión de toda la vida de Hume retomada por Popper sobre el problema de la racionalidad de la ciencia por el tema de la inducción. Si tomamos en concepto de ciencia de Popper la informática vuelve a ser ciencia con todas las de la Ley.
Descubrir que las cosas no funcionan como deberían solo nos hace replantearnos que métodos e instrumentos debemos usar para que funcionen mejor.
Ya lo sabía, 🙂
. . .
el video me hizo mucha gracia, a mi me pasa exactamente lo mismo en linux hahaha
De hecho las matemáticas, aunque en la vida real son exactas, dentro de un lenguaje de programación no lo son, según cuál sea puede ser más o menos exactas, algunos tienen severos problemas de exactitud con una simple división de números de un dígito por ejemplo, algunos no dan el ancho con números enteros muy grandes y se requieren métodos específicos para usarlos.
1+1=2 siempre que trabajes con los reales… 2+2=0 en Z sub 2 2+2=1 en Z sub 3
Es imposible que sea una ciencia exacta, para empezar, porque si hay que tratar con un número infinito no puede realizarse el cálculo a la perfección ya que un ordenador no puede tratar con el infinito. Se acercará mucho, pero la respuesta será errónea.
Por cierto, con mi anterior comentario me refería a que el procesador no puede trabajar con un número infinito. Un procesador de 64 bits evidentemente puede contener una cadena numérica muchísimo mayor que un ordenador de 8 bits pero aún así no puede realizar un cálculo perfecto. Siempre hay un margen de error.
#11 ¿Cómo que no puede? Puede tratar el concepto infinito igual que lo haces tú en papel. Eso no es más que una abstracción matemática: el número infinito no existe.
Simplemente, lo único exacto es lo que no se mancha con la realidad inexacta.
#14
Se refiere a que la mantisa es finita y por tanto nunca jamás se podrá representar exactamente un número cuya mantisa sea mayor que la que maneja el ordenador y para eso no hace falta acercarse tan siquiera al infinito. Piensa por ejemplo en el número Pi, la raíz de 2 o cualquier otro número decimal con más dígitos que los que caben en la mantisa que maneja el ordenador.
"AND la telefónica quiere" esa si que es una variable difícil de controlar!
Aunque inventen el software perfecto, nosotros mismos siempre lo colgaremos ya que no somos perfectos. Tambien nos equivocamos.
Mucho habéis dicho para no haber dicho nada, el artículo no tiene nada que ver con su título, sé nota que de informática no tenéis ni idea.
Bueno soy de los que cree que la ciencia si es exacta lo que no es exacta es la capacidad Humana de general diferentes situaciones con elementos iguales. pues and siempre sera verdadero cuando las proposiciones que la conformen sean verdadera, ahora que no tomes encuenta todas las posibles combinaciones entre esas proposiciones es otra cosa y no creo que sea problema de la ciencia.
la computadora si es exacta, lo que no es exacto son los programas que son hechos por el hombre, no es lo mismo que un programa lo haga un experto senior a que lo haga un recien salido de la escuela, lo digo por experiencia, puedes tener sistemas libres de errores pero tienes que contemplar muchos escenarios y al final de cuentas la computadora hace lo que nosotros le digamos, asi de que la computadora si es exacta pero sigue teniendo errores mientras dependa de los humanos
No estoy seguro si la noticia es en serio o el autor es un troll
en fin, un par de cosas:
1) la suma es una operación que la nota asume que funciona solo sobre números, lo cual al utilizar estructuras abstractas de datos deja de ser así
2) los problemas de cuelgue muchas veces son por problemas de concurrencia, direcciones inválidas de memoria, etc
3) para hacer un programa sin fallas sería necesario aplicar alguna lógica para derivar formalmente el mismo a partir de su especificación, esto es posible pero el tiempo requerido es tanto que si se hicieran todos los programas de esta forma no tendriamos casi ninguno
4) confunden errores de programación con que la ciencia no es exacta
5) la ciencia de la computación es una cosa, los procesadores y hardware que se utilizan para ejecutar los algoritmos son otra, no mezclen
6) por favor no hace falta que el autor del articulo sea un experto pero que no escriba semejantes barrabasadas
7) windows no es informática, es un producto, no pueden decir que una ciencia no es inexacta por que hay un producto mal hecho
Igual ya con ver la forma en que está escrita la función de ejemplo ya queda claro todo.
Antes eras chevere neoteo… ya no hay fondo mas profundo al cual llegar después esta nota…
Lo que siempre me ha gustado de estas notas es cómo ponen en evidencia a los que no tienen sentido del humor…..
#20 jaja… genial comentario!!
Qué vendría a ser algo exacto exactamente? jaja-
La matemática es ciencia exacta?.. qué pasa con Pi en grandes dimensiones espaciales?.
Digamos que en informática se puede hablar en varios términos que incluyen el hardware y software… cuerpo y alma, que de alguna manera fueron pensados desde el biomimicry o biomimetismo, imitando en base el funcionamiento de un cerebro… "pulsos" eléctricos que se mueven por canales conductores, llevando señales de información de acá para allá.
¿qué ocurre con la humedad y la temperatura en estos mecanismos?… influencian de manera "rara" sobre lo exacto?…
Claro que la informática está hecha desde lo exacto… pero es hipotético ya que luego es influenciado por las condiciones ambiente… ondas electromagnéticas, microondas, ondas de radio…
Yo descubrí que el selector de canales digital me bloqueaba la notebook cuando estaba muy cerca :).
Salud.
Saludos.
hablo totalmente en serio: me encanta neoteo, lo leo desde hace 1 año y medio, pero este tipo de artículos me dan vergüenza ajena… No tienen rigor científico alguno, más bien todo lo contrario, no encajan en esta página…
Es lo que la ciencia llama "caos" que solo es una manera de decir que no puedes controlar las variables implicadas, ni medirlas como para saber que resultado obtendrás. Simplemente, no sabrás que salió mal , aunque algo debió fallar. Esto se debe a la limitada percepción del ser humano y su incapacidad de controlar todo. Pero si aplicas una ley natural bajo condiciones concretas, obtendrás el mismo resultado, el problema es recrear esas condiciones.
Según el efecto mariposa, el mas mínimo factor de cambio puede arrojar un resultado diferente.
Como dicen varios, el factor humano suele ser el que falla. O quizá tengas un falso contacto.
mi pregunta es: ¿puede ser perfecto algo producido por un ser imperfecto?
#24 mi mama es imperfeca he hizo algo perfecto 😀
hasta que no saquen los procesadores cuánticos la informática siempre tendrá errores y eso es por lo bajos niveles de procesamiento de los chips !!!
Eso son bugs…..no confundamos cosas….