Category Archives: Opinión

Microsoft no es ingeniería, sino comercio

Uno de los grandes avances que ha conseguido Bill Gates no ha sido como informático, como muchos creen, sino como comercial.

Microsoft ha sido, quizás, una de las más grandes empresas de software que más se han basado, para sus grandes proyectos, en software adquirido a otras empresas. Con lo que los desarrollos propios, son pocos.

En la wikipedia se puede ver la lista de empresas que ha adquirido Microsoft a lo largo de su historia, y en la que se pueden ver dónde comenzaron ciertos productos.

Esto da una idea del porqué los productos de Microsoft, en el momento de salir, son frescos, parecen buenos, pero parece como si se fuesen marchitando e, igualmente, el porqué de la necesidad de reescribir Windows desde cero varias veces.

PHP no es para todo

La popularización de los lenguajes de programación, hace que muchas veces, una aplicación que se desarrolló en otro lenguaje, sea portada a ese nuevo lenguaje, para demostrar su potencia, sencillez o capacidades.

Algunas veces, esos nuevos lenguajes, resultan ser muy buenas herramientas que nos permiten trabajar más rápido sin necesidad de centrarnos mucho en problemas típicos y ya salvados desde hace tiempo (como las cadenas de texto y los tamaños de memoria han sido un gran problema a la hora de escribir programas en C/C++).

Lenguajes como Perl, PHP, Python, Tcl, Ruby… son lenguajes que no requieren de compilación, tienen un nivel de programación muy alto y no suelen estar ligados a una plataforma concreta, con lo que el mismo código puede ejecutarse sin problemas en otras plataformas (Windows, GNU/Linux, BSD…), su código es muy fácil de escribir y, en pocas líneas, se hacen muchas operaciones.

No obstante, cabe recordar que, los lenguajes que se escriben con particularidades específicas y especiales, suelen servir de forma muy óptima y potente a esas particularidades, pero de forma contraria, e incluso ser un lastre, en otros entornos de la programación.

Como ejemplo, tal y como dice el titular, PHP, que nació para la web, ahora se emplea como lenguaje de scripting para la consola e incluso con GTK para generar scripts fáciles que permitan automatizar el equipo. Pero, PHP no es para todo, y con esto quiero decir que PHP tiene sus pequeñas limitaciones.

Una aplicación en GTK o en un entorno de ventanas, por ejemplo, debe de tener capacidad multihilo y capacidad para compartición de memoria entre dichos hilos. PHP carece de ello. Es normal, la web no requiere estos mecanismos.

Al igual que para la rápida detección de ciertos tipos de texto y conversión de formatos o cálculo de datos en formato CSV se ha empleado siempre Perl, y ahora se comienza a emplear también Ruby, en línea antecesora del uso de herramientas dispersas como sed, awk y shell script. PHP también se emplea para estos cometidos, pero no es óptimo para ello, puesto que su núcleo de ejecución no está optimizado para una sola ejecución, sino para una repetición de ejecuciones secuenciales y/o paralelas.

Si comparamos la velocidad de ejecución de PHP y Perl, veremos que Perl se ejecuta casi tan eficientemente como C, puesto que está pensado para tareas de administración de sistemas y automatización de tareas, mientras que PHP no requiere de ello para su tarea cotidiana, que es la web, donde el intérprete de PHP no tiene que cargarse en cada ejecución, sino que permanece cargado a espera de ser llamado.

Pero, al igual que PHP no es para todo, los demás también tienen sus limitaciones. Por ejemplo, Perl se ha usado históricamente como CGI, mientras que Perl no es óptimo para la web en sentido de que PHP es más rápido en este contexto (gracias a técnicas de caché y aceleradores que se integran en el motor de Zend), más fácil de desarrollar y mantener.

Interfaz Natural con el Sistema Operativo

Hace tiempo leí a alguien que se había frustrado porque consideraba que la interacción ratón-gráficos no era algo tan natural como pedir en palabra, tecleando en consola, lo que se quiere hacer a la máquina.

En esto considero que los videojuegos nos llevan ventaja en lo que será el manejo de un sistema operativo en el futuro, ya que se pasó de un modo de aventura gráfica en la que había que escribir la acción a realizar y probar y probar hasta dar con la frase adecuada… a un modo más preciso y cerrado de elección de frases que el personaje pudiese decir.

Todo se mueve hacia el ratón, pero no nos damos cuenta de que es porque el movimiento de nuestra mano se sincroniza con el puntero de la pantalla. Quizás sería más cómodo mover la mano directamente por la pantalla, por una pantalla táctil, de modo que el movimiento real de la mano fuese la que guiase ese puntero y, dado el caso, quizás el puntero no se requiriese ya.

No obstante, el manejo de este sistema sería muy cansado, dado que tener las manos extendidas sobre una superficie vertical, no es ergonómico para nada.

Microsoft sacó un aparato que se parece a lo que puede llegar a ser considerado como comunicación o interfaz natural con un sistema informático. Se toca con la mano, tiene una superficie donde, con solo colocar el móvil, el MP3 y otros dispositivos (supongo que solo Bluetooth y/o WiFi), se conectan y permiten ver su contenido.

Pero más allá de tener que interactuar con una fría superficie, ahora nos proponen moldear nuestro entorno… un sistema holográfico “táctil” que reacciona e interactúa con nuestros movimientos. No obstante, la escritura de textos debe de realizarse mediante tecnologías de reconocimiento del habla para que resulte lo más natural. Mientras hablamos, nuestras manos van colocando el texto a partir de donde queremos que comience la siguiente frase y, si es un email, en caso de no querer guardar la voz para reenviarla, se puede hacer que el sistema lea, a viva voz, por un sistema de lectura, la carta recibida.

Por otro lado, la programación y administración de sistemas pueden aún requerir de algún tipo de teclado específico, o un conjunto de funciones en pantalla que poder presionar mientras se habla e interactúa…

Quizás hayamos llegado a la conclusión de que los sistemas informáticos no son naturales, sino artificiales, que cuesta habituarse a ellos, pero que, intentar cambiarlos, puede ser más complicado que el habituarse, por lo que todos estos avances, quizás sean más útiles y fructíferos para las siguientes generaciones, que para nosotros mismos.