Los 8 personajes más importantes en la computación

Existen muchas personas que han aportado algo para conocer la ciencia de la computación como hoy en día la conocemos, pero hay quienes son pilares en el desarrollo de esta, veamos ocho de las personalidades que fueron pilares en el desarrollo de la computación.

Euclides (325-ca. 265 a. C.)

euclides

Euclides era un matemático griego, considerado el padre de la geometría, pero pocos saben que fue de los primeros en describir un algoritmo como tal (instrucciones o pasos a seguir para un fin, utilizados en computación). Su famoso algoritmo de Euclides descrito en su obra Elementos, sirve para encontrar el máximo común divisor de dos elementos (enlace para ver la descripción del algoritmo).

Abu Abdallah Muḥammad ibn Mūsā al-Jwārizmī (780 -850 ¿?)

Al_Khwarizmi

El dueño de este nombre (mejor conocido como al-Juarismi) tan emblemático lo tiene el matemático persa del siglo IX, este matemático creo la palabra algoritmo derivada de algebra, palabra que nace en su obra de nombre “Kitab al jabr wa´l-muqabala” (de nombres bonitos, nacen cosas bonitas), esta obra se cree es la más antigua que habla sobre algebra, por lo cual se da el merito a Al-Juarismi de ser el padre de la misma. En este texto se expone por primera vez la resolución de ecuaciones de primer y segundo grado, y un conjunto de reglas que guían al lector para resolver problemas, dándole significado a lo que es un algoritmo, hoy utilizado en todas las computadoras del mundo.

Blaise Pascal (1623 – 1662)

pascal

Fue un matemático francés del siglo XVII, fue el creador de una de las calculadoras mecánicas más antiguas, la Pascalina. La maquina servía al inicio para sumar, pero más tarde Pascal agrego aditamentos para que permitiera restar.

Lo interesante de la Pascalina, es que es una maquina mecánica de engranes y ruedas, que permitían sumar o restar. La maquina tenía 8 ruedas (6 para los enteros y 2 para los decimales) cada una con el número del 0 al 9; la Pascalina al momento de sumar el 1 al 9, la rueda que contenía el 9 se convertía en un 0, y la rueda vecina a la izquierda se movía de la posición inicial 0 al 1, dando 10 nuestra suma.

Alonzo Church (1904 – 1995)

church

Matemático y Lógico norteamericano, esta persona es la responsable de crear el concepto de computación, ya que fue el primero que describió este concepto en su sistema de nombre “Calculo Lambda” (con ayuda de Stephen Kleene).
El cálculo lambda nació para resolver el problema de Entscheidungsproblem (decimo problema de Hilbert). En el año de 1900, en el congreso Internacional de Matemáticos en Paris, el matemático David Hilbert planteo 23 problemas, en los cuales destaca el Entscheidungsproblem (o decimo problema de Hilbert). Hilbert buscaba un procedimiento algorítmico general para resolver un proceso matemático, y que este proceso nos dijera si la sentencia tenia solución o no.
El sistema de cálculo lambda sirve para definir si una función es computable, es decir, si un problema por medio de pasos y reglas puede llegar a su solución. Se puede considerar el cálculo lambda como el más pequeño lenguaje de programación.

Alan Turing (1912 – 1954)

Mucho circula alrededor de este gran matemático, criptógrafo y experto en computación, que muchos lo recuerdan por su suicidio con la manzana envenenada con cianuro.

Se podrían escribir libros y libros sobre lo que aporto a la computación, pero existe algo que sobresale entre todo, es la famosa maquina de Turing.

