You are on page 1of 18

VENTAJAS DEL SOFTWARE LIBRE 1.

Econmico (ms de mil millones de euros en licencias de Microsoft en Espaa anuales) El bajo o nulo coste de los productos libres permiten proporcionar a las PYMES servicios y ampliar sus infraestructuras sin que se vean mermados sus intentos de crecimiento por no poder hacer frente al pago de grandes cantidades en licencias. La prctica totalidad de los concursos para desarrollo de software para la administracin publica pasan por compatibilizar con productos de la factora de Microsoft, por lo que garantiza la perpetuacin e ingresos hacia Microsoft y no favorece a las empresas locales que pudieran ofrecer productos equivalentes. Adems de la reduccin de costes por uso de software libre. Qu podran aportar esas inversiones si los beneficiados fuesen empresas del propio estado, en lugar de mandar a una compaa extranjera esas enormes cantidades de dinero?

2. Libertad de uso y redistribucin Las licencias de software libre existentes permiten la instalacin del software tantas veces y en tantas mquinas como el usuario desee.

3. Independencia tecnolgica El acceso al cdigo fuente permite el desarrollo de nuevos productos sin la necesidad de desarrollar todo el proceso partiendo de cero. El secretismo tecnolgico es uno de los grandes frenos y desequilibrios existentes para el desarrollo en el modelo de propiedad intelectual.

4. Fomento de la libre competencia al basarse en servicios y no licencias Uno de los modelos de negocio que genera el software libre es la contratacin de servicios de atencin al cliente. Este sistema permite que las compaas que den el servicio compitan en igualdad de condiciones al no poseer la propiedad del producto del cual dan el servicio. Esto, adems, produce un cambio que redunda en una mayor atencin al cliente y contratacin de empleados, en contraposicin a sistemas mayoritariamente sostenidos por la venta de licencias y desatencin del cliente.

5. Soporte y compatibilidad a largo plazo Este punto, ms que una ventaja del software libre es una desventaja del software propietario, por lo que la eleccin de software libre evita este problema. Al vendedor, una vez ha alcanzado el mximo de ventas que puede realizar de un producto, no le interesa que sus clientes continen con el. La opcin es sacar un nuevo producto, producir software que emplee nuevas tecnologas solo para ste y no dar soporte para la resolucin de fallos al anterior, tratando de hacerlo obsoleto por todos los medios, pese a que este pudiera cubrir perfectamente las necesidades de muchos de sus usuarios. Veanse diferentes versiones de Windows que dejan de ser soportadas por Microsoft o software de grabacin que no admite nuevos modelos de grabadoras pticas sin una actualizacin, an cuando la grabadora nueva emplee el mismo mecanismo de grabacin que la antigua.

6. Formatos estndar Los formatos estndar permiten una interoperatividad ms alta entre sistemas, evitando incompatibilidades. Los estndares de facto son vlidos en ocasiones para lograr una alta interoperatividad si se omite el hecho que estos exigen el pago de royalties a terceros y por razones de mercado expuestas en el anterior punto no interesa que se perpeten mucho tiempo. Los formatos estndares afectan a todos los niveles. Un ejemplo lo estamos viendo en los documentos emitidos por las administraciones publicas en distintos formatos y versiones, que producen retrasos y dificultades en el acceso adecuado a la informacin para las mismas administraciones y para sus usuarios. Algunas administraciones de la unin europea ya estn dando el paso a formatos abiertos como ODF (Open Document Format).

7. Sistemas sin puertas traseras y ms seguros El acceso al cdigo fuente permite que tanto hackers como empresas de seguridad de todo el mundo puedan auditar los programas, por lo que la existencia de puertas traseras es ilgica ya que se pondra en evidencia y contraviene el inters de la comunidad que es la que lo genera.

8. Correccin mas rpida y eficiente de fallos El funcionamiento e inters conjunto de la comunidad ha demostrado solucionar mas rpidamente los fallos de seguridad en elsoftware libre, algo que desgraciadamente en el

