TEMA 1: Historia de Java.

1.- Historia de Java.

En Diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystems, reclutó a varios colegas entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo proyecto conocido como "El proyecto verde".
Con la ayuda de otros ingenieros, empezaron a trabajar en una pequeña oficina en Sand Hill Road en Menlo Park, California. Y así interrumpió todas las comunicaciones regulares con Sun y trabajó sin descanso durante 18 meses.

Intentaban desarrollar una nueva tecnología para programar la siguiente generación de dispositivos inteligentes, en los que Sun veía un campo nuevo a explorar. Crear un lenguaje de programación fácil de aprender y de usar.
En un principio se consideraba C++ como lenguaje a utilizar, pero tanto Gosling como Bill Joy lo encontraron inadecuado. Goslingintentó primero extender y modificar C++ resultando el lenguaje C++ ++ - (++ - porque se añadían y eliminaban características a C++), pero lo abandonó para crear un nuevo lenguaje desde cero al que llamo Oak (roble en inglés, según la versión mas aceptada, por el roble que veía através de la ventana de su despacho).

El resultado fue un lenguaje que tenía similitudes con C, C++ y Objetive C y que no estaba ligado a un tipo de CPU concreta.
Mas tarde, se cambiaría el nombre de Oak a Java, por cuestiones de propiedad intelectural, al existir ya un lenguaje con el nombre de Oak. Se supone que le pusieron ese nombre mientras tomaban café (Java es nombre de un tipo de café, originario de Asia), aunque otros afirman que el nombre deriva de las siglas de James Gosling, Arthur Van Hoff, y Andy Bechtolsheim.

En Agosto de 1991 Oak ya corría sus primeros programas.

Para 1992, el equipo ya había desarrollado un sistema en un prototipo llamado Star7 (*7), dispositivo parecido a una PDA, cuyo nombre venía de la combinación de teclas del teléfono de la oficina del Proyecto Green que permitía a los usuarios responder al teléfono desde cualquier lugar.

Por su parte, el presidente de la compañía Sun, Scott McNealy, se dio cuenta de forma oportuna y estableció elProyecto Verde como una subsidiaria de Sun.

Después de mostrar a Scott McNealy y Bill Joy los prototipos de bajo nivel del sistema, continuán con el desarrollo, incluyendo sistema operativo, Green OS; el lenguaje Oak, las librerías, alguna aplicación básica y el hardware, hasta que el 3 de septiembre de 1992 se termina el desarrollo y con ello el Proyecto Verde.

De 1993 a 1994, el equipo de Naughton se lanzó en busca de nuevas oportunidades en el mercado, mismas que se fueron dando mediante el sistema operativo base.
La incipiente subsidiaria fracasó en sus intentos de ganar una oferta con Time-Warner, sin embargo el equipo concluyó que el mercado para consumidores electrónicos smart y las cajas Set-Up en particular, no eran del todo eficaces. La subsidiaria Proyecto verde fue amortizada por la compañía Sun a mediados de 1994.

Afortunadamente, el cese del Proyecto Verde coincidió con el nacimiento del fenómeno mundial WEB. Al examinar las dinámicas de Internet, lo realizado por el ex equipo verde se adecuaba a este nuevo ambiente.

Patrick Naughton procedió a la construcción del lenguaje de programación Java que se accionaba con un browser prototipo. El 29 de septiembre de 1994 se termina el desarrollo del prototipo de HotJava. Cuando se hace la demostración a los ejecutivos de Sun, esta vez, se reconoce el potencial de Java y se acepta el proyecto.

Con el paso del tiempo HotJava se convirtió en un concepto práctico dentro del lenguaje Java y demostró que podría proporcionar multiplataformas para que el código pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros.
Una de las características de HotJava fue su soporte para los "applets", que son las partes de Java que pueden ser cargadas mediante una red de trabajo para después ejecutarlo localmente y así lograr soluciones dinámicas en computación acordes al rápido crecimiento del ambiente WEB.