Al igual que Church, Alan Turing (alumno del primero) creó su sistema para resolver el decimo problema de Hilbert. Para resolver el problema concibió una maquina abstracta (objeto no físico), que tenía 3 elementos: una cinta de entrada, una cinta de salida y un procesador central (como los micros que tienes en tu computadora). La maquina funciona por medio de una tabla de reglas las cuales se aplican dependiendo el estado en que se encuentre la cinta, por ejemplo: si la cinta está en el estado 1 y hay una regla que nos dice que nos movamos al estado 3, la cinta se mueve y se vuelve a verificar la regla para ese estado, hasta llegar al estado final (lo cual nos diría que el problema fue resuelto). A partir de esta simple maquina hipotética, nació todo el manejo que realiza el CPU de las computadoras.

Jhon Von Neumann (1903 – 1957)

john_von_neumann

Matemático húngaro-estadounidense, es considerado uno de los más grandes matemáticos de la historia.

Su contribución en la computación radica en la Arquitectura de von Neumann. Esta arquitectura se basa principalmente en un la unidad aritmético-logica (ALU) que realiza los cálculos aritméticos, la unidad de control que se encarga de ir a la memoria principal por instrucciones para realizar, una memoria principal o memoria Ram que sirve para almacenar datos temporalmente, el sistemas de entrada/salida (un teclado de entrada o el monitor de salida por ejemplo) y el bus de datos que hace la comunicación de los datos en los distintos componentes. La mayoría de computadoras utilizan este modelo arquitectónico.

Ada Lovelace

Ada Lovelace fue la primera persona en crear un algoritmo en una maquina analítica. Por lo cual es considerada como la primer programadora y programador de la historia.

Utilizando la maquina analítica de Babbage pudo crear un algoritmo compatible con dicha maquina que resolviera los números de Bernoulli.

Dicho algoritmo escrito por Ada es también considerado el primer programa en la hitoria.

Dennis Ritchie (1941 – 2011)

dennis


Fue un científico de la computación, mejor conocido por crear junto a Ken Thompson el sistema operativo de nombre Unix, que hoy en día los hijos (directos o indirectos) que desencadeno este sistema operativo son utilizados por la mayoría de personas; ¿no me creen? algunos hijos directos o indirectos son Linux, Android, IOS y la lista de sistemas operativos llega a cuatro ceros o más.
Pero antes de crear Unix, Dennis creo el lenguaje de programación más conocido en el mundo, el lenguaje C.
Toda persona que se dedica a la informática, ha tenido un encuentro con este lenguaje, y algo que destaca mas (para mi claro) que haber creado el sistema operativo Unix, es que los lenguajes que utilizan los desarrolladores de software hoy en día, le deben mucho al lenguaje C, ya que fue gran influencia a lo que se utiliza en la época moderna para crear sistemas computacionales.

Estos fueron 8 personajes que sobresalen como pilares de la computación que conocemos hoy en día, no son los únicos claro, pero si son de los más relevantes. Después de las aportaciones estas personas (y algunas otras), ya conocemos todo lo demás, que gracias a ellos tenemos para nuestra comodidad en cuestión de computadoras.

EL problema de los departamentos de sistemas en México