software propietario es mas difcil y costoso. Cuando se notifica a las empresas propietarias del software, stas niegan inicialmente la existencia de dichos fallos por cuestiones de imagen y cuando finalmente admiten la existencia de esos bugs tardan meses hasta proporcionar los parches de seguridad.

9. Mtodos simples y unificados de gestin de software Actualmente la mayora de distribuciones de Linux incorporan alguno de los sistemas que unifican el mtodo de instalacin de programas, libreras, etc. por parte de los usuarios. Esto llega a simplificar hasta el grado de marcar o desmarcar una casilla para la gestin del software, y permiten el acceso a las miles de aplicaciones existentes de forma segura y gratuita a la par que evitan tener que recurrir a pginas web de dudosa tica desde las que los usuarios instalan sin saberlo spyware o virus informticos en sus sistemas. Este sistema de acceso y gestin del software se hace practicamente utpico si se extrapola al mercado propietario.

10. Sistema en expansin Las ventajas especialmente econmicas que aportan las soluciones libres a muchas empresas y las aportaciones de la comunidad han permitido un constante crecimiento del software libre, hasta superar en ocasiones como en el de los servidores web, al mercado propietario. El software libre ya no es una promesa, es una realidad y se utiliza en sistemas de produccin por algunas de las empresas tecnolgicas mas importantes como IBM, SUN Microsystems, Google, Hewlett-Packard, etc. Paradojicamente, incluso Microsoft, que posee sus propias herramientas, emplea GNU Linux en muchos de sus servidores. Podemos augurar sin lugar a dudas un futuro crecimiento de su empleo y una consolidacin bien merecida.

VENTAJAS DEL SOFTWARE PROPIETARIO 1. Propiedad y decisin de uso del software por parte de la empresa El desarrollo de la mayora de software requiere importantes inversiones para su estudio y desarrollo. Este esfuerzo, de no ser protegido se hara en balde, puesto que la competencia se podra apropiar inmediatamente del producto una vez finalizado, para sus propios fines. Esto garantiza al productor ser compensado por la inversin, fomentando as el continuo desarrollo.

2. Soporte para todo tipo de hardware Refirindonos por supuesto solo al mercado del sistema operativo mayoritario, que es Microsoft Windows, y no al resto de sistemas operativos de tipo Unix, que es minoritario. Se da, que el actual dominio de mercado invita a los fabricantes de dispositivos para ordenadores personales a producir drivers o hardware solo compatible con Windows. Por lo que la eleccin del sistema operativo de Microsoft tiene garantizado un soporte de hardware seguro. Aunque siendo justos, habra que decir que dicho soporte por parte de los fabricantes se limita generalmente al sistema operativo actual. Las siguientes versiones de sistemas operativos no se suelen soportar, a fin de vender nuevos dispositivos.

3. Mejor acabado de la mayora de aplicaciones El desarrollador de software propietario, generalmente, da un mejor acabado a las aplicaciones en cuestiones, tanto de esttica, como de usabilidad de la aplicacin. Aunque muchas aplicaciones de software libre tienen un excelente acabado, aqu se nota de forma especial el cuidado y el esfuerzo del desarrollador de software propietario. Al fin y al cabo gana dinero directamente con su producto y debe demostrar porqu su producto es una mejor opcin.

4. Las aplicaciones nmero uno son propietarias Obviamente, el actual dominio de mercado no slo interesa a los fabricantes de hardware, sino que tambin a los de software. Algunas de las aplicaciones ms demandadas son, segn mbitos: Microsoft Office, Nero Burning Rom, 3DStudio, etc...

5. El ocio para ordenadores personales est destinado al mercado propietario Los desarrolladores de juegos tienen sus miras en el mercado ms lucrativo, que es el de las consolas y en ltima instancia el de los ordenadores personales. Adems, en estos ltimos la practica totalidad de ttulos benefician a Microsoft Windows.