El 23 de mayo de 1995, en la conferencia SunWorld `95, John Gage, de Sun Microsystems, y Marc Andreessen, cofundador y vicepresidente de Netscape, anunciaban la versión alpha de Java, que en ese momento solo corría en Solaris, y el hecho de que Java iba a ser incorporado en Netscape Navigator, el navegador mas utilizado de Internet.

Con la segunda alpha de Java en Julio, se añade el soporte para Windows NT y en la tercera, en Agosto, para Windows 95.
En enero de 1995 Sun formá la empresa Java Soft para dedicarse al desarrollo de productos basados en la tecnologías Java, y así trabajar con terceras partes para crear aplicaciones, herramientas, sistemas de plataforma y servicios para aumentar las capacidades del lenguaje. Ese mismo mes aparece la versión 1.0 del JDK.

Netscape Communications decide apoyar a Java applets en Netscape Navigator 2.0. Ese fue el factor clave que lanzó a Java a ser conocido y famoso.
Y como parte de su estrategia de crecimiento mundial y para favorecer la promoción de la nueva tecnología, Java Soft otorgó permisos para otras compañías para que pudieran tener acceso al código fuente y al mismo tiempo mejorar sus navegadores.
También les permitía crear herramientas de desarrollo para programación Java y los facultaba para acondicionar máquinas virtuales Java (JVM), a varios sistemas operativos.

Muy pronto las licencias o permisos contemplaban prestigiosas firmas como: IBM, Microsoft, Symantec, Silicon Graphics, Oracle, Toshiba y Novell.

Los apples Java (basados en JDK 1.02) son apoyados por los dos más populares navegadores web (Nestcape Navigator 3.0 y Microsoft Internet Explorer 3.0. I.B.M./Lotus, Computer Asociates, Symantec, Informix, Oracle, Sybase y otras poderosas empresas de software están construyendo Software 100% puro JAVA, por ejemplo el Corel Office que actualmente está en versión Beta.

Los nuevos proyectos de Java son co-patrocinados por cientos de millones de dólares en capital disponible de recursos tales como la Fundación Java, un fondo común de capital formado el verano pasado por 11 compañías, incluyendo Cisco Systems, IBM, Netscape y Oracle.

Hoy en día, puede encontrar la tecnología Java en redes y dispositivos que comprenden desde Internet y superordenadores cientifícos hasta portátiles y teléfonos móviles; desde simuladores de mercado en Wall Street hasta juegos de uso doméstico y tarjetas de crédito: Java está en todas partes.




2.-¿Que es Java?

Java es un lenguaje de programación y una plataforma informática comercializada por primera vez en 1995 por Sun Microsystems. Hay muchas aplicaciones y sitios web que no funcionarán a menos que tenga Java instalado y cada día se crean más.

3.- ¿Qué lo hace distinto a otros programas?

Que día a día se crean mas paginas y sitios web que almenos que tengas instalado JAVA funcionaran de no ser asi no se ejecutara.

4.-¿Que se puede programar en Java?


Se puede llegar a programar bastantes cosas como Juegos sitios Web entre otros claro para esto necesitas arduo trabajo y horas de esfuerzo. Aun que mucha gente lo abandona por que esto lleva muy dedicación e incluso personas an optado por tomar JAVA como algo inútil y sin lógica el lenguaje deJAVA lleva en mente Desarrollar.

1. Las grandes marcas utilizan Java
Los grandes nombres siguen utilizando Java, como por ejemplo: Google y Amazon usan está herramienta, por lo que si quieres tener más competencias utilizar Java en cualquiera de esos lugares, te dará un plus. Ya sabes si quieres un "in", en las empresas, el saber de la herramienta te brindará otra oportunidad.  Java es generalizada, y nunca es una pérdida de tiempo para aprender algo que todos los “peces gordos” están utilizando. Te dará una ventaja - especialmente en un entorno en el que es popular decir que: “odias Java”.
2. Lo necesitas para el desarrollo de Androide
Se pueden utilizar algunos lenguajes JVM para desarrollar Android. Sin embargo, el idioma principal para el desarrollo de Android es Java, es más si se quiere desarrollar para Apple el conocer Java te puede ayudar. Existen herramientas de Java para los desarrolladores de Apple también .Pero éstas no siempre están al día . Incluso si usted decide desarrollar para Apple sin Java ( iOS 7 promete más funciones para desarrolladores ), la realidad es que hay más teléfonos Android, siendo estos mucho más rápido que Apple y superando en términos de aplicaciones descargadas por los consumidores.
3. Conoce más acerca de JVM Idiomas
Puede utilizar más eficazmente lenguajes como Scala y Clojure cuando se tiene una comprensión de Java. Hay mucho que puedes hacer con lenguajes JVM, y la comprensión de Java puede dar un buen lugar para empezar. Además, si usted está aprendiendo las lenguas, que también podría aprender de la fuente.
4. Java aún es avanzado y potente
A pesar de que odies Java, la realidad es que este es un lenguaje de programación con el poder de permanencia, es avanzado y ofrece potentes herramientas para desarrolladores. Puedes utilizar las herramientas integradas de medio ambiente de desarrollo como Eclipse y Netbeans, y también tienes el acceso a la orientación de objetos avanzados de Java,  además Java se ha actualizado para que sea más rápido y más cómodo de usar. Por lo que si no has obtenido recientemente Java, no puedes saber lo que te estás perdiendo.
5. En algún momento tendrás que leer Java
Esto puedo ocurrir tarde o temprano incluso si no terminas usando Java, ¿qué pasa si necesitas relacionarte con la herramienta? A pesar de las fallas que presenta Java, aún la herramienta ofrece un tiempo de ejecución más seguro  y como también es tan utilizado, hay una gran probabilidad de que, como desarrollador, tengas que leerlo.
Antes de escribir Java off, tómese unos minutos para reconsiderar. Aún podría ser digno de su tiempo para aprender Java.

5.- Características del lenguaje.

  • Lenguaje totalmente orientado a Objetos. Todos los conceptos en los que se apoya esta técnica, encapsulación, herencia, polimorfismo, etc., están presentes en Java.
  • Disponibilidad de un amplio conjunto de bibliotecas. Como ya se mencionó anteriormente, Java es algo más que un lenguaje. La programación de aplicaciones con Java se basa no solo en el empleo del juego de instrucciones que componen el lenguaje, sino, fundamentalmente, en la posibilidad de utilizar el amplísimo conjunto de clases que Sun pone a disposición del programador y con las cuales es posible realizar prácticamente cualquier tipo de aplicación.
  • Lenguaje simple. Java posee una curva de aprendizaje muy rápida. Resulta relativamente sencillo escribir applets interesantes desde el principio. Todos aquellos familiarizados con C++ encontrarán que Java es más sencillo, ya que se han eliminado ciertas características, como los punteros. Debido a su semejanza con C y C++, y dado que la mayoría de la gente los conoce aunque sea de forma elemental, resulta muy fácil aprender Java. Los programadores experimentados en C++ pueden migrar muy rápidamente a Java y ser productivos en poco tiempo.
  • Distribuido. Java proporciona una colección de clases para su uso en aplicaciones de red, que permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes remotos, facilitando así la creación de aplicaciones distribuidas.
  • Interpretado y compilado a la vez. Java es compilado, en la medida en que su código fuente se transforma en una especie de código máquina, los bytecodes, semejantes a las instrucciones de ensamblador. Por otra parte, es interpretado, ya que los bytecodes se pueden ejecutar directamente sobre cualquier máquina a la cual se hayan portado el intérprete y el sistema de ejecución en tiempo real (run-time).
  • Robusto. Java fue diseñado para crear software altamente fiable. Para ello proporciona numerosas comprobaciones en compilación y en tiempo de ejecución. Sus características de memoria liberan a los programadores de una familia entera de errores (la aritmética de punteros), ya que se ha prescindido por completo de los punteros, y la recolección de basura elimina la necesidad de liberación explícita de memoria.
  • Seguro (?). Dada la naturaleza distribuida de Java, donde las applets se bajan desde cualquier punto de la Red, la seguridad se impuso como una necesidad de vital importancia. A nadie le gustaría ejecutar en su ordenador programas con acceso total a su sistema, procedentes de fuentes desconocidas. Así que se implementaron barreras de seguridad en el lenguaje y en el sistema de ejecución en tiempo real.

  • Indiferente a la arquitectura. Java está diseñado para soportar aplicaciones que serán ejecutadas en los más variados entornos de red, desde Unix a Windows Nt, pasando por Mac y estaciones de trabajo, sobre arquitecturas distintas y con sistemas operativos diversos. Para acomodar requisitos de ejecución tan diversos o variopintos, el compilador de Java genera bytecodes: un formato intermedio indiferente a la arquitectura diseñado para transportar el código eficientemente a múltiples plataformas hardware y software. El resto de problemas los soluciona el intérprete de Java.

  • Portable. La indiferencia a la arquitectura representa sólo una parte de su portabilidad. Además, Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus operadores aritméticos, de manera que los programas son iguales en todas las plataformas. Estas dos últimas características se conocen como la Máquina Virtual Java (JVM).
  • Alto rendimiento.

  • Multihebra. Hoy en día ya se ven como terriblemente limitadas las aplicaciones que sólo pueden ejecutar una acción a la vez. Java soporta sincronización de múltiples hilos de ejecución (multithreading) a nivel de lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así, mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario mientras otro presenta una animación en pantalla y otro realiza cálculos.

  • Dinámico. El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.

  • Produce applets. Java puede ser usado para crear dos tipos de programas: aplicaciones independientes y applets. Las aplicaciones independientes se comportan como cualquier otro programa escrito en cualquier lenguaje, como por ejemplo el navegador de Web HotJava, escrito íntegramente en Java. Por su parte, las applets son pequeños programas que aparecen embebidos en las páginas Web, como aparecen los gráficos o el texto, pero con la capacidad de ejecutar acciones muy complejas, como animar imágenes, establecer conexiones de red, presentar menús y cuadros de diálogo para luego emprender acciones, etc.

6.- Librerias de JAVA.


· Cloneable 

· Boolean
· Comparable 
· Byte
· Runnable 
· Character
· ClassLoader
· Compiler
· Double
· Float
· InheritableThreadLocal
· Interger
· Long
· Math
· Number
· Object
· System
· Thread
· Void 
· String, etc…

java.io

Soporta flujos de entrada y salida java.

Interfaces 

Clases:
· DataInput 
· BufferedInputStream
· DataOutput 
· BufferedOutputStream
· Externalizable 
· BufferedReader
· FileFilter 
· BufferedWrite 
· FilenameFilter 
· ByteArrayInputStream
· ObjectInput 
· ByteArrayOutputStream
· Serializable 
· DataOutputStream

Java.net

Soporta facilidades de red (URL, sockets TCP, sockets UDP, direcciones IP, conversiones binarias a texto).

Interfaces 
Clases:
· ContentHandlerFactory Authenticator 
· DatagramSocketImplFactory 
· ContentHandler
· FileNameMap 
· DatagramPacket
· SocketOptions 
· DatagramSocketImpl
· URLStreamHandlerFactory 
· HttpURLConnection 
· URL, etc… 



Java.until

Contiene diversas clases de utilidad (conjunto de bits, enumeración, contenedores, genéricos, Vectores y Hashtable, fecha, hora separación de token, generación de números aleatorios, propiedades del sistema).

Interfaces 

Clases:
· Collection 
· AbstractCollection
· Comparator 
· AbstracList
· Enumeration 
· AbstractMap
· EventListener 
· AbstractSecquentialList 
· Iterator 
· AbstractSet
· List 
· ArrayList
· Observer 
· Collection
· SortedSet 
· EventObject
· Random 
· Stack Timer
· Vector
· Date

Java.awt

La librería java.awt proporciona un Abstract Window Toolkit para programación GUI (Interfaz gráfica de usuario), dibujo de gráficos e imágenes, asi como también eventos colores, tipo de letras, botones, campos de texto, etc.

Interfaces 

Clases:
· ActiveEvent 
· AlphaComposite
· Adjustable 
· AWTEvent
· Composite AWTEventMulticaster
· LayoutManager 
· BorderLayout 
· Paint 
· CardLayout
· Cursor
· Dialog 
· Event
· Font
· Frame
· Graphics
· Image
· Label
· Menu
· Scrollbar.

Java.applet

El paquete java.applet permite la creación de applets a través de la clase Applet, proporciona interfaces para conectar un applet a un documento Web y para audición de audio.

Interfaces 

Clases:
· AppletContext 
· Applet
· AppletStub 
· AudiClip 

Java.math

Proporciona cálculos en entero grande y real grande. 

Clases
· Bigdecimal 
· Biginteger 



Java.rmi

Este paquete hace posible que un objeto se ejecute en una maquina virtual Java invoque métodos de otro objeto que se ejecuta en la maquina virtual distinta; dichas maquina virtuales pueden encontrarse en ordenadores diferentes conectados a través de una red TCP/IP. 


Interfaces 

Clases:
· Remote 
· MarshalledObject
· Naming
· RMISecurityManager

Java.text

Contiene clases que permiten dar formato especializado a fechas, números y mensajes.

Interfaces 

Clases:
· AttributedCharacterIterator Annotation
· CharacterIterator 
· AttibutedCharacterIterator 
· ChoceFormat
· DateFormat
· Format
· MessageFormat
· NumberFormat
· ParsePosition

Java.sound.midi

Paqueta con clases e interfaces que permiten la captura, procesamiento y reproducción de música MIDI.

Interfaces 

Clases:
· ControllerEventListener 
· Instrument
· MetaEventListener 
· MeteMessage 
· MidiChannel 
· MidiDevice.Info 
· MidiDevice 
· MidiEvent
· Receiver 
· MidiFileFormat
· Sequencer 
· Midimenssage 

Java.sql

Junto con el paqueta javax.sql, incluido en java 2 SDK Edition para la empresa, forma parte del API JDBC 2.0 (Conexión Java a Bases de Datos), y permite la conexión a bases de datos, el envío de sentencias SQL y la interpretación de los resultados de las consultas.

Interfaces 

Clases:
· Array 
· Date
· Blob 
· DriverManager
· CallabeStatement 
· DriverPropertyInfo
· Clob 
· SQLPermission
· Connection 
· Timer
· DatabaseMetaDate 
· Timestamp
· Driver 
· Types
· Ref 
· SQLData
· SQLInput
· SQLOutput
· Struct

Javax.swing

Paquete que mejora el AWT, proporcionando un conjunto de componentes que se ejecutan uniformemente en todas las plataformas.

Interfaces 

Clases:


· Action 
· AbstractAction
· ComboBoxEditor 
· ActonMap
· Icon 
· Box.Filler
· ListModel 
· CellRendererPane
· MenuElement 
· DebugGraphics
· WindowsConstants 
· DefaulListSelectionModel
· JApplet
· JButton
· JCheckBox
· JFrame 
· JMenu
· JLabel
· JPanel
· JTextField
· JTree
· JWindows 
· Timer
· UIManager, etc….
































Comentarios

Entradas populares de este blog

TEMA 7: Entradas y salidas por ventanas emergentes.

TEMA 11: Clase Math.