Esta entrada está dedicada a un problema que se presenta en la mayoría de empresas mexicanas ajenas al software (que se dedican a otro giro) pero que cuentan con un departamento de sistemas en el cual se desarrolla el software a la medida el cual requiere la compañía.
Enumerare una lista de puntos que para mí engloban la gran problemática en los departamentos de sistemas:

  1. El primer problema radica en que la empresa se dedica a vender un producto que nada tiene que ver con software, por lo cual su departamento de sistemas no es su prioridad, esto ocasiona que el departamento tenga bajo presupuesto, lo cual afecta tanto el equipo a utilizar como el personal a contratar, una empresa de este tipo termina contratando personal por 12,000 pesos al mes en promedio y lo único bueno que tiene para ofrecerle es las prestaciones ya que el ambiente en el que trabajaran deja mucho que desear. Si ofreces bananas, pues obtendrás changos (frase de Alex).
  2. El segundo punto lo centrare en la documentación, en la mayoría de departamentos de sistemas no les pasa por la cabeza documentar su software, no piensan en que pasara cuando el personal encargado de cierto proyecto renuncie o sea despedido, o el nuevo personal que corregirá los bugs o se encargara de terminar sistemas a medias, todo esto solo dirige que su personal siga renunciando, si se tiene un software sin documentación, esperen contratar adivinos ya que ningún programador piensa igual.
  3. Como tercer punto, mencionare a los programadores de la vieja escuela que siguen programando con lenguajes de programación antiguos y lo peor aún es que son lenguajes que ya tienen problemas con los mismos sistemas operativos, todo esto nos dirige a desarrollos que duran mucho más tiempo cuando puede mejorarlos utilizando lenguajes de quinta generación que aceleran el proceso de desarrollo. Este problema en parte es culpa del programador que se cierra a lo que conoce o teme conocer algo nuevo y también es culpa de la empresa, ya que esta última no obliga a su personal a capacitarse pagándoles cursos y certificaciones.
  4. En el cuarto y último punto menciono algo importante y es el hecho de las empresas por no tener un modelo de mejora y evaluación de procesos, por ejemplo CMMI, MoProSoft. Esto es una gran parte de todo el espiral de problemas que hay, ya que no solo se necesita saber programar, se necesita saber organizar el proceso de un software, no solo es que llegue Pepe y te diga quiero esto y en tiempo real vas al código de producción (si directo de producción, no es broma), y se modifica el cambio, después Pepe se enoja por que fallaron cosas que ya funcionaban, pues claro no se sigue una organización para realizar el cambio, es lógico que fallen cosas, y todo esto hace que el sistema valla tomando forma de Frankenstein.

Para concluir yo recomendaría que las empresas le den más importancia al área de sistemas, ya que son el núcleo de su logística, casi todos los departamentos dependen de un software creado en esta área, y siempre el personal de sistemas termina llevándose todas las culpas en la mayoría de ocasiones. Se necesita mejorar los departamentos de sistemas ya que es un beneficio para la empresa, si se mejora los procesos como se realiza un software, con procesos como toma de requerimientos, análisis, desarrollo, pruebas e implementación se puede mejorar en calidad, y la calidad reduce los errores en el software ya que hacer un software cuando Pepe viene a joder pedir un cambio, es un 99% que va a fallar algo, y Pepe tendrá que seguir chingando dando vuelta al departamento hasta que se esté listo el cambio. También las empresas invirtiendo dinero en capacitación a su personal tendrán gente más preparada y no se cerraran en utilizar herramientas de los años 80, a lo cual harán los desarrollos de forma más rápida. Y como ultima sugerencia, optar por tener un modelo de mejora y evaluación de procesos no está demás, ya que esto les daría un estatus de calidad superior y lo cual se vería sin duda reflejado en los ingresos monetarios que obtiene la empresa.

Existen muchos más puntos pero trate de englobar los que creo son los principales.

¿Cuantos planetas existen en el universo?

Cada que miramos al cielo siempre vemos las estrellas que van apareciendo a través de la noche, algunas son planetas otras un cumulo de estrellas y otras son como nuestro sol, pero siempre nos preguntamos cuantas estrellas habría en el universo, ¿pero por qué no? cuantos planetas habrá, y de estos cuantos con vida.



Existe una ecuación para calcular el número de civilizaciones existentes, pero no me enfocare a esos aspectos, ya que ni matemático soy, y en esa ecuación existen muchos parámetros desconocidos y solo son suposiciones, esa ecuación es la ecuación de Drake .

Bueno ahora vamos a sacar datos curiosos por medio de sentido común, sin un método científico ya que es absurdo hacerlo cuando no tenemos los parámetros enteros, así que solo haré algo de ocio con los datos que conocemos o estamos acercados por medio de la observación que se ha hecho del universo desde hace años.