6. Menor necesidad de tcnicos especializados

El mejor acabado de la mayora de sistemas de software propietario y los estndares de facto actuales permiten una simplificacin del tratamiento de dichos sistemas, dando acceso a su uso y administracin, a tcnicos que requieren una menor formacin, reduciendo costes de mantenimiento. Esto ciertamente es una ventaja de cara a la implantacin de dichos sistemas, aunque no hay que olvidar que el menor conocimiento del sistema redunda en la imposibilidad de rodear las herramientas de simple manejo para solventar errores o ampliar las posibilidades de las mismas.

7. Mayor mercado laboral actual Como muchas de las ventajas restantes se deben al dominio del mercado, no hay que ignorar que cualquier trabajo relacionado con la informtica pasar, en casi todos los casos, por conocer herramientas de software propietario.

8. Mejor proteccin de las obras con copyright Las obras protegidas por copyright se ven beneficiadas por mecanismos anticopia, como el DRM y otras medidas, que palan o dificultan en cierto grado la piratera. El fenmeno de la piratera, est en constante debate sobre a quien perjudica y quien beneficia realmente (veanse cules son las empresas que mayores beneficios han obtenido, a pesar de ser las ms pirateadas y ofreciendo la competencia en ocasiones mejores productos), aunque eso, por supuesto, es otra discusin que merece ser tratada a parte.

9. Unificacin de productos Una de las ventajas ms destacables del software propietario es la toma de decisiones centralizada que se hace en torno a una lnea de productos, haciendo que no se desve de la idea principal y generando productos funcionales y altamente compatibles. Aqu, el software libre tiene una clara desventaja, al ser producido y tomadas las decisiones por un exceso de grupos y organismos descentralizados que trabajan en lneas paralelas y no llegan muchas veces a acuerdos entre ellos. Esto ocasiona que en algunas ocasiones haya un gran caos a programadores y usuarios finales que no saben que vas tomar. Adems genera productos cuya compatibilidad deja bastante que desear.

El anlisis de puntos realizado, como se puede comprobar est referido principalmente, al uso del software sobre ordenadores personales, aunque tambin es extensible en gran medida a productos de electrnica de consumo (routers, reproductores de vdeo, etc...), superordenadores y otros sistemas informticos.

La ofimtica es el conjunto de tcnicas, aplicaciones y herramientas informticas


que se utilizan en funciones de oficina para optimizar, automatizar y mejorar los procedimientos o tareas relacionados. Las herramientas ofimticas permiten idear, crear, manipular, transmitir y almacenar informacin necesaria en una oficina. Actualmente es fundamental que estas estn conectadas a una red local y/o a internet. Cualquier actividad que pueda hacerse manualmente en una oficina puede ser automatizada o ayudada por herramientas ofimticas: dictado, mecanografa, archivado, fax, microfilmado, gestin de archivos y documentos, etc. La ofimtica comienza a desarrollarse en la dcada del 70, con la masificacin de los equipos de oficina que comienzan a incluir microprocesadores, dejndose de usar mtodos y herramientas por otras ms modernas. Por ejemplo, se deja la mquina de escribir y se reemplaza por computadoras y sus procesadores de texto e incluso el dictado por voz automatizado. Herramientas y procedimientos ofimticos * Procesamiento de textos: Ver Procesador de texto. * Hoja de clculo * Herramientas de presentacin multimedia. * Base de datos. * Utilidades: agendas, calculadoras, etc. * Programas de e-mail, correo de voz, mensajeros. * Herramientas de reconocimiento de voz. * Suite o paquete ofimtico: paquete de mltiples herramientas ofimticas como Microsoft Office, OpenOffice, etc. Historia/origen de la ofirmtica La ofimtica o la automatizacin de la oficina moderna, comienza con la mquina de escribir y con la fotocopiadora, que permitieron mecanizar tareas que antes eran manuales.

