Los ordenadores sólo procesan lenguaje binario,2 pero para las personas este no es un modo válido de comunicarse (salvo a nivel sináptico :-). Si bien en los tiempos heroicos de los primeros ordenadores no les quedaba otro remedio que hacerlo, los programadores hace mucho que no escriben su código en lenguaje binario (denominado técnicamente ``código-máquina''), pues es terriblemente tedioso, improductivo y muy sujeto a errores. Hace tiempo que los programadores escriben las instrucciones que ha de ejecutar el procesador de la máquina mediante lenguajes formales, llamados ``de alto nivel'', bastante cercanos al inglés, si bien con rígidas reglas sintácticas que lo asemejan a los lenguajes lógico-formales. Esto facilita enormemente la tarea de escribir programas pero, para que esas instrucciones sean comprensibles para el procesador, deben ser convertidas antes a código-máquina. Esa conversión se realiza cómodamente con programas especiales, llamados compiladores. A lo que escribe el programador se le denomina ``código-fuente''. Al resultado de la ``conversión'' (compilación) en lenguaje-máquina, se le denomina ``código-objeto'', ``binarios'' o ``ficheros ejecutables''. En principio, al usuario común sólo le importa este último nivel, los ``binarios'', pero conviene tener clara la distinción entre fuentes y binarios pues es clave para entender el empeño de los partidarios del software libre en disponer de las fuentes.
Pero el software libre es mucho más que el derecho de los programadores y de los hackers3 a disponer de las fuentes del código: significa también la libertad de copiar y redistribuir esos programas. Esos derechos, o su ausencia, condicionan a cualquiera que use un ordenador y han configurado la industria del software y de la informática tal y como la conocemos hoy día. También ha dado lugar a un movimiento social --el del software libre-- cuya historia reconstruiremos brevemente en las próximas líneas.
Software de Aplicación:

Las computadoras y el software de aplicación han permitido al hombre, simplificar y mejorar muchas tareas rutinarias y repetitivas.
Por ello, este software o programas le han dado a las computadoras un carácter muy práctico y popular.
Estos programas son empleados por el usuario para simplificar su vida, ya sea si decide escribir un libro, una tesis o un memorandum, o para poder manejar grandes volúmenes de datos; o aquellos programas que le sirvan para emitir una nómina de una empresa. Estos programas son los más solicitados por la mayoría de usuarios de computadoras debido a los beneficios o servicios que reciben de ellos.
Existen también programas de aplicación que brindan al usuario otro tipo de servicios; por ejemplo, los juegos por computadora son muy estimados, ya que gracias a ellos el usuario obtiene diversión y esparcimiento.
Los programas orientados a la edición de texto por computadora permite al usuario obtener combinación de texto con imágenes de alta calidad profesional y gráficos.
Los hay también educativos, matemáticos, estadísticos, etc.
El software de aplicación más difundido en el mercado se puede dividir en varias categorías, las principales son:
1. Procesadores de Palabras o Texto (Word Processors).
2. Sistemas Manejadores o Administradores de Bases de Datos (DBMS, Data Base Management Systems).
3. Hojas Electrónicas de Cálculo.
4. Programas de Presentación Gráfica.
5. Programas Educativos, Software Educativo o Tutoriales.
6. Programas de Edición de Texto o de Escritorio.
7. Programas de Edición Gráfica.
8. Programas de Diseño Asistidos por Computadora (CAD o Computer Aided Design).
9. Programas para Manufactura por Computadora (CAM o Computer Aided Manufacturing).
10. Programas Matemáticos y Estadísticos.
11. Programas de Esparcimiento y Videojuegos.
12. Programas Integrados.
13. Programas para gráficos e imágenes, etc.
Para lograr que dos o más computadoras se comuniquen entre sí, es necesario que exista tanto un medio físico como uno lógico que permita a ambas entablar comunicación. El software de comunicación se refiere al conjunto de programas que cumple la función lógica descrita anteriormente.
Actualmente existe en el mercado de las comunicaciones de datos una amplia variedad de software de comunicación, entre los que se encuentran:
Smartcomm (Ambiente Windows).
Quick Link II.
Procomm Plus (Ambiente DOS).
SLIP (Serial on Line Internet Protocol).
PPT (Pert to Pert Protocol).
Camaleon.
Winsockets.
Los tres primeros productos no permiten copiar información mediante el programa FTP (File Transfer Protocol o protocolo de Transferencia de Archivos), mientras que el resto si lo permite.
El software de SLIP, desarrollado por la Universidad de Minnesota de los EUA permite tener acceso a todos los servicios de la red Internet desde cualquier computadora personal utilizando un módem y una línea telefónica.
La historia del software como se ha visto, no surge con los equipos electrónicos, -aunque es con ellos que adopta el nombre- está presente desde el empleo de ábacos o sumadoras mecánicas. Sin embargo, en estos casos, el software no se encuentra incorporado en el equipo. Es aportado por el operario. La máquina analítica de Charles Babbage, incidentalmente, tuvo su software, y fue una amiga de éste, la legendaria lady Lovelace, quien aportó el software que no se llegó a usar, dado que la máquina nunca se completó. En el ENIAC el control de las operaciones estaba parcialmente integrado en el equipo. Dicho control era realizado por un circuito que requería un alambrado específico para cada aplicación. Imaginemos lo engorroso que resultaba realambrar el circuito cada vez que cambiaba el uso del ENIAC.
Hasta este momento, no se percibía una diferencia sustancial entre el equipo y el control de las operaciones. El concepto de programa de control almacenado en memoria, aportación popularmente atribuida a John von Neumann, precipitó el desarrollo de software. En éste se perfilaron dos tendencias de desarrollo: los programas de aplicación y los de servicio. Estos últimos tenían como propósito facilitar el desarrollo de programas a partir de programas. Algunos programas de servicio fueron simples cargadores que permitieron emplear notaciones como el octal o hexadecimal más compactas que el binario. Otros como los ensambladores simplificaron más el proceso al reemplazar las notaciones numéricas con los símbolos mnemónicos que aportaron para describir a cada instrucción de la máquina. El siguiente paso significativo fue la traducción de fórmulas, que permitió el desarrollo de la historia del software y la descripción de los algoritmos con el empleo de expresiones algebraicas.

No hay comentarios:
Publicar un comentario