Se estima que se tienen cien mil millones (100,000,000,000) de galaxias en el universo observable, de esas galaxias existen varias clasificaciones en cuanto a número de estrellas que existen en ellas, que va desde las enanas, con 10(10,000,000 diez millones), hasta las gigantes, con 1012(1,000,000,000,000 un billón) pero como no tenemos un dato exacto de cuantas hay enanas o gigantes tomaremos el número promedio que seria 109, que sería 1,000,000,000 mil millones de estrellas por galaxia.

Ya tenemos que son 100,000,000,000 cien mil millones de galaxias de las cuales cada galaxia tiene 1,000,000,000 mil millones de estrellas, por lo cual con una multiplicación tendríamos que: 1011 x 109= 1020 cien trillones de estrellas en el universo(100,000,000,000,000,000,000).
Ahora sacaremos los planetas promedio por estrella, para esto no me meteré en mucha problemática; si suponemos que nuestro sistema solar tiene 8 planetas y 5 planetas enanos (los conocidos hasta hoy 24-marzo-2012, Ceres, Plutón, Haumea, Makemake y Eris) tomaremos en cuenta que la mayoría de sistemas extra solares que han sido detectados no sobrepasan el numero de planetas de nuestro sistema planetario, quizá por falta de observación, eso no quiere decir que tengan menor numero, pero hasta el momento es lo que sabemos, tomaremos como referencia la mitad de nuestro sistema planetario para sacar el numero de planetas, por lo cual tendríamos en promedio 5 planetas mas 3 planetas enanos por sistema planetario, entonces tendríamos por unas simples multiplicaciones para sacar los planetas del universo:

1020 x 5 = 5020 quinientos trillones de planetas (500,000,000,000,000,000,000) y

1020 x 3 = 3020 trescientos trillones de planetas enanos (300,000,000,000,000,000,000)

Así que en el universo con los datos que conocemos, aproximadamente hay 3020  + 5020 = 8020 ochocientos trillones de planetas (800,000,000,000,000,000,000)

800 trillones de planetas de los cuales si suponemos que de cada 15 uno tiene vida (quince planetas de nuestro sistema solar y uno solo tiene vida) entonces:

8020 / 15 = 5319 cincuenta y tres trillones de planetas habitables (53,000,000,000,000,000,000)

Aunque no creo que de cada 15 haya uno con vida sino el numero debe ser mucho menor, pero como sea que veamos esa cantidad aun así el numero es enorme, aparte quizá en varios satélites haya vida pero esos no los tome en cuenta ya que el numero crecería radicalmente.

En resumen:

  • En el universo hay 100,000,000,000 cien mil millones de galaxias
  • De las cuales cada galaxia tiene 1,000,000,000 mil millones de estrellas
  • Esto nos da 100,000,000,000,000,000,000 cien trillones de estrellas en el universo
  • De las cuales cada estrella tiene en promedio 8 planetas (5 planetas y 3 enanos)
  • Esto nos da un total de 800,000,000,000,000,000,000 ochocientos trillones de planetas en el universo.
  • De los cuales en el mejor de los casos 53,000,000,000,000,000,000 cincuenta y tres trillones de planetas con vida en el universo

Este ultimo dato es exagerado pero el punto de este articulo no es ser exactos, ademas deberíamos tomar otros factores como de cuanto tiempo dura una civilización o un planeta con vida y cosas así, pero el fin de este articulo es tomar como dato curioso, que a pesar de nuestro planeta que parece enorme, el universo es demasiado grande, que solo cuando uno se pone a ver las cosas detenidamente, se comienza a ver que solo somos un grano de arena en este océano, llamado Universo.

Como detalle ya que estamos con esto de los números y multiplicaciones, la cantidad de planetas que existe aproximadamente en el universo si por cada planeta usamos la medida de un grano de arena (1 milimetro) y ponemos cada grano uno sobre otro formando una edificación, nuestra estructura mediría cerca a el ancho de la Vía Láctea.