Ms cerca en el tiempo, la automatizacin de la oficina tambin comenz a incluir el traspaso de informacin hacia medios electrnicos. Pero la revolucin de la automatizacin lleg de la mano de las computadoras, en especial de las computadoras personales en 1980. La ofimtica bsicamente se origin para la gestin de datos (gracias al poder de clculo y procesamiento de las computadoras), luego para el almacenamiento de informacin (dado que la capacidad de almacenamiento creca y se haca ms barato) y finalmente el intercambio de datos (gracias a las facilidades de las redes, la conexin a internet, etc.).

Se llama ofimtica al equipamiento hardware y software usado para idear y crear, coleccionar, almacenar, manipular y transmitir digitalmente la informacin necesaria en una oficina para realizar tareas y lograr objetivos bsicos. Las actividades bsicas de un sistema ofimtico comprenden el almacenamiento de datos en bruto, la transferencia electrnica de los mismos y la gestin de informacin electrnica relativa al negocio. La columna vertebral o lo mas escencial de la ofimtica es una red de rea local (LAN), que permite a los usuarios transmitir datos, correo electrnico e incluso voz por la Red. Todas las funciones propia del trabajo en oficina, incluyendo dictados, mecanografa, archivado, copias, fax, tlex, microfilmado y gestin de archivos, operacin de los telfonos y la centralita, caen en esta categora. La ofimtica apunta hacia aplicar todos los procedimientos descritos, en forma wireless, es decir sin cables. En este aspecto cada vez ms populares WIFI, y WIMAX juegan un papel trascendental.

Qu es la Ofimtica?
La ofimtica comprende el conjunto de tecnologas que permiten realizar una gestin eficiente de la informacin almacenada de forma digital.

Hoy en da vivimos en una sociedad basada en la informacin, de forma que el almacenamiento, transmisin y manipulacin de la misma resulta vital para alcanzar nuestros objetivos ya sean personales o empresariales. El hardware y el software nos permiten crear archivos digitales que almacen considerables volumenes de informacin. Por su parte el desarrollo de las redes de comunicacin ha permitido que la transmisin de dichos archivos sea casi inmediata entre los posibles usuarios interesados.

Microsoft Office
Si hablamos de paquetes ofimticos es de obligada referencia la suite ofrecida por Microsoft, ya que Office se ha convertido en el estndar de facto en cuanto a ofimtica se refiere.

Este paquete incluye diferentes aplicaciones que se han convertido en un referente en cada sector, Word como editor de texto, Excel como hoja de clculo y Power Point para la creacin de presentaciones multimedia.

El paquete Microsoft Office incluye otra serie de aplicaciones tal vez menos conocidas pero de igual valor, Access como base de datos, FrontPage para la creacin de pginas web, Outlook para la gestin del correo electrnico, y algunas otras ms especficas para determinadas tareas como pueden ser Project o Visio. Descarga directa y actualizaciones para Microsoft Office

Open Office
Ante la hegemona forzada por Microsoft Office surge una alternativa en forma de paquete ofimtico totalmente gratuito desarrollo por Sun Microsystems.

Este nuevo paquete ofrece herramientas con funcionalidades muy similares a las ya ofrecidas por Microsoft Office, y con la intencin de mejorar la interoperabilidad entre las diferentes suites ofimticas propuso un estndar para el almacenamiento de la informacin conocido como ODF (Open Document Format).

En la actualidad este paquete ofrece herramientas muy potentes y con gran estabilidad que suponen una seria competencia para el hegemnico Office de Microsoft. Entre sus principales aplicaciones destacan Writer, Calc, Impress y Draw. Descarga directa y actualizaciones para Open Office

Lenguaje de programacin
Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico como si fuesen sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como, por ejemplo, el HTML.
Segn la forma de ejecucin Lenguajes compilados

Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene que traducirse a un cdigo que pueda utilizar la mquina. Los programas traductores que pueden realizar esta operacin se llaman compiladores. stos, como los programas ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de procesar los datos de un problema. Los compiladores son aquellos cuya funcin es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con cdigo binario). Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el cdigo.
Lenguajes interpretados

Se puede tambin utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto que se produce durante la corrida de compilacin para utilizarlo en una corrida de produccin futura, el programador slo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuacin, un programa intrprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la mquina, convierte cada proposicin del

programa fuente en lenguaje de mquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el cdigo objeto para utilizarlo posteriormente. La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez y traducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instruccin del ciclo tendr que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea ms lento en tiempo de ejecucin (porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpido en tiempo de diseo (porque no se tiene que estar compilando a cada momento el cdigo completo). El intrprete elimina la necesidad de realizar una corrida de compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelacin deber ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de produccin.
Los lenguajes de programacin son herramientas que nos permiten crear programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc.. Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro. Los lenguajes de programacin de una computadora en particular se conoce como cdigo de mquinas o lenguaje de mquinas. Estos lenguajes codificados en una computadora especfica no podrn ser ejecutados en otra computadora diferente. Para que estos programas funcionen para diferentes computadoras hay que realizar una versin para cada una de ellas, lo que implica el aumento del costo de desarrollo. Por otra parte, los lenguajes de programacin en cdigo de mquina son verdaderamente difciles de entender para una persona, ya que estn compuestos de cdigos numricos sin sentido nemotcnico. Los lenguajes de programacin facilitan la tarea de programacin, ya que disponen de formas adecuadas que permiten ser leidas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar. Los lenguajes de programacin representan en forma simblica y en manera de un texto los cdigos que podrn ser leidos por una persona. Los lenguajes de programacin son independientes de las computadoras a utilizar. Existen estrategias que permiten ejecutar en una computadora un programa realizado en un lenguaje de programacin simblico. Los procesadores del lenguaje son los programas que permiten el tratamiento de la informacin en forma de texto, representada en los lenguajes de programacin simblicos.

Hay lenguajes de programacin que utilizan compilador. La ejecucin de un programa con compilador requiere de dos etapas: 1) Traducir el programa simblico a cdigo mquina 2) Ejecucin y procesamiento de los datos. Otros lenguajes de programacin utilizan un programa intrprete o traductor, el cual analiza directamente la descripcin simblica del programa fuente y realiza las instrucciones dadas. El intrprete en los lenguajes de programacin simula una mquina virtual, donde el lenguaje de mquina es similar al lenguaje fuente. La ventaja del proceso interprete es que no necesita de dos fases para ejecutar el programa, sin embargo su inconveniente es que la velocidad de ejecucin es ms lenta ya que debe analizar e interpretar las instrucciones contenidas en el programa fuente.

Al desarrollarse las primeras computadoras electrnicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la informacin sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de clculo, uno por uno. John Von Neumann desarroll el modelo que lleva su nombre, para describir este concepto de "programa almacenado". En este modelo, se tiene una abstraccin de la memoria como un conjunto de celdas, que almacenan simplemente nmeros. Estos nmeros pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en s. Cmo es que describimos un programa como nmeros? Se tena el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permita almacenar nmeros binarios. La solucin que se tom fue la siguiente: a cada accin que sea capaz de realizar nuestra computadora, asociarle un nmero, que ser su cdigo de operacin (opcode) . Por ejemplo, una calculadora programable simple podra asignar los opcodes : 1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE. Supongamos que queremos realizar la operacin 5 * 3 + 2, en la calculadora descrita arriba. En memoria, podramos "escribir" el programa de la siguiente forma: Localidad Opcode Significado Comentario 0 5 5 En esta localidad, tenemos el primer nmero de la frmula 1 3 * En esta localidad, tenemos el opcode que representa la multiplicacin. 2 3 3 En esta localidad, tenemos el segundo nmero de la frmula 3 1 + En esta localidad, tenemos el opcode que representa la suma. 4 2 2 En esta localidad, tenemos el ltimo nmero de la frmula

Podemos ver que con esta representacin, es simple expresar las operaciones de las que es capaz el hardware (en este caso, nuestra calculadora imaginaria), en la memoria. La descripcin y uso de los opcodes es lo que llamamos lenguaje de mquina . Es decir, la lista de cdigos que la mquina va a interpretar como instrucciones, describe las capacidades de programacin que tenemos de ella; es el lenguaje ms primitivo, depende directamente del hardware, y requiere del programador que conozca el funcionamiento de la mquina al ms bajo nivel. los lenguajes ms primitivos fueron los lenguajes de mquina. Esto, ya que el hardware se desarroll antes del software, y adems cualquier software finalmente tiene que expresarse en el lenguaje que maneja el hardware. La programacin en esos momentos era sumamente tediosa, pues el programador tena que "bajarse" al nivel de la mquina y decirle, paso a pasito, cada punto de la tarea que tena que realizar. Adems, deba expresarlo en forma numrica; y por supuesto, este proceso era propenso a errores, con lo que la productividad del programador era muy limitada. Sin embargo, hay que recordar que en estos momentos, simplemente an no exista alternativa. El primer gran avance que se dio, como ya se coment, fue la abstraccin dada por el Lenguaje Ensamblador, y con l, el nacimiento de las primeras herramientas automticas para generar el cdigo mquina. Esto redujo los errores triviales, como poda ser el nmero que corresponda a una operacin, que son sumamente engorrosos y difciles de detectar, pero fciles de cometer. Sin embargo, an aqu es fcil para el programador perderse y cometer errores de lgica, pues debe bajar al nivel de la forma en que trabaja el CPU, y entender bien todo lo que sucede dentro de l. Con el desarrollo en los 50s y 60s de algoritmos de ms elevado nivel, y el aumento de poder del hardware, empezaron a entrar al uso de computadoras cientficos de otras ramas; ellos conocan mucho de Fsica, Qumica y otras ramas similares, pero no de Computacin, y por supuesto, les era sumamente complicado trabajar con lenguaje Ensamblador en vez de frmulas. As, naci el concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN (FORmula TRANslation), que, como su nombre indica, inici como un "simple" esfuerzo de traducir un lenguaje de frmulas, al lenguaje ensamblador y por consiguiente al lenguaje de mquina. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: buscar la mayor abstraccin posible, y facilitar la vida al programador, aumentando la productividad, encargndose los compiladores o intrpretes de traducir el lenguaje de alto nivel, al lenguaje de computadora. Hay que notar la existencia de lenguajes que combinan caractersticas de los de alto nivel y los de bajo nivel (es decir, Ensamblador). Mi ejemplo favorito es C: contiene estructuras de programacin de alto nivel, y la facilidad de usar libreras que tambin son caractersticas de alto nivel; sin embargo, fue diseado con muy pocas instrucciones, las cuales son sumamente sencillas, fciles de traducir al lenguaje de la mquina; y requiere de un entendimiento apropiado de cmo funciona la mquina, el uso de la memoria, etctera. Por ello, muchas personas consideramos a lenguajes como C (que fue diseado para hacer sistemas operativos), lenguajes de nivel medio.

Java El lenguaje de programacin Java, fue diseado por la compaa Sun Microsystems Inc, con el propsito de crear un lenguaje que pudiera funcionar en redes computacionales heterogneas ( redes de computadoras formadas por ms de un tipo de computadora, ya sean PC, MAC's, estaciones de trabajo, etc.),y que fuera independiente de la plataforma en la que se vaya a ejecutar. Esto significa que un programa de Java puede ejecutarse en cualquier mquina o plataforma. El lenguaje fue diseado con las siguientes caractersticas en mente:

Simple. Elimina la complejidad de los lenguajes como "C" y da paso al contexto de los lenguajes modernos orientados a objetos. Orientado a Objetos. La filosofa de programacin orientada a objetos es diferente a la programacin convencional. Familiar. Como la mayora de los programadores estn acostumbrados a programar en C o en C++, el sintaxis de Java es muy similar al de estos. Robusto. El sistema de Java maneja la memoria de la computadora por ti. No te tienes que preocupar por apuntadores, memoria que no se est utilizando, etc. Java realiza todo esto sin necesidad de que uno se lo indique. Seguro. El sistema de Java tiene ciertas polticas que evitan se puedan codificar virus con este lenguaje. Existen muchas restricciones, especialmente para los applets, que limitan lo que se puede y no puede hacer con los recursos crticos de una computadora. Portable. Como el cdigo compilado de Java (conocido como byte code) es interpretado, un programa compilado de Java puede ser utilizado por cualquier computadora que tenga implementado el interprete de Java. Independiente a la arquitectura. Al compilar un programa en Java, el cdigo resultante un tipo de cdigo binario conocido como byte code. Este cdido es interpretado por diferentes computadoras de igual manera, solamente hay que implementar un intrprete para cada plataforma. De esa manera Java logra ser un lenguaje que no depende de una arquitectura computacional definida. Multithreaded. Un lenguaje que soporta multiples threads es un lenguaje que puede ejecutar diferentes lneas de cdigo al mismo tiempo. Interpretado. Java corre en mquina virtual, por lo tanto es interpretado. Dinmico. Java no requiere que compiles todas las clases de un programa para que este funcione. Si realizas una modificacin a una clase Java se encarga de realizar un Dynamic Bynding o un Dynamic Loading para encontrar las clases.

Java puede funcionar como una aplicacin sola o como un "applet", que es un pequeo programa hecho en Java. Los applets de Java se pueden "pegar" a una pgina de Web (HTML), y con esto puedes tener un programa que cualquier persona que tenga un browser compatible podr usar. Nota:Diferencia entre Java y CGI La diferencia es esencialmente simple, un CGI se ejecuta en el servidor mientras que un programa en Java se ejecuta en la mquina del usuario.

Java funciona de la siguiente manera: El compilador de Java deja el programa en un Pseudo-cdigo (no es cdigo maquinal) y luego el intrprete de Java ejecuta el programa (lo que se conoce como el "Java Virtual Machine"). Por eso Java es multiplataforma, existe un intrprete para cada mquina diferente. Nota: El cdigo maquinal es el cdigo binario que la computadora entiende y puede ejecutar. Para entender bien como funciona un applet de Java vean el siguiente ejemplo: 1. 2. Existe un cdigo de Java en un servidor de Web. (Los cdigos de Java se caracterizan por tener la extensin *.class). 3. Una persona en Internet, con un browser compatible con Java, realiza una coneccin al servidor. 4. El servidor enva el documento HTML y el cdigo en Java (*.class). 5. En la computadora del usuario remoto llegan ambos, y la Mquina Virtual de Java, que est en el browser, transforma el cdigo Java en un cdigo que entienda la mquina local y se ejecuta el programa dentro de la pgina de Web. 6. Si el usuario realiza otra conexin a otro URL o se sale del browser, el programa se deja de ejecutar y en la computadora no queda rastro de el.

Ejemplo de tutorial de Java: En Java hay tres tipos de comentarios: // comentarios para una sola lnea /* comentarios de una o ms lneas */ /** comentario de documentacin, de una o ms lneas */ Los dos primeros tipos de comentarios son los que todo programador conoce y se utilizan del mismo modo. Los comentarios de documentacin, colocados inmediatamente antes de

una declaracin (de variable o funcin), indican que ese comentario ha de ser colocado en la documentacin que se genera automticamente cuando se utiliza la herramienta de Java, javadoc. Dichos comentarios sirven como descripcin del elemento declarado permitiendo generar una documentacin de nuestras clases escrita al mismo tiempo que se genera el cdigo. En este tipo de comentario para documentacin, se permite la introduccin de algunos tokens o palabras clave, que harn que la informacin que les sigue aparezca de forma diferente al resto en la documentacin. Identificadores Los identificadores nombran variables, funciones, clases y objetos; cualquier cosa que el programador necesite identificar o usar. En Java, un identificador comienza con una letra, un subrayado (_) o un smbolo de dlar ($). Los siguientes caracteres pueden ser letras o dgitos. Se distinguen las maysculas de las minsculas y no hay longitud mxima. Seran identificadores vlidos: identificador nombre_usuario Nombre_Usuario _variable_del_sistema $transaccion y su uso sera, por ejemplo: int contador_principal; char _lista_de_ficheros; float $cantidad_en_Ptas; Unix Ejemplo de Unix: No todo el "rbol" de directorios est compuesto por directorios de usuario. Existen muchos de ellos que son de uso general o del propio sistema y con los que habr que familiarizarse. Los ms importantes son:

/ El raz, del que "cuelgan" todos. /bin y /usr/bin Contienen comandos UNIX ejecutables. /etc Es quiz el directorio ms importante. Contiene ficheros de datos y configuracin del sistema, el fichero de password, configuracin de terminales, red, etc (de ah su nombre). /dev Ficheros de dispositivos E/S. /usr/man Manual /tmp Directorio para arreglos temporales. TODOS los usuarios pueden leer y escribir en l. C C es un lenguaje de programacin diseado por Dennis Ritchie, de los Laboratorios Bell, y se instal en un PDP-11 en 1972; se dise para ser el lenguaje de los Sistemas Operativos UNIX1. A su vez, UNIX es un Sistema Operativo desarrollado por Ken Thompson, quin utiliz el lenguaje ensamblador y un lenguaje llamado B para producir las versiones originales de UNIX, en 1970. C se invent para superar las limitaciones de B. C es un lenguaje maduro de propsitos generales que se desarroll a partir de estas races; su definicin aparece en 1978 en el apndice ``C Reference Manual'' del libro The C Programming Language, de Brian W. Kernighan y Dennis M. Ritchie (Englewood Cliffs, Nueva Jersey, Prentice-Hall 1978), pero el estndar recomendable ms reciente apareci en junio de 1983, en el documento de los Laboratorios Bell titulado The C Programming

Language-Reference Manual, escrito por Dennis M. Ritchie Un programa en C Generalizando, un programa en C consta de tres secciones. La primera seccin es donde van todos los ``headers''. Estos ``headers'' son comnmente los ``#define'' y los ``#include''. Como segunda seccin se tienen las ``funciones''. Al igual que Pascal, en C todas las funciones que se van a ocupar en el programa deben ir antes que la funcin principal (main()). Declarando las funciones a ocupar al principio del programa, se logra que la funcin principal est antes que el resto de las funciones. Ahora, solo se habla de funciones ya que en C no existen los procedimientos. Y como ltima seccin se tiene a la funcin principal, llamada main. Cuando se ejecuta el programa, lo primero que se ejecuta es esta funcin, y de ah sigue el resto del programa. Los smbolos { y } indican ``begin'' y ``end'' respectivamente. Si en una funcin o en un ciclo while, por ejemplo, su contenido es de solamente una lnea, no es necesario usar ``llaves'' ({ }), en caso contrario es obligacin usarlos. Ejemplo de un programa en C /*Programa ejemplo que despliega el contenido de "ROL" en pantalla*/ #include <stdio.h> #define ROL "9274002-1" despliega_rol() { printf("Mi rol es : \%s\n", ROL); } void main() { despliega_rol(); } /* Fin programa */