CEMNG INMACULADA CONCEPCION
“Investigación sobre los lenguajes de programación Visual Studios y Java”
Maestro:
Gerson Rodas
Alumna:
Karelia Antúnez
Grado y Sección:
II de BTP Informática
Fecha de entrega:
Viernes 16 de Agosto del 2019
“
Contenido
Visual Basic .................................................................................................................................... 1
En Esta Sección........................................................................................................................... 1
Secciones relacionadas............................................................................................................ 2
Lenguaje De Programación Java................................................................................................... 18
Historia...................................................................................................................................... 19
Filosofía .................................................................................................................................... 20
Orientado A Objetos ................................................................................................................. 20
Independencia De La Plataforma .............................................................................................. 21
El Recolector De Basura........................................................................................................... 22
Visión general de la plataforma Java ........................................................................................ 22
Conozca Las API De Java......................................................................................................... 22
Conceptos de programación orientada a objetos................................................................... 23
¿Qué es un objeto? ................................................................................................................ 23
Comunicación y coordinación de objetos ............................................................................. 24
¿Qué es un IDE? ................................................................................................................... 25
Mejores IDE para programar en Java ................................................................................... 25
1
Visual Basic
Visual Basic está diseñado para crear de manera productiva aplicaciones seguras para los tipos y
orientadas a objetos. Visual Basic permite a los desarrolladores apuntar a Windows, Web y
dispositivos móviles. Al igual que con todos los idiomas destinados a Microsoft .NET
Framework, los programas escritos en Visual Basic se benefician de la seguridad y la
interoperabilidad del lenguaje.
Esta generación de Visual Basic continúa la tradición de brindarle una forma rápida y fácil de
crear aplicaciones basadas en .NET Framework.
Si aún no tiene Visual Basic, puede descargar una versión gratuita de Visual Studio que incluye
Visual Basic desde el sitio de Visual Studio .
En Esta Sección
 Primeros pasos
Le ayuda a comenzar a trabajar enumerando las novedades y lo que está disponible en
varias ediciones del producto.
 Conceptos de programación
Presenta los conceptos de lenguaje que son más útiles para los programadores de Visual
Basic.
 Estructura del programa y convenciones de código
Contiene documentación sobre la estructura básica y las convenciones de código de
2
Visual Basic, como las convenciones de nomenclatura, los comentarios en código y las
limitaciones dentro de Visual Basic.
 Características del lenguaje Visual Basic
Proporciona enlaces a temas que presentan y discuten características importantes de
Visual Basic, incluidos los literales LINQ y XML.
 Referencia de Visual Basic
Contiene el lenguaje Visual Basic y la información del compilador.
 Desarrollo de aplicaciones con Visual Basic
Analiza varios aspectos del desarrollo en Visual Basic, como la seguridad, el manejo de
excepciones y el uso de la biblioteca de clases de .NET Framework.
 Interoperabilidad COM
Explica los problemas de interoperabilidad asociados con la creación y el uso de objetos
del modelo de objetos componentes (COM) con Visual Basic.
 Muestras
Contiene información sobre muestras.
 Tutoriales
Proporciona enlaces a instrucciones paso a paso para escenarios comunes.
Secciones relacionadas
Comenzar a desarrollar con Visual Studio
Proporciona enlaces a temas que lo ayudan a conocer los conceptos básicos de Visual Studio.
.NET API Browser
Proporciona entrada a la biblioteca de clases, interfaces y tipos de valores que se incluyen en
Microsoft .NET Framework SDK.
3
Introducción.
Visual Basic es uno de los tantos lenguajes de programación que podemos encontrar hoy en día.
Dicho lenguaje nace del BASIC (Beginner´s All-purpose Symbolic Instruction Code) que fue
creado en su versión original en el Dartmouth College, con el propósito de servir a aquellas
personas que estaban interesadas en iniciarse en algún lenguaje de programación. Luego de sufrir
varias modificaciones, en el año 1978 se estableció el BASIC estándar. La sencillez del lenguaje
ganó el desprecio de los programadores avanzados por considerarlo "un lenguaje para
principiantes".
Primero fue GW-BASIC, luego se transformó en QuickBASIC y actualmente se lo conoce
como Visual Basic y la versión más reciente es la 6 que se incluye en el paquete Visual Studio 6
de Microsoft. Esta versión combina la sencillez del BASIC con un poderoso lenguaje de
programación Visual que juntos permiten desarrollar robustos programas de 32 bits
para Windows. Esta fusión de sencillez y la estética permitió ampliar mucho más
el monopolio de Microsoft, ya que el lenguaje sólo es compatible con Windows, un sistema
operativo de la misma empresa.
Visual Basic ya no es más "un lenguaje para principiantes" sino que es una perfecta alternativa
para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con
Windows.
En este informe explicaremos algunos términos y/o características de mismo con la finalidad
de aprender mas sobre este Programa y manejarlo con facilidad
De los fundamentos de programación explique:
4
Es un lenguaje de programación que se ha diseñado para facilitar el desarrollo de aplicaciones en
un entorno grafico (GUI-GRAPHICAL USER INTERFACE) Como Windows 98, Windows
NT o superior.
¿Qué es Visual Basic?
Diseñador de entorno de datos: Es posible generar, de manera automática, conectividad entre
controles y datos mediante la acción de arrastrar y colocar sobre formularios o informes.
Los Objetos Actives son una nueva tecnología de acceso a datos mediante la acción de arrastrar y
colocar sobre formularios o informes.
Asistente para formularios: Sirve para generar de manera automática formularios que
administran registros de tablas o consultas pertenecientes a una base de datos, hoja de calculo u
objeto (ADO-ACTIVE DATA OBJECT)
Asistente para barras de herramientas es factible incluir barras de herramientas es factible incluir
barra de herramientas personalizada, donde el usuario selecciona los botones que desea
visualizar durante la ejecución.
En las aplicaciones HTML: Se combinan instrucciones de Visual Basic con código HTML para
controlar los eventos que se realizan con frecuencia en una pagina web.
La Ventana de Vista de datos proporciona acceso a la estructura de una base de datos. Desde esta
también acceso al Diseñador de Consultas y diseñador de Base de datos para administrar y
registros.
5
Características de Visual Basic.
 Barra de titulo: muestra el nombre del proyecto y del formulario q se está diseñando
actualmente
 Barra de menús: agrupa los menús despegables que contienes todas las operaciones que
pueden llevarse a cabo con Visual Basic 6.0.
 Barra de herramientas estándar: contienen los botones que se utilizan con mayor
frecuencia cuando se trabaja con un proyecto. Simplifica la elección de opciones de los
menús Archivo, Edición, Ver y Ejecutar; además, en el área derecha presenta la ubicación
(coordenadas) y el tamaño del objeto seleccionado
 Ventana de formulario: es el área donde se diseña la interfaz gráfica, es decir, es donde se
inserta electo gráficos, como botones, imágenes, casilla de verificación, cuadros de listas,
etc.
 Cuadro de herramientas: presenta todos los controles necesarios para diseñar una
aplicación, como cuadros de texto, etiquetas, cuadros de listas, botones de comandos, etc.
Ventana de proyecto: muestra los elementos involucrados en el proyecto,
como formularios, módulos, controles oxc, etc. Cada elemento puede seleccionarse en
forma independiente para su edición.
 Ventana de posición del formulario: muestra la ubicación que tendrá el formulario en la
pantalla, cuando ejecute la aplicación. Esta ubicación puede cambiarse si se hace clic con
el botón izquierdo del mouse.
 La Ventana propiedades muestra todas las propiedades del control actualmente
seleccionado, en este caso muestra las propiedades del Form1, luego podemos ver que
6
abajo dice "Form1 Form", lo que está en negrita es el nombre del objeto, y lo que le sigue
es el tipo de objeto, en este caso es un Formulario (Form)
 Mencione y Explique las partes del entorno de Visual Basic.
 Mencione y Explique los botones de la barra de herramientas de Visual Basic.
TextBox
Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras
aplicaciones.
No hace falta que indiquemos las coordenadas de la situación del formulario en pantalla,
simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el
tamaño que queramos en nuestro formulario
Label
Este control es también uno de los más utilizados, aunque su utilidad queda restringida a la
visualización de datos en el mismo, no permitiendo la introducción de datos por parte del
usuario.
CommandButton
Este control es el típico botón que aparece en todas las aplicaciones y que al hacer click sobre él
nos permite realizar alguna operación concreta, normalmente Aceptar o Cancelar. Aunque según
el código que le asociemos podremos realizar las operaciones que queramos.
OptionButton
Este control nos permite elegir una opción entre varias de las que se nos plantean. Cada opción
será un control optionbutton diferente.
7
Bloquear los Controles
Cuando estén situados los controles en el formulario se pueden bloquear para que no puedan
moverse de forma accidental.
Para esto deberemos pulsar en la barra de herramientas:
Cuando actives este botón y mientras no desbloquees los controles utilizando la misma opción no
se podrán mover ninguno de los controles del formulario activo.
Sin embargo en si abres otro formulario que no tenga los controles bloqueados si se podrán
mover. Si añades más controles a un formulario bloqueado estos quedan bloqueados
automáticamente
Tiene la siguiente forma:
Un control Frame proporciona un agrupamiento identificable para controles. También puede
utilizar un Frame para subdividir un formulario funcionalmente por ejemplo, para
separar grupos de controles OptionButton.
CHECK BUTTON Y OPTION BUTTON (BOTONES DE ELECCION Y OPCION)
Se obtienen directamente de la caja de herramientas.
8
Dada la similitud de ambos controles, se comentan conjuntamente.
El control CheckBox, o casilla de verificación, permite elegir una opción (activada / desactivada,
True/False) que el usuario puede establecer o anular haciendo click. Una X en una casilla de
verificación indica que está seleccionada, activada, o con valor True. Cada casilla de verificación
es independiente de las demás que puedan existir en el formulario, pudiendo tomar cada una de
ellas el valor True o False, a voluntad del operador.
Un control OptionButton muestra una opción que se puede activar o desactivar, pero con
dependencia del estado de otros controles OptionButton que existan en el formulario.
Generalmente, los controles OptionButton se utilizan en un grupo de opciones para mostrar
opciones de las cuales el usuario sólo puede seleccionar una. Los controles OptionButton se
agrupan dibujándolos dentro de un contenedor como un control Frame, un control PictureBox o
un formulario. Para agrupar controles OptionButton en un Frame o PictureBox, dibuje en primer
lugar el Frame o PictureBox y, a continuación, dibuje dentro los controles OptionButton. Todos
los controles OptionButton que están dentro del mismo contenedor actúan como un solo grupo, e
independientes de los controles OptionButton de otros grupos distintos.
Aunque puede parecer que los controles OptionButton y CheckBox funcionan de forma similar,
hay una diferencia importante: Cuando un usuario selecciona un OptionButton, los otros
controles del mismo grupo OptionButton dejan de estas disponibles automáticamente. Por
contraste, se puede seleccionar cualquier número de controles CheckBox.
9
LIST BOX Y COMBO BOX
Estos dos controles, debido a su similitud, se estudian conjuntamente.
Se obtienen directamente de la caja de herramientas:
Un control ListBox muestra una lista de elementos en la que el usuario puede seleccionar uno o
más. Si el número de elementos supera el número que puede mostrarse, se agregará
automáticamente una barra de desplazamiento al control ListBox.
Un control ComboBox combina las características de un control TextBox y un control ListBox.
Los usuarios pueden introducir información en la parte del cuadro de texto y seleccionar un
elemento en la parte de cuadro de lista del control. En resumen, un ComboBox es la combinación
de un ListBox, que se comporta como si de un ListBox se tratase, y de un TextBox,
con comportamiento análogo a un TextBox sencillo, con la particularidad aquí de que el texto se
le puede introducir por teclado, o elegir uno de los que figuran en la parte ListBox del Combo.
CONTROLES HScrollBar y VScrollBar
Son dos controles similares, para introducir un dato cuasi-analógico en una aplicación. Se toman
directamente de la caja de herramientas, y tienen un aspecto parecido al de un control
de volumen de un equipo de música. El HScrollBar está en posición horizontal, y el VScrollBar
en posición vertical.
10
Mediante estos controles se pueden introducir datos variando la posición del cursor.
TIMER TEMPORIZADOR
Este objeto permite establecer temporizaciones. Presenta una novedad respecto a los controles
estudiados hasta ahora. El control Timer solamente se ve durante el tiempo de diseño. En tiempo
de ejecución, el control permanece invisible.
La temporización producida por el Timer es independiente de la velocidad de trabajo del
ordenador. (Casi independiente. El timer no es un reloj exacto, pero se le parece)
Se toma directamente de la caja de herramientas, y tiene el aspecto siguiente:
SHAPE
Se toma directamente de la caja de herramientas:
11
Shape es un control gráfico que se muestra como un rectángulo, un cuadrado, una elipse, un
círculo, un rectángulo redondeado o un cuadrado redondeado.
Utilice controles Shape en tiempo de diseño en lugar o además de invocar los métodos Circle y
Line en tiempo de ejecución. Puede dibujar un control Shape en un contenedor, pero no puede
actuar como contenedor. (Esto quiere decir que un control Shape nunca le servirá, por ejemplo,
para albergar varios OptionButton y pretender que sean independientes de otros controles
OptionButton que se encuentren fuera del control Shape.
Este control no tiene Procedimientos. En realidad, solamente sirve para mostrar un determinado
gráfico, envolver gráficamente a otros controles, pero no tiene ninguna aplicación en cuanto
a programa. Es un "adorno" para sus aplicaciones.
LINE
Se toma directamente de la caja de herramientas
Line, al igual que Shape, es un control gráfico que solamente sirve para poner una línea en un
formulario. Del mismo modo, no tiene procedimientos, por lo que no sirve para aportar código al
programa. Solo sirve para aportar una característica gráfica, es un adorno.
CONTROL GAUGE
Este control presenta una información numérica de forma gráfica, bien como un display lineal
(típico por ejemplo en ecualizadores de audio), o como una aguja. No está normalmente en la
12
caja de herramientas, por lo que hay que traerla desde los Controles Personalizados (Menú
desplegable de Herramientas) Se denomina MicroHelp Gauge Control. El archivo que lo
contiene se denomina GAUGE16.OCX, 16 bits
Mediante este control, podemos presentar una magnitud numérica de una forma cuasi-analógica.
Podríamos decir que es un control similar al HScrollBar, que en vez de meter información a la
aplicación, la presenta.
Este control puede servir, por ejemplo, para presentar el tanto por ciento de ejecución de una
tarea, como elemento tranquilizante. Puede presentar el nivel de un depósito de agua, etc.
Presenta las dos formas siguientes:
En la figura puede verse un Gauge de aguja, uno de barra horizontal y otro de barra vertical.
Para mejorar la presentación, el Gauge permite poner un gráfico como fondo, cambiar el color de
la barra, color de fondo, etc.
El control Gauge crea medidores definidos por el usuario, que puede elegir entre los estilos
lineales (relleno) o de aguja.
13
Nota para la distribución Cuando cree y distribuya aplicaciones con controles Gauge, tendrá que
instalar el archivo apropiado en el subdirectorio SYSTEM de Windows del cliente. El Kit para
instalación que incluye Visual Basic, le proporciona herramientas para escribir
los programas que instalan las aplicaciones correctamente.
El CommonDialog es un control del que se libran muy pocas aplicaciones. Dada la importancia
de este control, se le dedica un capitulo único en esta Guía del Estudiante.
CUADRO DE DIALOGO CommonDialog
Normalmente se encuentra en la caja de herramientas
Este control no se presenta en tiempo de diseño más que con un simple icono:
El cuadro de diálogo, CommonDialog se utiliza para varias funciones:
 Abrir Ficheros
 Guardar Ficheros
 Elegir colores
 Seleccionar Impresora
 Seleccionar Fuentes
14
 Mostrar el fichero de Ayuda
En realidad el cuadro de diálogo permite conocer datos con los cuales, y mediante el código
adecuado, abriremos o guardaremos ficheros, elegiremos colores o seleccionaremos fuentes. Es
decir, el CommonDialog NO realiza mas funciones que mostrar ficheros existentes, fuentes
disponibles, colores, para que, mediante código, abramos esos ficheros o usemos una
determinada fuente.
Dependiendo de la aplicación para la que vaya a usarse se deberá activar de distintas formas. Si
el cuadro de diálogo se va a usar para seleccionar la impresora y para otras aplicaciones, es
recomendable usar uno exclusivamente para seleccionar la impresora.
Esta última recomendación se debe a que, para el control de la impresora, el CommonDialog SI
realiza las funciones de selección de impresora predeterminada. Esta diferencia operativa hace
que si usamos el mismo CommonDialog para seleccionar impresora y abrir ficheros, por
ejemplo, se "cuelgue" el CommonDialog.
Defina los siguientes términos.
 Eventos: es una acción como hacer clic, doble clic, presionar una tecla, mover el puntero del mouse,
etc. Que el usuario debe realizar para que un objeto ejecute una acción determinada cada control
responde a diferentes eventos, algunos de ellos tienen características comunes. Los eventos pueden
Visualizarse en la ventana de código.
 Métodos: Son procedimientos definidos en Visual Basic para realizar operaciones específicas sobre
los objetos (Controles o Formularios)
 Controles: Son los objetos que conforman la interfaz gráfica de un programa; a través de ellos, un
usuario interactúa con la aplicación. Sus características pueden cambiarse por medio de la ventana
propiedades:
15
 Proyecto
 Propiedades: Son los datos que hacen referencia a un objeto o formulario.
Ejemplo : Color de fondo del formulario, Fuente de texto de un TextBox.
 Objetos: Un objeto es una entidad que tiene asociado un conjunto de métodos,
eventos y propiedades. Hay muchas clases de objetos, y por tanto, puede llegar a
haber tantos métodos, eventos y propiedades distintas como objetos diferentes.
Ejemplo : Una caja de texto (TextBox) en la cual podemos escribir cualquier línea
es un objeto.
 Clases: Una clase no es nada más que un Objeto, este objeto, tiene propiedades,
funciones y métodos. Para empezar ahora la creación de propiedades si se utiliza Property
Let y Property Get; la diferencia es casi nada, inclusive podría decir que una clase en
visual basic, es casi lo mismo que un control, pero ahora nace una nueva pregunta,
cuando utilizar un control y cuando utilizar una clase, bueno la opinión que voy a dar es
desde mi perspectiva.
 Módulo: Un proyecto Visual Basic no sólo está compuesto de Formularios, sino también
de lo que se denominan módulos.
Un módulo es un fichero Visual Basic donde escribimos parte del código de nuestro
programa, y digo parte, porque puede haber código en el formulario también.
De los fundamentos de programaciónexplique:
 Módulos de Control:
 Módulos de Formularios:
 Módulos de Clases
 Módulos Estándar
16
 Editor de Códigos:
 Variable: Dim: Al declarar una variable con esta palabra estamos diciendo que
la variable sea local al ámbito en que se declara. Puede ser dentro de
un procedimiento o dentro de un formulario, de esta forma no sería accesible
desde los demás procedimientos o formularios.
 Public: Las variables declaradas serán públicas y podrán estar accesibles desde todos los
formularios de la aplicación. Para conseguirlo tendremos que declararlas en un módulo
de código, no en la sección declarations de cualquier formulario de los que conste la
aplicación. Para crear un módulo de código en el menú principal de Visual Basic
marcamos en INSERT/MODULE y aparecerá junto a los demás formularios de la
ventana de proyecto, aunque con un icono distinto indicando que se trata de un módulo
de código.
 Static: Con esta forma de declarar variables conseguiremos que las variables locales no se
creen y se destruyan al entrar y salir de los procedimientos donde fueron declaradas, sino
que se mantenga su valor durante todo el periodo de ejecución de la aplicación. De esta
forma a entrar en algún procedimiento las variables recuerdan el valor que tenían cuando
se salió de él.
17
TIPOS DE VARIABLES
Tabla 1
Tabla de los tipos de variables que existen o permite Visual Basic.
TIPO COMENTARIO
BOOLEAN Sólo admite 2 valores TRUE o FALSE
BYTE admite valores entre 0 y 255
INTEGER admite valores entre -32768 y 32767
LONG
admite valores entre -2.147.483.648 y
2.147.483.647
SINGLE admite valores decimales con precisión simple
DOUBLE admite valores decimales de doble precisión
CURRENCY válido para valores de tipo moneda
STRING cadenas de caracteres
DATE fechas, permite operar con ellas
Datos obtenidos de unas página web
 Constante: Declaración de constantes que pueden ser usadas en cualquier punto en
lugar de su valor, permitiendo cambiarlo cuando sea necesario, sin tener que
cambiarlo en todos los sitios en que se utiliza. La expresión no puede utilizar llamadas
a funciones, pues la constante se calcula en tiempo de compilación, no en tiempo de
ejecución.
18
Lenguaje De Programación Java
El Java es un lenguaje de programación orientado a objetos creado por James Gosling en el año
1990. Su código es muy similar al del lenguaje C y C++ con un modelo de objetos mucho más
sencillo. La diferencia entre el Java y los lenguajes C y C++ es que el Java es un lenguaje de
programación plenamente orientado a objetos.
Es muy fácil de aprender, en Java es relativamente sencillo programar desde el principio. Todos
los programadores que ya hayan programado anteriormente con el C o el C++, les costara mucho
menos su aprendizaje por la gran similitud entre ellos.
El Java supuso un gran avance en los lenguajes de programación, tiene una enorme potencia para
el diseño orientado a objetos con un código sencillo en un entorno muy estable y agradable. El
Java nos permite realizar aplicaciones que podemos incluir directamente en páginas web.
Estas aplicaciones se conocen con el nombre de applets. Estos son unos programas que se
transfieren dinámicamente a través de Internet. Los applets tienen un comportamiento
inteligente, pueden reaccionar cuando un visitante entra en una página web y cambian de forma.
Todo esto ha posibilitado que el Java sea un lenguaje interactivo entre el usuario y la aplicación.
La mayoría de los lenguajes de programación están compilados en código fuente, mientras que el
Java es compilado en un bytecode (código binario que contiene un programa ejecutable) que es
ejecutado por una máquina virtual de Java. Esta máquina es la encargada de ejecutar todo el
código de un programa hecho con Java.
Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos que
fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera
posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una
vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run
anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser
recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación
más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10
millones de usuarios reportados.
El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun
Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un
componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva en gran
medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las
aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse
en cualquier máquina virtual Java (JVM) sin importar la arquitectura de la computadora
subyacente.
La compañía Sun desarrolló la implementación de referencia original para los compiladores de
Java, máquinas virtuales, y librerías de clases en 1991 y las publicó por primera vez en 1995. A
partir de mayo de 2007, en cumplimiento con las especificaciones del Proceso de la Comunidad
Java, Sun volvió a licenciar la mayoría de sus tecnologías de Java bajo la Licencia Pública General
19
de GNU. Otros también han desarrollado implementaciones alternas a estas tecnologías de Sun,
tales como el Compilador de Java de GNU y el GNU Classpath.
Historia
Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box
en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El
equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante
18 meses en Sand Hill Road en Menlo Park en su desarrollo.
El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling),
luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada
para adaptadores de tarjetas gráficas y finalmente se renombró a Java.
Fue inventada por Marcos, el supervisor. Es frecuentada por algunos de los miembros del equipo.
Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de
las iniciales de sus diseñadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros
abogan por el siguiente acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo
más"). La hipótesis que más fuerza tiene es la de que Java debe su nombre a un tipo de café
disponible en la cafetería cercana, de ahí que el icono de java sea una taza de café caliente. Un
pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes (el número mágico) de los
archivos.class que genera el compilador, son en hexadecimal, 0xCAFEBABE. A pesar de todas
estas teorías, el nombre fue sacado al parecer de una lista aleatoria de palabras.
Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura
y sintaxis similar a C++. Entre junio y julio de 1994, tras una sesión maratoniana de tres días entre
John Gaga, James Gosling, Patrick Naughton, Wayne Rosing y Eric Schmidt, el equipo reorientó
la plataforma hacia la Web. Sintieron que la llegada del navegador web Mosaic, propiciaría que
Internet se convirtiese en un medio interactivo, como el que pensaban era la televisión por cable.
Naughton creó entonces un prototipo de navegador, WebRunner, que más tarde sería conocido
como HotJava.
En 1994, se les hizo una demostración de HotJava y la plataforma Java a los ejecutivos de Sun.
Java 1.0a pudo descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995,
durante las conferencias de SunWorld, a que vieran la luz pública Java y HotJava, el navegador
Web. El acontecimiento fue anunciado por John Gage, el Director Científico de Sun Microsystems.
El acto estuvo acompañado por una pequeña sorpresa adicional, el anuncio por parte de Marc
Andreessen, Vicepresidente Ejecutivo de Netscape, de que Java sería soportado en sus
navegadores. El 9 de enero del año siguiente, 1996, Sun fundó el grupo empresarial JavaSoft para
que se encargase del desarrollo tecnológico. Dos semanas más tarde la primera versión de Java fue
publicada.
La promesa inicial de Gosling era Write Once, Run Anywhere (Escríbelo una vez, ejecútalo en
cualquier lugar), proporcionando un lenguaje independiente de la plataforma y un entorno de
ejecución (la JVM) ligero y gratuito para las plataformas más populares de forma que los binarios
(bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma.
El entorno de ejecución era relativamente seguro y los principales navegadores web pronto
incorporaron la posibilidad de ejecutar applets Java incrustadas en las páginas web.
20
Java ha experimentado numerosos cambios desde la versión primigenia, JDK 1.0, así como un
enorme incremento en el número de clases y paquetes que componen la biblioteca estándar.
Filosofía
El lenguaje Java se creó con cinco objetivos principales:
1. Debería usar el paradigma de la programación orientada a objetos.
2. Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos.
3. Debería incluir por defecto soporte para trabajo en red.
4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como
C++.
Para conseguir la ejecución de código remoto y el soporte de red, los programadores de Java a
veces recurren a extensiones como CORBA (Common Object Request Broker
Architecture), Internet Communications Engine o OSGi respectivamente.
Orientado A Objetos
La primera característica, orientado a objetos (“OO”), se refiere a un método de programación y
al diseño del lenguaje. Aunque hay muchas interpretaciones para OO, una primera idea es diseñar
el software de forma que los distintos tipos de datos que usen estén unidos a sus operaciones. Así,
los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos. Un objeto
puede verse como un paquete que contiene el “comportamiento” (el código) y el “estado” (datos).
El principio es separar aquello que cambia de las cosas que permanecen inalterables.
Frecuentemente, cambiar una estructura de datos implica un cambio en el código que opera sobre
los mismos, o viceversa. Esta separación en objetos coherentes e independientes ofrece una base
más estable para el diseño de un sistema software. El objetivo es hacer que grandes proyectos sean
fáciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el número
de proyectos fallidos. Otra de las grandes promesas de la programación orientada a objetos es la
creación de entidades más genéricas (objetos) que permitan la reutilización del software entre
proyectos, una de las premisas fundamentales de la Ingeniería del Software. Un objeto genérico
“cliente”, por ejemplo, debería en teoría tener el mismo conjunto de comportamiento en diferentes
proyectos, sobre todo cuando estos coinciden en cierta medida, algo que suele suceder en las
grandes organizaciones. En este sentido, los objetos podrían verse como piezas reutilizables que
pueden emplearse en múltiples proyectos distintos, posibilitando así a la industria del software a
construir proyectos de envergadura empleando componentes ya existentes y de comprobada
calidad; conduciendo esto finalmente a una reducción drástica del tiempo de desarrollo. Podemos
usar como ejemplo de objeto el aluminio. Una vez definidos datos (peso, maleabilidad, etc.), y su
“comportamiento” (soldar dos piezas, etc.), el objeto “aluminio” puede ser reutilizado en el campo
de la construcción, del automóvil, de la aviación, etc.
La reutilización del software ha experimentado resultados dispares, encontrando dos dificultades
principales: el diseño de objetos realmente genéricos es pobremente comprendido, y falta una
metodología para la amplia comunicación de oportunidades de reutilización. Algunas
comunidades de “código abierto” (open source) quieren ayudar en este problema dando medios a
21
los desarrolladores para diseminar la información sobre el uso y versatilidad de objetos
reutilizables y bibliotecas de objetos.
Independencia De La Plataforma
La segunda característica, la independencia de la plataforma, significa que programas escritos en
el lenguaje Java pueden ejecutarse igualmente en cualquier tipo de hardware. Este es el significado
de ser capaz de escribir un programa una vez y que pueda ejecutarse en cualquier dispositivo, tal
como reza el axioma de Java, "write once, run anywhere".
Para ello, se compila el código fuente escrito en lenguaje Java, para generar un código conocido
como “bytecode” (específicamente Java bytecode)—instrucciones máquina simplificadas
específicas de la plataforma Java. Esta pieza está “a medio camino” entre el código fuente y el
código máquina que entiende el dispositivo destino. El bytecode es ejecutado entonces en la
máquina virtual (JVM), un programa escrito en código nativo de la plataforma destino (que es el
que entiende su hardware), que interpreta y ejecuta el código. Además, se suministran bibliotecas
adicionales para acceder a las características de cada dispositivo (como los gráficos, ejecución
mediante hebras o threads, la interfaz de red) de forma unificada. Se debe tener presente que,
aunque hay una etapa explícita de compilación, el bytecode generado es interpretado o convertido
a instrucciones máquina del código nativo por el compilador JIT (Just In Time).
Hay implementaciones del compilador de Java que convierten el código fuente directamente en
código objeto nativo, como GCJ. Esto elimina la etapa intermedia donde se genera el bytecode,
pero la salida de este tipo de compiladores sólo puede ejecutarse en un tipo de arquitectura.
La licencia sobre Java de Sun insiste que todas las implementaciones sean “compatibles”. Esto dio
lugar a una disputa legal entre Microsoft y Sun, cuando éste último alegó que la implementación
de Microsoft no daba soporte a las interfaces RMI y JNI además de haber añadido características
‘’dependientes’’ de su plataforma. Sun demandó a Microsoft y ganó por daños y perjuicios (unos
20 millones de dólares) así como una orden judicial forzando la acatación de la licencia de Sun.
Como respuesta, Microsoft no ofrece Java con su versión de sistema operativo, y en recientes
versiones de Windows, su navegador Internet Explorer no admite la ejecución de applets sin un
conector (o plugin) aparte. Sin embargo, Sun y otras fuentes ofrecen versiones gratuitas para
distintas versiones de Windows.
Las primeras implementaciones del lenguaje usaban una máquina virtual interpretada para
conseguir la portabilidad. Sin embargo, el resultado eran programas que se ejecutaban
comparativamente más lentos que aquellos escritos en C o C++. Esto hizo que Java se ganase una
reputación de lento en rendimiento. Las implementaciones recientes de la JVM dan lugar a
programas que se ejecutan considerablemente más rápido que las versiones antiguas, empleando
diversas técnicas, aunque sigue siendo mucho más lento que otros lenguajes.
La primera de estas técnicas es simplemente compilar directamente en código nativo como hacen
los compiladores tradicionales, eliminando la etapa del bytecode. Esto da lugar a un gran
rendimiento en la ejecución, pero tapa el camino a la portabilidad. Otra técnica, conocida como
compilación JIT (Just In Time, o "compilación al vuelo"), convierte el bytecode a código nativo
cuando se ejecuta la aplicación. Otras máquinas virtuales más sofisticadas usan una
"recompilación dinámica" en la que la VM es capaz de analizar el comportamiento del programa
en ejecución y recompila y optimiza las partes críticas. La recompilación dinámica puede lograr
22
mayor grado de optimización que la compilación tradicional (o estática), ya que puede basar su
trabajo en el conocimiento que de primera mano tiene sobre el entorno de ejecución y el conjunto
de clases cargadas en memoria. La compilación JIT y la recompilación dinámica permiten a los
programas Java aprovechar la velocidad de ejecución del código nativo sin por ello perder la
ventaja de la portabilidad en ambos.
La portabilidad es técnicamente difícil de lograr, y el éxito de Java en ese campo ha sido dispar.
Aunque es de hecho posible escribir programas para la plataforma Java que actúen de forma
correcta en múltiples plataformas de distinta arquitectura, el gran número de estas con pequeños
errores o inconsistencias llevan a que a veces se parodie el eslogan de Sun, "Write once, run
anywhere" como "Write once, debug everywhere" (o “Escríbelo una vez, ejecútalo en cualquier
parte” por “Escríbelo una vez, depúralo en todas partes”).
El concepto de independencia de la plataforma de Java cuenta, sin embargo, con un gran éxito en
las aplicaciones en el entorno del servidor, como los Servicios Web, los Servlets, los Java Beans,
así como en sistemas empotrados basados en OSGi, usando entornos Java empotrados.
El Recolector De Basura
En Java el problema fugas de memoria se evita en gran medida gracias a la recolección de
basura (o automatic garbage collector). El programador determina cuándo se crean los objetos y
el entorno en tiempo de ejecución de Java (Java runtime) es el responsable de gestionar el ciclo de
vida de los objetos. El programa, u otros objetos pueden tener localizado un objeto mediante una
referencia a éste. Cuando no quedan referencias a un objeto, el recolector de basura de Java borra
el objeto, liberando así la memoria que ocupaba previniendo posibles fugas (ejemplo: un objeto
creado y únicamente usado dentro de un método sólo tiene entidad dentro de éste; al salir del
método el objeto es eliminado). Aun así, es posible que se produzcan fugas de memoria si el código
almacena referencias a objetos que ya no son necesarios—es decir, pueden aún ocurrir, pero en un
nivel conceptual superior. En definitiva, el recolector de basura de Java permite una fácil creación
y eliminación de objetos y mayor seguridad.
Visión general de la plataforma Java
La tecnología Java se usa para desarrollar aplicaciones para un amplio alcance de entornos,
desde dispositivos del consumidor hasta sistemas empresariales heterogéneos. En esta sección,
obtenga una vista de alto nivel de la plataforma Java y sus componentes. Vea Recursos para
aprender más acerca de los componentes de la plataforma Java discutidos en esta sección.
Conozca Las API De Java
La mayoría de los desarrolladores Java hacen referencia constantemente a la documentación API
de Java online oficial, — también llamada el Javadoc (vea Recursos). De forma predeterminada,
usted ve tres marcos en el Javadoc. El marco superior izquierdo muestra todos los paquetes en la
API y debajo están las clases en cada paquete. El marco principal (a la derecha) muestra detalles
del paquete o de la clase seleccionada actualmente. Por ejemplo, si selecciona el
paquete java.util en el marco superior izquierdo y luego selecciona la clase ArrayListque aparece
debajo de él, en el marco derecho, verá detalles acerca del ArrayList, que incluyen una
descripción de lo que hace, cómo usarlo y sus métodos.
23
Como cualquier lenguaje de programación, el lenguaje Java tiene su propia estructura, reglas de
sintaxis y paradigma de programación. El paradigma de programación del lenguaje Java se basa
en el concepto de programación orientada a objetos (OOP), que las funciones del lenguaje
soportan.
El lenguaje Java es un derivado del lenguaje C, por lo que sus reglas de sintaxis se parecen
mucho a C: por ejemplo, los bloques de códigos se modularizan en métodos y se delimitan con
llaves ({ y }) y las variables se declaran antes de que se usen.
Estructuralmente, el lenguaje Java comienza con paquetes. Un paquete es el mecanismo de
espacio de nombres del lenguaje Java. Dentro de los paquetes se encuentran las clases y dentro
de las clases se encuentran métodos, variables, constantes, entre otros. En este tutorial, aprenderá
acerca de las partes del lenguaje Java.
Conceptos de programación orientada a objetos
El lenguaje Java está (en su mayor parte) orientado a objetos. Si no ha utilizado un lenguaje
orientado a objetos antes, sus conceptos pueden parecer extraños al principio. Esta sección es una
breve introducción a los conceptos del lenguaje OOP, que utiliza programación estructurada
como punto de contraste.
¿Qué es un objeto?
Los lenguajes de programación estructurada como C y COBOL siguen un paradigma de
programación muy diferente de los orientados a objetos. El paradigma de programación
estructurada está altamente orientado a datos, lo cual significa que usted tiene estructuras de
datos por una parte y luego instrucciones del programa que actúan sobre esos datos. Los
lenguajes orientados a objetos, como el lenguaje Java, combinan datos e instrucciones del
programa en objetos.
Un objeto es una entidad independiente que contiene atributos y comportamientos y nada más.
En lugar de tener una estructura de datos con campos (atributos) y pasar esa estructura a toda la
lógica del programa que actúa sobre ella (comportamiento), en un lenguaje orientado a objetos,
se combinan los datos y la lógica del programa. Esta combinación puede ocurrir en niveles
completamente diferentes de granularidad, desde objetos específicos como un Number hasta
objetos de aplicación general como un servicio de FundsTransfer en una gran aplicación
bancaria.
Objetos padre e hijo
Un objeto padre es aquel que sirve como la base estructural para derivar objetos hijos más
complejos. Un objeto hijo se parece a su padre pero es más especializado. El paradigma
orientado a objetos le permite reutilizar los atributos y comportamientos comunes del objeto
padre y le agrega a sus objetos hijos atributos y comportamientos que difieren. (Usted aprenderá
más sobre herencia en la siguiente sección de este tutorial).
24
Comunicación y coordinación de objetos
Los objetos se comunican con otros objetos por medio del envío de mensajes (llamadas de
método en el lenguaje Java). Además, en una aplicación orientada a objetos, el código del
programa coordina las actividades entre objetos para realizar tareas dentro del contexto del
dominio de aplicación dado. (En el paradigma Modelo-Vista-Controlador, este código de
programa de coordinación es el Controlador. Vea Recursos para aprender más acerca de MVC).
Resumen del objeto
Un objeto bien escrito:
 tiene límites nítidos.
 realiza un conjunto limitado de actividades.
 conoce solo lo relacionado a sus datos y cualquier otro objeto que necesite para cumplir sus
actividades.
Básicamente, un objeto es una entidad diferenciada que tiene solo las dependencias necesarias de
otros objetos para realizar sus tareas.
Ahora verá cómo luce un objeto.
El objeto Person
Comenzaré con un ejemplo que está basado en escenario común de desarrollo de aplicación: se
representa a un individuo con un objeto Person.
Volviendo a la definición de un objeto, usted sabe que un objeto tiene dos elementos primarios:
atributos y comportamiento. Verá cómo estos se aplican al objeto Person.
Atributos
¿Qué atributos puede tener una persona? Algunos atributos comunes incluyen:
 Nombre
 Edad
 Altura
 Peso
 Color de ojos
 Género
Probablemente a usted se le pueden ocurrir más (y siempre puede agregar más atributos más
tarde) pero esta lista es un buen comienzo.
Comportamiento
Una persona real puede hacer todo tipo de actividades pero los comportamientos de los objetos
normalmente se relacionan con algún tipo de contexto de aplicación. En un contexto de
aplicación de negocio, por ejemplo, puede querer preguntarle a su objeto Person: "¿Qué edad
tiene?" Como respuesta, Person le diría el valor de su atributo de Edad.
25
Una lógica más compleja podría estar oculta dentro del objeto Person pero por ahora suponga
que esa Person tiene el comportamiento de responder estas preguntas:
 ¿Cuál es su nombre?
 ¿Qué edad tiene?
 ¿Cuál es su altura?
 ¿Cuánto pesa?
 ¿Cuál es su color de ojos?
 ¿Cuál es su género?
Estado y cadena
El Estado es un concepto importante en OOP. El estado de un objeto se representa en cualquier
momento por medio del valor de sus atributos.
En el caso de Person, su estado se define por sus atributos, tales como nombre, edad, altura y
peso. Si usted quisiera presentar una lista de varios de esos atributos, podría hacerlo utilizando
una clase de String, sobre la cual hablaré más en el tutorial posteriormente.
Juntos, los conceptos de estado y cadena le permiten decirle a Person: cuénteme quién es usted
dándome un listado (o una String) de sus atributos.
¿Qué es un IDE?
Un IDE (entorno de desarrollo integrado) es un programa que incluye diferentes herramientas
para escribir código y probar el software, generalmente, de un lenguaje específico.
Estos IDE’s facilitan la tarea de programar gracias a que incluyen un editor de código, un
compilador o intérprete y un depurador, a los que se acceden mediante una interfaz gráfica de
usuario.
Mejores IDE para programar en Java
De entre todos los IDE para Java, destacan especialmente dos: Eclipse y Netbeans, siendo los
más populares y utilizados por los desarrolladores.
Pero estos no son los únicos, aquí veremos una lista de los mejores entornos para
JAVA, disponibles para Linux, macOS, Windows e incluso versiones en línea.
Eclipse
26
Empezamos la lista con el que es quizás el IDE de Java más popular, aunque, para algunos, esto
no precisamente lo haga ser el mejor.
Desarrollado originalmente por IBM, Eclipse es un entorno multiplataforma de código
abierto que actualiza su versión cada año.
Con Eclipse podrá desarrollar aplicaciones de escritorio, web y apps móviles. Además, gracias a
su amplia variedad de plugins, no solo soporta Java, sino también lenguajes como C, C++, JSP,
Perl y PHP.
Ventajas:
 Depuración de código, con una perspectiva específica y vista de errores.
 Excelente gestión de proyectos.
 Soporte para plugins.
 Opciones de personalización.
 Permite la integración de soluciones de terceros.
 Ofrece herramientas para repositorios y servidores.
Desventajas:
 Mayor consumo de recursos.
 Con una gran comunidad detrás, Eclipse está disponible para Windows, Linux y Mac.
 Por otro lado, si lo que estás buscando es un IDE Java online, puedes optar por su versión
en la nube: Eclipse Che, que permite desarrollar aplicaciones desde un navegador web.
Aunque, eso sí, el tiempo de ejecución de este IDE en línea es más lento que su versión
de escritorio.
27
Netbeans
Netbeans es un IDE gratuito y de código abierto inicialmente desarrollado por Sun Mycrosystem
y ahora propiedad de Oracle.
Una de las ventajas de usar este entorno es la facilidad con la que se pueden crear aplicaciones
con interfaz gráfica gracias a la función Drap and Drop.
Por esta razón, es muy utilizado por quiénes recién se inician en la programación. Sin embargo,
la facilidad con la que se pueden crear interfaces gráficas, pueden hacer que el usuario se vuelva
dependiente de los botones de arrastrar y soltar.
Por otro lado, con Netbeans puedes desarrollar todo tipo de aplicaciones Java Web, J2SE, EJB y
aplicaciones móviles. Además, soporta otros lenguajes de programación como C/C++, XML,
HTML, PHP, Groovy, Javadoc, JavaScript y JSP.
Ventajas:
 Eficiente gestión de Proyectos.
 Reutilización de Modulos.
 Identifica y soluciona problemas de código comunes.
 Librería visual de Netbeans.
 Herramientas de desarrollo integrado.
28
Desventajas:
 Genera código basura al usar los botones de arrastrar y soltar.
 Las librerías y complementos hacen que sea “muy pesado”.
IntelliJ IDEA
Desarrollado por JetBrains, IntelliJ IDEA incluye una versión gratuita (Community) y otra de
pago (Ultimate) con algunas funciones adicionales.
La versión Community ofrece soporte para Java, Groovy, Kotlin, XML, JSON, YAML; mientras
que la versión Ultimate soporta estos y otros lenguajes como JavaScrip, TypeScript, SQL, XSL,
XPath.
Además, algunos otros lenguajes como Ruby, Phyton o PHP también son soportados por medio
de plugins.
Para un programador Java, la versión Community puede ser suficiente; aunque si lo que quieres
es desarrollar proyectos profesionales o para empresas de gran tamaño, deberás optar por la
versión de pago: Ultimate.
29
Ventajas:
 Herramientas integradas para desarrolladores.
 Soporte de frameworks.
 Atajos de teclado.
 Enfocado a proyectos complejos.
 Soporte técnico (solo para la versión de pago).
Desventajas:
 Pagos de suscripción mensual/anual para la versión Ultimate.
Codenvy
Codenvy es un IDE Java en línea de código abierto que permite a los desarrolladores modificar,
ejecutar y depurar código en la nube sin necesidad de instalar ningún software.
Gracias a que está basado en Eclipse Che, este entorno de desarrollo integrado agrega
multitenencia, controles de seguridad y automatización. Además, facilita la depuración y prueba
de código Java gracias al entorno de tiempo de ejecución personalizado.
Al igual que IntelliJ IDEA, Codenvy cuenta con versiones gratuitas y de pago. Así tenemos que
las ediciones Developer y Team son gratuitas, pero con algunas limitaciones; mientras que la
versión Enterprise es enteramente de pago.
30
Ventajas:
 Entorno de ejecución personalizado para probar y depurar código.
 Acceso SSH para ejecutar el contenedor en cada imagen.
 Entornos preconstruidos para acelerar el desarrollo.
 Posibilidad de compartir el progreso del trabajo con un cliente.
 Funciones de finalización de código, refactorización y resaltado de sintaxis.
Desventajas:
 No cuenta con aplicación de escritorio

IBM Rational Application Developer(RAD)
Rational Application Developer, también conocido como RAD, es un popular IDE comercial
basado en Eclipse.
RAD proporciona herramientas para analizar, desarrollar, diseñar visualmente y desplegar
aplicaciones desarrolladas en Java.
No solo eso, también se puede utilizar para implementar y administrar servicios web,
aplicaciones web que utilizan JavaScript y XML y activos de arquitectura de componentes de
servicio.
31
Ventajas:
 Integración con el servidor de aplicaciones de IBM Websphere.
 Herramientas para desarrollar, implementar y probar aplicaciones en WebSphere
Application Server.
 Altamente personalizable.
 Extensa documentación.
 Facilidad de uso y tiempo de despliegue.
Desventajas:
 Alto costo de la licencia.
 Consumo de recursos elevado.
JCreator
JCreator es un IDE Java comercial propiedad de Xinox Software. Ofrece dos ediciones de
pago: JCreator Lite, con funciones más que suficientes para un programador Java; y JCreator
Pro, con algunas funciones extra como CVS y el Depurador JDK.
A diferencia de otras aplicaciones para programar en Java, JCreator está escrito en C++, lo cual
hace que sea más rápido.
Una de sus principales características, es que cuando necesites compilar una aplicación, no es
necesario seleccionar el documento principal de tu proyecto, JCreator lo detecta
automáticamente.
32
Ventajas:
 Gestión de proyectos.
 Plantillas de proyecto.
 Interfaz de depuración independiente.
 Interfaz de usuario totalmente personalizable.
Desventajas:
 No ofrece versiones gratuitas.
 No es apto para desarrollar sistemas complejos de gran tamaño.
jGRASP
jGRASP, siglas de “Representaciones gráficas de algoritmos, estructuras y procesos”,es
la aplicación más ligera para programar en Java.
A pesar de estar implementado en Java, jGrasp produce diagramas de estructura de control
(CSD) para varios lenguajes de programación como C, C++, Python, Objective-C y Ada.
Además, incluye funciones para hacer que las aplicaciones de software sean integrales al generar
la visualización del software automáticamente.
Gracias a este IDE, los desarrolladores pueden generar diagramas de estructura de control y
diagramas de clase UML.
33
Ventajas:
 Entorno de desarrollo ligero.
 Extremadamente fácil de usar.
 Gestión de Proyectos para C, C ++, Objective-C, y Ada.
Desventajas:
 Funcionalidades muy básicas.

Visual basic y java

  • 1.
    CEMNG INMACULADA CONCEPCION “Investigaciónsobre los lenguajes de programación Visual Studios y Java” Maestro: Gerson Rodas Alumna: Karelia Antúnez Grado y Sección: II de BTP Informática Fecha de entrega: Viernes 16 de Agosto del 2019
  • 2.
    “ Contenido Visual Basic ....................................................................................................................................1 En Esta Sección........................................................................................................................... 1 Secciones relacionadas............................................................................................................ 2 Lenguaje De Programación Java................................................................................................... 18 Historia...................................................................................................................................... 19 Filosofía .................................................................................................................................... 20 Orientado A Objetos ................................................................................................................. 20 Independencia De La Plataforma .............................................................................................. 21 El Recolector De Basura........................................................................................................... 22 Visión general de la plataforma Java ........................................................................................ 22 Conozca Las API De Java......................................................................................................... 22 Conceptos de programación orientada a objetos................................................................... 23 ¿Qué es un objeto? ................................................................................................................ 23 Comunicación y coordinación de objetos ............................................................................. 24 ¿Qué es un IDE? ................................................................................................................... 25 Mejores IDE para programar en Java ................................................................................... 25
  • 4.
    1 Visual Basic Visual Basicestá diseñado para crear de manera productiva aplicaciones seguras para los tipos y orientadas a objetos. Visual Basic permite a los desarrolladores apuntar a Windows, Web y dispositivos móviles. Al igual que con todos los idiomas destinados a Microsoft .NET Framework, los programas escritos en Visual Basic se benefician de la seguridad y la interoperabilidad del lenguaje. Esta generación de Visual Basic continúa la tradición de brindarle una forma rápida y fácil de crear aplicaciones basadas en .NET Framework. Si aún no tiene Visual Basic, puede descargar una versión gratuita de Visual Studio que incluye Visual Basic desde el sitio de Visual Studio . En Esta Sección  Primeros pasos Le ayuda a comenzar a trabajar enumerando las novedades y lo que está disponible en varias ediciones del producto.  Conceptos de programación Presenta los conceptos de lenguaje que son más útiles para los programadores de Visual Basic.  Estructura del programa y convenciones de código Contiene documentación sobre la estructura básica y las convenciones de código de
  • 5.
    2 Visual Basic, comolas convenciones de nomenclatura, los comentarios en código y las limitaciones dentro de Visual Basic.  Características del lenguaje Visual Basic Proporciona enlaces a temas que presentan y discuten características importantes de Visual Basic, incluidos los literales LINQ y XML.  Referencia de Visual Basic Contiene el lenguaje Visual Basic y la información del compilador.  Desarrollo de aplicaciones con Visual Basic Analiza varios aspectos del desarrollo en Visual Basic, como la seguridad, el manejo de excepciones y el uso de la biblioteca de clases de .NET Framework.  Interoperabilidad COM Explica los problemas de interoperabilidad asociados con la creación y el uso de objetos del modelo de objetos componentes (COM) con Visual Basic.  Muestras Contiene información sobre muestras.  Tutoriales Proporciona enlaces a instrucciones paso a paso para escenarios comunes. Secciones relacionadas Comenzar a desarrollar con Visual Studio Proporciona enlaces a temas que lo ayudan a conocer los conceptos básicos de Visual Studio. .NET API Browser Proporciona entrada a la biblioteca de clases, interfaces y tipos de valores que se incluyen en Microsoft .NET Framework SDK.
  • 6.
    3 Introducción. Visual Basic esuno de los tantos lenguajes de programación que podemos encontrar hoy en día. Dicho lenguaje nace del BASIC (Beginner´s All-purpose Symbolic Instruction Code) que fue creado en su versión original en el Dartmouth College, con el propósito de servir a aquellas personas que estaban interesadas en iniciarse en algún lenguaje de programación. Luego de sufrir varias modificaciones, en el año 1978 se estableció el BASIC estándar. La sencillez del lenguaje ganó el desprecio de los programadores avanzados por considerarlo "un lenguaje para principiantes". Primero fue GW-BASIC, luego se transformó en QuickBASIC y actualmente se lo conoce como Visual Basic y la versión más reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft. Esta versión combina la sencillez del BASIC con un poderoso lenguaje de programación Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows. Esta fusión de sencillez y la estética permitió ampliar mucho más el monopolio de Microsoft, ya que el lenguaje sólo es compatible con Windows, un sistema operativo de la misma empresa. Visual Basic ya no es más "un lenguaje para principiantes" sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows. En este informe explicaremos algunos términos y/o características de mismo con la finalidad de aprender mas sobre este Programa y manejarlo con facilidad De los fundamentos de programación explique:
  • 7.
    4 Es un lenguajede programación que se ha diseñado para facilitar el desarrollo de aplicaciones en un entorno grafico (GUI-GRAPHICAL USER INTERFACE) Como Windows 98, Windows NT o superior. ¿Qué es Visual Basic? Diseñador de entorno de datos: Es posible generar, de manera automática, conectividad entre controles y datos mediante la acción de arrastrar y colocar sobre formularios o informes. Los Objetos Actives son una nueva tecnología de acceso a datos mediante la acción de arrastrar y colocar sobre formularios o informes. Asistente para formularios: Sirve para generar de manera automática formularios que administran registros de tablas o consultas pertenecientes a una base de datos, hoja de calculo u objeto (ADO-ACTIVE DATA OBJECT) Asistente para barras de herramientas es factible incluir barras de herramientas es factible incluir barra de herramientas personalizada, donde el usuario selecciona los botones que desea visualizar durante la ejecución. En las aplicaciones HTML: Se combinan instrucciones de Visual Basic con código HTML para controlar los eventos que se realizan con frecuencia en una pagina web. La Ventana de Vista de datos proporciona acceso a la estructura de una base de datos. Desde esta también acceso al Diseñador de Consultas y diseñador de Base de datos para administrar y registros.
  • 8.
    5 Características de VisualBasic.  Barra de titulo: muestra el nombre del proyecto y del formulario q se está diseñando actualmente  Barra de menús: agrupa los menús despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 6.0.  Barra de herramientas estándar: contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto. Simplifica la elección de opciones de los menús Archivo, Edición, Ver y Ejecutar; además, en el área derecha presenta la ubicación (coordenadas) y el tamaño del objeto seleccionado  Ventana de formulario: es el área donde se diseña la interfaz gráfica, es decir, es donde se inserta electo gráficos, como botones, imágenes, casilla de verificación, cuadros de listas, etc.  Cuadro de herramientas: presenta todos los controles necesarios para diseñar una aplicación, como cuadros de texto, etiquetas, cuadros de listas, botones de comandos, etc. Ventana de proyecto: muestra los elementos involucrados en el proyecto, como formularios, módulos, controles oxc, etc. Cada elemento puede seleccionarse en forma independiente para su edición.  Ventana de posición del formulario: muestra la ubicación que tendrá el formulario en la pantalla, cuando ejecute la aplicación. Esta ubicación puede cambiarse si se hace clic con el botón izquierdo del mouse.  La Ventana propiedades muestra todas las propiedades del control actualmente seleccionado, en este caso muestra las propiedades del Form1, luego podemos ver que
  • 9.
    6 abajo dice "Form1Form", lo que está en negrita es el nombre del objeto, y lo que le sigue es el tipo de objeto, en este caso es un Formulario (Form)  Mencione y Explique las partes del entorno de Visual Basic.  Mencione y Explique los botones de la barra de herramientas de Visual Basic. TextBox Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones. No hace falta que indiquemos las coordenadas de la situación del formulario en pantalla, simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el tamaño que queramos en nuestro formulario Label Este control es también uno de los más utilizados, aunque su utilidad queda restringida a la visualización de datos en el mismo, no permitiendo la introducción de datos por parte del usuario. CommandButton Este control es el típico botón que aparece en todas las aplicaciones y que al hacer click sobre él nos permite realizar alguna operación concreta, normalmente Aceptar o Cancelar. Aunque según el código que le asociemos podremos realizar las operaciones que queramos. OptionButton Este control nos permite elegir una opción entre varias de las que se nos plantean. Cada opción será un control optionbutton diferente.
  • 10.
    7 Bloquear los Controles Cuandoestén situados los controles en el formulario se pueden bloquear para que no puedan moverse de forma accidental. Para esto deberemos pulsar en la barra de herramientas: Cuando actives este botón y mientras no desbloquees los controles utilizando la misma opción no se podrán mover ninguno de los controles del formulario activo. Sin embargo en si abres otro formulario que no tenga los controles bloqueados si se podrán mover. Si añades más controles a un formulario bloqueado estos quedan bloqueados automáticamente Tiene la siguiente forma: Un control Frame proporciona un agrupamiento identificable para controles. También puede utilizar un Frame para subdividir un formulario funcionalmente por ejemplo, para separar grupos de controles OptionButton. CHECK BUTTON Y OPTION BUTTON (BOTONES DE ELECCION Y OPCION) Se obtienen directamente de la caja de herramientas.
  • 11.
    8 Dada la similitudde ambos controles, se comentan conjuntamente. El control CheckBox, o casilla de verificación, permite elegir una opción (activada / desactivada, True/False) que el usuario puede establecer o anular haciendo click. Una X en una casilla de verificación indica que está seleccionada, activada, o con valor True. Cada casilla de verificación es independiente de las demás que puedan existir en el formulario, pudiendo tomar cada una de ellas el valor True o False, a voluntad del operador. Un control OptionButton muestra una opción que se puede activar o desactivar, pero con dependencia del estado de otros controles OptionButton que existan en el formulario. Generalmente, los controles OptionButton se utilizan en un grupo de opciones para mostrar opciones de las cuales el usuario sólo puede seleccionar una. Los controles OptionButton se agrupan dibujándolos dentro de un contenedor como un control Frame, un control PictureBox o un formulario. Para agrupar controles OptionButton en un Frame o PictureBox, dibuje en primer lugar el Frame o PictureBox y, a continuación, dibuje dentro los controles OptionButton. Todos los controles OptionButton que están dentro del mismo contenedor actúan como un solo grupo, e independientes de los controles OptionButton de otros grupos distintos. Aunque puede parecer que los controles OptionButton y CheckBox funcionan de forma similar, hay una diferencia importante: Cuando un usuario selecciona un OptionButton, los otros controles del mismo grupo OptionButton dejan de estas disponibles automáticamente. Por contraste, se puede seleccionar cualquier número de controles CheckBox.
  • 12.
    9 LIST BOX YCOMBO BOX Estos dos controles, debido a su similitud, se estudian conjuntamente. Se obtienen directamente de la caja de herramientas: Un control ListBox muestra una lista de elementos en la que el usuario puede seleccionar uno o más. Si el número de elementos supera el número que puede mostrarse, se agregará automáticamente una barra de desplazamiento al control ListBox. Un control ComboBox combina las características de un control TextBox y un control ListBox. Los usuarios pueden introducir información en la parte del cuadro de texto y seleccionar un elemento en la parte de cuadro de lista del control. En resumen, un ComboBox es la combinación de un ListBox, que se comporta como si de un ListBox se tratase, y de un TextBox, con comportamiento análogo a un TextBox sencillo, con la particularidad aquí de que el texto se le puede introducir por teclado, o elegir uno de los que figuran en la parte ListBox del Combo. CONTROLES HScrollBar y VScrollBar Son dos controles similares, para introducir un dato cuasi-analógico en una aplicación. Se toman directamente de la caja de herramientas, y tienen un aspecto parecido al de un control de volumen de un equipo de música. El HScrollBar está en posición horizontal, y el VScrollBar en posición vertical.
  • 13.
    10 Mediante estos controlesse pueden introducir datos variando la posición del cursor. TIMER TEMPORIZADOR Este objeto permite establecer temporizaciones. Presenta una novedad respecto a los controles estudiados hasta ahora. El control Timer solamente se ve durante el tiempo de diseño. En tiempo de ejecución, el control permanece invisible. La temporización producida por el Timer es independiente de la velocidad de trabajo del ordenador. (Casi independiente. El timer no es un reloj exacto, pero se le parece) Se toma directamente de la caja de herramientas, y tiene el aspecto siguiente: SHAPE Se toma directamente de la caja de herramientas:
  • 14.
    11 Shape es uncontrol gráfico que se muestra como un rectángulo, un cuadrado, una elipse, un círculo, un rectángulo redondeado o un cuadrado redondeado. Utilice controles Shape en tiempo de diseño en lugar o además de invocar los métodos Circle y Line en tiempo de ejecución. Puede dibujar un control Shape en un contenedor, pero no puede actuar como contenedor. (Esto quiere decir que un control Shape nunca le servirá, por ejemplo, para albergar varios OptionButton y pretender que sean independientes de otros controles OptionButton que se encuentren fuera del control Shape. Este control no tiene Procedimientos. En realidad, solamente sirve para mostrar un determinado gráfico, envolver gráficamente a otros controles, pero no tiene ninguna aplicación en cuanto a programa. Es un "adorno" para sus aplicaciones. LINE Se toma directamente de la caja de herramientas Line, al igual que Shape, es un control gráfico que solamente sirve para poner una línea en un formulario. Del mismo modo, no tiene procedimientos, por lo que no sirve para aportar código al programa. Solo sirve para aportar una característica gráfica, es un adorno. CONTROL GAUGE Este control presenta una información numérica de forma gráfica, bien como un display lineal (típico por ejemplo en ecualizadores de audio), o como una aguja. No está normalmente en la
  • 15.
    12 caja de herramientas,por lo que hay que traerla desde los Controles Personalizados (Menú desplegable de Herramientas) Se denomina MicroHelp Gauge Control. El archivo que lo contiene se denomina GAUGE16.OCX, 16 bits Mediante este control, podemos presentar una magnitud numérica de una forma cuasi-analógica. Podríamos decir que es un control similar al HScrollBar, que en vez de meter información a la aplicación, la presenta. Este control puede servir, por ejemplo, para presentar el tanto por ciento de ejecución de una tarea, como elemento tranquilizante. Puede presentar el nivel de un depósito de agua, etc. Presenta las dos formas siguientes: En la figura puede verse un Gauge de aguja, uno de barra horizontal y otro de barra vertical. Para mejorar la presentación, el Gauge permite poner un gráfico como fondo, cambiar el color de la barra, color de fondo, etc. El control Gauge crea medidores definidos por el usuario, que puede elegir entre los estilos lineales (relleno) o de aguja.
  • 16.
    13 Nota para ladistribución Cuando cree y distribuya aplicaciones con controles Gauge, tendrá que instalar el archivo apropiado en el subdirectorio SYSTEM de Windows del cliente. El Kit para instalación que incluye Visual Basic, le proporciona herramientas para escribir los programas que instalan las aplicaciones correctamente. El CommonDialog es un control del que se libran muy pocas aplicaciones. Dada la importancia de este control, se le dedica un capitulo único en esta Guía del Estudiante. CUADRO DE DIALOGO CommonDialog Normalmente se encuentra en la caja de herramientas Este control no se presenta en tiempo de diseño más que con un simple icono: El cuadro de diálogo, CommonDialog se utiliza para varias funciones:  Abrir Ficheros  Guardar Ficheros  Elegir colores  Seleccionar Impresora  Seleccionar Fuentes
  • 17.
    14  Mostrar elfichero de Ayuda En realidad el cuadro de diálogo permite conocer datos con los cuales, y mediante el código adecuado, abriremos o guardaremos ficheros, elegiremos colores o seleccionaremos fuentes. Es decir, el CommonDialog NO realiza mas funciones que mostrar ficheros existentes, fuentes disponibles, colores, para que, mediante código, abramos esos ficheros o usemos una determinada fuente. Dependiendo de la aplicación para la que vaya a usarse se deberá activar de distintas formas. Si el cuadro de diálogo se va a usar para seleccionar la impresora y para otras aplicaciones, es recomendable usar uno exclusivamente para seleccionar la impresora. Esta última recomendación se debe a que, para el control de la impresora, el CommonDialog SI realiza las funciones de selección de impresora predeterminada. Esta diferencia operativa hace que si usamos el mismo CommonDialog para seleccionar impresora y abrir ficheros, por ejemplo, se "cuelgue" el CommonDialog. Defina los siguientes términos.  Eventos: es una acción como hacer clic, doble clic, presionar una tecla, mover el puntero del mouse, etc. Que el usuario debe realizar para que un objeto ejecute una acción determinada cada control responde a diferentes eventos, algunos de ellos tienen características comunes. Los eventos pueden Visualizarse en la ventana de código.  Métodos: Son procedimientos definidos en Visual Basic para realizar operaciones específicas sobre los objetos (Controles o Formularios)  Controles: Son los objetos que conforman la interfaz gráfica de un programa; a través de ellos, un usuario interactúa con la aplicación. Sus características pueden cambiarse por medio de la ventana propiedades:
  • 18.
    15  Proyecto  Propiedades:Son los datos que hacen referencia a un objeto o formulario. Ejemplo : Color de fondo del formulario, Fuente de texto de un TextBox.  Objetos: Un objeto es una entidad que tiene asociado un conjunto de métodos, eventos y propiedades. Hay muchas clases de objetos, y por tanto, puede llegar a haber tantos métodos, eventos y propiedades distintas como objetos diferentes. Ejemplo : Una caja de texto (TextBox) en la cual podemos escribir cualquier línea es un objeto.  Clases: Una clase no es nada más que un Objeto, este objeto, tiene propiedades, funciones y métodos. Para empezar ahora la creación de propiedades si se utiliza Property Let y Property Get; la diferencia es casi nada, inclusive podría decir que una clase en visual basic, es casi lo mismo que un control, pero ahora nace una nueva pregunta, cuando utilizar un control y cuando utilizar una clase, bueno la opinión que voy a dar es desde mi perspectiva.  Módulo: Un proyecto Visual Basic no sólo está compuesto de Formularios, sino también de lo que se denominan módulos. Un módulo es un fichero Visual Basic donde escribimos parte del código de nuestro programa, y digo parte, porque puede haber código en el formulario también. De los fundamentos de programaciónexplique:  Módulos de Control:  Módulos de Formularios:  Módulos de Clases  Módulos Estándar
  • 19.
    16  Editor deCódigos:  Variable: Dim: Al declarar una variable con esta palabra estamos diciendo que la variable sea local al ámbito en que se declara. Puede ser dentro de un procedimiento o dentro de un formulario, de esta forma no sería accesible desde los demás procedimientos o formularios.  Public: Las variables declaradas serán públicas y podrán estar accesibles desde todos los formularios de la aplicación. Para conseguirlo tendremos que declararlas en un módulo de código, no en la sección declarations de cualquier formulario de los que conste la aplicación. Para crear un módulo de código en el menú principal de Visual Basic marcamos en INSERT/MODULE y aparecerá junto a los demás formularios de la ventana de proyecto, aunque con un icono distinto indicando que se trata de un módulo de código.  Static: Con esta forma de declarar variables conseguiremos que las variables locales no se creen y se destruyan al entrar y salir de los procedimientos donde fueron declaradas, sino que se mantenga su valor durante todo el periodo de ejecución de la aplicación. De esta forma a entrar en algún procedimiento las variables recuerdan el valor que tenían cuando se salió de él.
  • 20.
    17 TIPOS DE VARIABLES Tabla1 Tabla de los tipos de variables que existen o permite Visual Basic. TIPO COMENTARIO BOOLEAN Sólo admite 2 valores TRUE o FALSE BYTE admite valores entre 0 y 255 INTEGER admite valores entre -32768 y 32767 LONG admite valores entre -2.147.483.648 y 2.147.483.647 SINGLE admite valores decimales con precisión simple DOUBLE admite valores decimales de doble precisión CURRENCY válido para valores de tipo moneda STRING cadenas de caracteres DATE fechas, permite operar con ellas Datos obtenidos de unas página web  Constante: Declaración de constantes que pueden ser usadas en cualquier punto en lugar de su valor, permitiendo cambiarlo cuando sea necesario, sin tener que cambiarlo en todos los sitios en que se utiliza. La expresión no puede utilizar llamadas a funciones, pues la constante se calcula en tiempo de compilación, no en tiempo de ejecución.
  • 21.
    18 Lenguaje De ProgramaciónJava El Java es un lenguaje de programación orientado a objetos creado por James Gosling en el año 1990. Su código es muy similar al del lenguaje C y C++ con un modelo de objetos mucho más sencillo. La diferencia entre el Java y los lenguajes C y C++ es que el Java es un lenguaje de programación plenamente orientado a objetos. Es muy fácil de aprender, en Java es relativamente sencillo programar desde el principio. Todos los programadores que ya hayan programado anteriormente con el C o el C++, les costara mucho menos su aprendizaje por la gran similitud entre ellos. El Java supuso un gran avance en los lenguajes de programación, tiene una enorme potencia para el diseño orientado a objetos con un código sencillo en un entorno muy estable y agradable. El Java nos permite realizar aplicaciones que podemos incluir directamente en páginas web. Estas aplicaciones se conocen con el nombre de applets. Estos son unos programas que se transfieren dinámicamente a través de Internet. Los applets tienen un comportamiento inteligente, pueden reaccionar cuando un visitante entra en una página web y cambian de forma. Todo esto ha posibilitado que el Java sea un lenguaje interactivo entre el usuario y la aplicación. La mayoría de los lenguajes de programación están compilados en código fuente, mientras que el Java es compilado en un bytecode (código binario que contiene un programa ejecutable) que es ejecutado por una máquina virtual de Java. Esta máquina es la encargada de ejecutar todo el código de un programa hecho con Java. Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados. El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente. La compañía Sun desarrolló la implementación de referencia original para los compiladores de Java, máquinas virtuales, y librerías de clases en 1991 y las publicó por primera vez en 1995. A partir de mayo de 2007, en cumplimiento con las especificaciones del Proceso de la Comunidad Java, Sun volvió a licenciar la mayoría de sus tecnologías de Java bajo la Licencia Pública General
  • 22.
    19 de GNU. Otrostambién han desarrollado implementaciones alternas a estas tecnologías de Sun, tales como el Compilador de Java de GNU y el GNU Classpath. Historia Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo. El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java. Fue inventada por Marcos, el supervisor. Es frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus diseñadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo más"). La hipótesis que más fuerza tiene es la de que Java debe su nombre a un tipo de café disponible en la cafetería cercana, de ahí que el icono de java sea una taza de café caliente. Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes (el número mágico) de los archivos.class que genera el compilador, son en hexadecimal, 0xCAFEBABE. A pesar de todas estas teorías, el nombre fue sacado al parecer de una lista aleatoria de palabras. Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura y sintaxis similar a C++. Entre junio y julio de 1994, tras una sesión maratoniana de tres días entre John Gaga, James Gosling, Patrick Naughton, Wayne Rosing y Eric Schmidt, el equipo reorientó la plataforma hacia la Web. Sintieron que la llegada del navegador web Mosaic, propiciaría que Internet se convirtiese en un medio interactivo, como el que pensaban era la televisión por cable. Naughton creó entonces un prototipo de navegador, WebRunner, que más tarde sería conocido como HotJava. En 1994, se les hizo una demostración de HotJava y la plataforma Java a los ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld, a que vieran la luz pública Java y HotJava, el navegador Web. El acontecimiento fue anunciado por John Gage, el Director Científico de Sun Microsystems. El acto estuvo acompañado por una pequeña sorpresa adicional, el anuncio por parte de Marc Andreessen, Vicepresidente Ejecutivo de Netscape, de que Java sería soportado en sus navegadores. El 9 de enero del año siguiente, 1996, Sun fundó el grupo empresarial JavaSoft para que se encargase del desarrollo tecnológico. Dos semanas más tarde la primera versión de Java fue publicada. La promesa inicial de Gosling era Write Once, Run Anywhere (Escríbelo una vez, ejecútalo en cualquier lugar), proporcionando un lenguaje independiente de la plataforma y un entorno de ejecución (la JVM) ligero y gratuito para las plataformas más populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma. El entorno de ejecución era relativamente seguro y los principales navegadores web pronto incorporaron la posibilidad de ejecutar applets Java incrustadas en las páginas web.
  • 23.
    20 Java ha experimentadonumerosos cambios desde la versión primigenia, JDK 1.0, así como un enorme incremento en el número de clases y paquetes que componen la biblioteca estándar. Filosofía El lenguaje Java se creó con cinco objetivos principales: 1. Debería usar el paradigma de la programación orientada a objetos. 2. Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos. 3. Debería incluir por defecto soporte para trabajo en red. 4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura. 5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++. Para conseguir la ejecución de código remoto y el soporte de red, los programadores de Java a veces recurren a extensiones como CORBA (Common Object Request Broker Architecture), Internet Communications Engine o OSGi respectivamente. Orientado A Objetos La primera característica, orientado a objetos (“OO”), se refiere a un método de programación y al diseño del lenguaje. Aunque hay muchas interpretaciones para OO, una primera idea es diseñar el software de forma que los distintos tipos de datos que usen estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos. Un objeto puede verse como un paquete que contiene el “comportamiento” (el código) y el “estado” (datos). El principio es separar aquello que cambia de las cosas que permanecen inalterables. Frecuentemente, cambiar una estructura de datos implica un cambio en el código que opera sobre los mismos, o viceversa. Esta separación en objetos coherentes e independientes ofrece una base más estable para el diseño de un sistema software. El objetivo es hacer que grandes proyectos sean fáciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el número de proyectos fallidos. Otra de las grandes promesas de la programación orientada a objetos es la creación de entidades más genéricas (objetos) que permitan la reutilización del software entre proyectos, una de las premisas fundamentales de la Ingeniería del Software. Un objeto genérico “cliente”, por ejemplo, debería en teoría tener el mismo conjunto de comportamiento en diferentes proyectos, sobre todo cuando estos coinciden en cierta medida, algo que suele suceder en las grandes organizaciones. En este sentido, los objetos podrían verse como piezas reutilizables que pueden emplearse en múltiples proyectos distintos, posibilitando así a la industria del software a construir proyectos de envergadura empleando componentes ya existentes y de comprobada calidad; conduciendo esto finalmente a una reducción drástica del tiempo de desarrollo. Podemos usar como ejemplo de objeto el aluminio. Una vez definidos datos (peso, maleabilidad, etc.), y su “comportamiento” (soldar dos piezas, etc.), el objeto “aluminio” puede ser reutilizado en el campo de la construcción, del automóvil, de la aviación, etc. La reutilización del software ha experimentado resultados dispares, encontrando dos dificultades principales: el diseño de objetos realmente genéricos es pobremente comprendido, y falta una metodología para la amplia comunicación de oportunidades de reutilización. Algunas comunidades de “código abierto” (open source) quieren ayudar en este problema dando medios a
  • 24.
    21 los desarrolladores paradiseminar la información sobre el uso y versatilidad de objetos reutilizables y bibliotecas de objetos. Independencia De La Plataforma La segunda característica, la independencia de la plataforma, significa que programas escritos en el lenguaje Java pueden ejecutarse igualmente en cualquier tipo de hardware. Este es el significado de ser capaz de escribir un programa una vez y que pueda ejecutarse en cualquier dispositivo, tal como reza el axioma de Java, "write once, run anywhere". Para ello, se compila el código fuente escrito en lenguaje Java, para generar un código conocido como “bytecode” (específicamente Java bytecode)—instrucciones máquina simplificadas específicas de la plataforma Java. Esta pieza está “a medio camino” entre el código fuente y el código máquina que entiende el dispositivo destino. El bytecode es ejecutado entonces en la máquina virtual (JVM), un programa escrito en código nativo de la plataforma destino (que es el que entiende su hardware), que interpreta y ejecuta el código. Además, se suministran bibliotecas adicionales para acceder a las características de cada dispositivo (como los gráficos, ejecución mediante hebras o threads, la interfaz de red) de forma unificada. Se debe tener presente que, aunque hay una etapa explícita de compilación, el bytecode generado es interpretado o convertido a instrucciones máquina del código nativo por el compilador JIT (Just In Time). Hay implementaciones del compilador de Java que convierten el código fuente directamente en código objeto nativo, como GCJ. Esto elimina la etapa intermedia donde se genera el bytecode, pero la salida de este tipo de compiladores sólo puede ejecutarse en un tipo de arquitectura. La licencia sobre Java de Sun insiste que todas las implementaciones sean “compatibles”. Esto dio lugar a una disputa legal entre Microsoft y Sun, cuando éste último alegó que la implementación de Microsoft no daba soporte a las interfaces RMI y JNI además de haber añadido características ‘’dependientes’’ de su plataforma. Sun demandó a Microsoft y ganó por daños y perjuicios (unos 20 millones de dólares) así como una orden judicial forzando la acatación de la licencia de Sun. Como respuesta, Microsoft no ofrece Java con su versión de sistema operativo, y en recientes versiones de Windows, su navegador Internet Explorer no admite la ejecución de applets sin un conector (o plugin) aparte. Sin embargo, Sun y otras fuentes ofrecen versiones gratuitas para distintas versiones de Windows. Las primeras implementaciones del lenguaje usaban una máquina virtual interpretada para conseguir la portabilidad. Sin embargo, el resultado eran programas que se ejecutaban comparativamente más lentos que aquellos escritos en C o C++. Esto hizo que Java se ganase una reputación de lento en rendimiento. Las implementaciones recientes de la JVM dan lugar a programas que se ejecutan considerablemente más rápido que las versiones antiguas, empleando diversas técnicas, aunque sigue siendo mucho más lento que otros lenguajes. La primera de estas técnicas es simplemente compilar directamente en código nativo como hacen los compiladores tradicionales, eliminando la etapa del bytecode. Esto da lugar a un gran rendimiento en la ejecución, pero tapa el camino a la portabilidad. Otra técnica, conocida como compilación JIT (Just In Time, o "compilación al vuelo"), convierte el bytecode a código nativo cuando se ejecuta la aplicación. Otras máquinas virtuales más sofisticadas usan una "recompilación dinámica" en la que la VM es capaz de analizar el comportamiento del programa en ejecución y recompila y optimiza las partes críticas. La recompilación dinámica puede lograr
  • 25.
    22 mayor grado deoptimización que la compilación tradicional (o estática), ya que puede basar su trabajo en el conocimiento que de primera mano tiene sobre el entorno de ejecución y el conjunto de clases cargadas en memoria. La compilación JIT y la recompilación dinámica permiten a los programas Java aprovechar la velocidad de ejecución del código nativo sin por ello perder la ventaja de la portabilidad en ambos. La portabilidad es técnicamente difícil de lograr, y el éxito de Java en ese campo ha sido dispar. Aunque es de hecho posible escribir programas para la plataforma Java que actúen de forma correcta en múltiples plataformas de distinta arquitectura, el gran número de estas con pequeños errores o inconsistencias llevan a que a veces se parodie el eslogan de Sun, "Write once, run anywhere" como "Write once, debug everywhere" (o “Escríbelo una vez, ejecútalo en cualquier parte” por “Escríbelo una vez, depúralo en todas partes”). El concepto de independencia de la plataforma de Java cuenta, sin embargo, con un gran éxito en las aplicaciones en el entorno del servidor, como los Servicios Web, los Servlets, los Java Beans, así como en sistemas empotrados basados en OSGi, usando entornos Java empotrados. El Recolector De Basura En Java el problema fugas de memoria se evita en gran medida gracias a la recolección de basura (o automatic garbage collector). El programador determina cuándo se crean los objetos y el entorno en tiempo de ejecución de Java (Java runtime) es el responsable de gestionar el ciclo de vida de los objetos. El programa, u otros objetos pueden tener localizado un objeto mediante una referencia a éste. Cuando no quedan referencias a un objeto, el recolector de basura de Java borra el objeto, liberando así la memoria que ocupaba previniendo posibles fugas (ejemplo: un objeto creado y únicamente usado dentro de un método sólo tiene entidad dentro de éste; al salir del método el objeto es eliminado). Aun así, es posible que se produzcan fugas de memoria si el código almacena referencias a objetos que ya no son necesarios—es decir, pueden aún ocurrir, pero en un nivel conceptual superior. En definitiva, el recolector de basura de Java permite una fácil creación y eliminación de objetos y mayor seguridad. Visión general de la plataforma Java La tecnología Java se usa para desarrollar aplicaciones para un amplio alcance de entornos, desde dispositivos del consumidor hasta sistemas empresariales heterogéneos. En esta sección, obtenga una vista de alto nivel de la plataforma Java y sus componentes. Vea Recursos para aprender más acerca de los componentes de la plataforma Java discutidos en esta sección. Conozca Las API De Java La mayoría de los desarrolladores Java hacen referencia constantemente a la documentación API de Java online oficial, — también llamada el Javadoc (vea Recursos). De forma predeterminada, usted ve tres marcos en el Javadoc. El marco superior izquierdo muestra todos los paquetes en la API y debajo están las clases en cada paquete. El marco principal (a la derecha) muestra detalles del paquete o de la clase seleccionada actualmente. Por ejemplo, si selecciona el paquete java.util en el marco superior izquierdo y luego selecciona la clase ArrayListque aparece debajo de él, en el marco derecho, verá detalles acerca del ArrayList, que incluyen una descripción de lo que hace, cómo usarlo y sus métodos.
  • 26.
    23 Como cualquier lenguajede programación, el lenguaje Java tiene su propia estructura, reglas de sintaxis y paradigma de programación. El paradigma de programación del lenguaje Java se basa en el concepto de programación orientada a objetos (OOP), que las funciones del lenguaje soportan. El lenguaje Java es un derivado del lenguaje C, por lo que sus reglas de sintaxis se parecen mucho a C: por ejemplo, los bloques de códigos se modularizan en métodos y se delimitan con llaves ({ y }) y las variables se declaran antes de que se usen. Estructuralmente, el lenguaje Java comienza con paquetes. Un paquete es el mecanismo de espacio de nombres del lenguaje Java. Dentro de los paquetes se encuentran las clases y dentro de las clases se encuentran métodos, variables, constantes, entre otros. En este tutorial, aprenderá acerca de las partes del lenguaje Java. Conceptos de programación orientada a objetos El lenguaje Java está (en su mayor parte) orientado a objetos. Si no ha utilizado un lenguaje orientado a objetos antes, sus conceptos pueden parecer extraños al principio. Esta sección es una breve introducción a los conceptos del lenguaje OOP, que utiliza programación estructurada como punto de contraste. ¿Qué es un objeto? Los lenguajes de programación estructurada como C y COBOL siguen un paradigma de programación muy diferente de los orientados a objetos. El paradigma de programación estructurada está altamente orientado a datos, lo cual significa que usted tiene estructuras de datos por una parte y luego instrucciones del programa que actúan sobre esos datos. Los lenguajes orientados a objetos, como el lenguaje Java, combinan datos e instrucciones del programa en objetos. Un objeto es una entidad independiente que contiene atributos y comportamientos y nada más. En lugar de tener una estructura de datos con campos (atributos) y pasar esa estructura a toda la lógica del programa que actúa sobre ella (comportamiento), en un lenguaje orientado a objetos, se combinan los datos y la lógica del programa. Esta combinación puede ocurrir en niveles completamente diferentes de granularidad, desde objetos específicos como un Number hasta objetos de aplicación general como un servicio de FundsTransfer en una gran aplicación bancaria. Objetos padre e hijo Un objeto padre es aquel que sirve como la base estructural para derivar objetos hijos más complejos. Un objeto hijo se parece a su padre pero es más especializado. El paradigma orientado a objetos le permite reutilizar los atributos y comportamientos comunes del objeto padre y le agrega a sus objetos hijos atributos y comportamientos que difieren. (Usted aprenderá más sobre herencia en la siguiente sección de este tutorial).
  • 27.
    24 Comunicación y coordinaciónde objetos Los objetos se comunican con otros objetos por medio del envío de mensajes (llamadas de método en el lenguaje Java). Además, en una aplicación orientada a objetos, el código del programa coordina las actividades entre objetos para realizar tareas dentro del contexto del dominio de aplicación dado. (En el paradigma Modelo-Vista-Controlador, este código de programa de coordinación es el Controlador. Vea Recursos para aprender más acerca de MVC). Resumen del objeto Un objeto bien escrito:  tiene límites nítidos.  realiza un conjunto limitado de actividades.  conoce solo lo relacionado a sus datos y cualquier otro objeto que necesite para cumplir sus actividades. Básicamente, un objeto es una entidad diferenciada que tiene solo las dependencias necesarias de otros objetos para realizar sus tareas. Ahora verá cómo luce un objeto. El objeto Person Comenzaré con un ejemplo que está basado en escenario común de desarrollo de aplicación: se representa a un individuo con un objeto Person. Volviendo a la definición de un objeto, usted sabe que un objeto tiene dos elementos primarios: atributos y comportamiento. Verá cómo estos se aplican al objeto Person. Atributos ¿Qué atributos puede tener una persona? Algunos atributos comunes incluyen:  Nombre  Edad  Altura  Peso  Color de ojos  Género Probablemente a usted se le pueden ocurrir más (y siempre puede agregar más atributos más tarde) pero esta lista es un buen comienzo. Comportamiento Una persona real puede hacer todo tipo de actividades pero los comportamientos de los objetos normalmente se relacionan con algún tipo de contexto de aplicación. En un contexto de aplicación de negocio, por ejemplo, puede querer preguntarle a su objeto Person: "¿Qué edad tiene?" Como respuesta, Person le diría el valor de su atributo de Edad.
  • 28.
    25 Una lógica máscompleja podría estar oculta dentro del objeto Person pero por ahora suponga que esa Person tiene el comportamiento de responder estas preguntas:  ¿Cuál es su nombre?  ¿Qué edad tiene?  ¿Cuál es su altura?  ¿Cuánto pesa?  ¿Cuál es su color de ojos?  ¿Cuál es su género? Estado y cadena El Estado es un concepto importante en OOP. El estado de un objeto se representa en cualquier momento por medio del valor de sus atributos. En el caso de Person, su estado se define por sus atributos, tales como nombre, edad, altura y peso. Si usted quisiera presentar una lista de varios de esos atributos, podría hacerlo utilizando una clase de String, sobre la cual hablaré más en el tutorial posteriormente. Juntos, los conceptos de estado y cadena le permiten decirle a Person: cuénteme quién es usted dándome un listado (o una String) de sus atributos. ¿Qué es un IDE? Un IDE (entorno de desarrollo integrado) es un programa que incluye diferentes herramientas para escribir código y probar el software, generalmente, de un lenguaje específico. Estos IDE’s facilitan la tarea de programar gracias a que incluyen un editor de código, un compilador o intérprete y un depurador, a los que se acceden mediante una interfaz gráfica de usuario. Mejores IDE para programar en Java De entre todos los IDE para Java, destacan especialmente dos: Eclipse y Netbeans, siendo los más populares y utilizados por los desarrolladores. Pero estos no son los únicos, aquí veremos una lista de los mejores entornos para JAVA, disponibles para Linux, macOS, Windows e incluso versiones en línea. Eclipse
  • 29.
    26 Empezamos la listacon el que es quizás el IDE de Java más popular, aunque, para algunos, esto no precisamente lo haga ser el mejor. Desarrollado originalmente por IBM, Eclipse es un entorno multiplataforma de código abierto que actualiza su versión cada año. Con Eclipse podrá desarrollar aplicaciones de escritorio, web y apps móviles. Además, gracias a su amplia variedad de plugins, no solo soporta Java, sino también lenguajes como C, C++, JSP, Perl y PHP. Ventajas:  Depuración de código, con una perspectiva específica y vista de errores.  Excelente gestión de proyectos.  Soporte para plugins.  Opciones de personalización.  Permite la integración de soluciones de terceros.  Ofrece herramientas para repositorios y servidores. Desventajas:  Mayor consumo de recursos.  Con una gran comunidad detrás, Eclipse está disponible para Windows, Linux y Mac.  Por otro lado, si lo que estás buscando es un IDE Java online, puedes optar por su versión en la nube: Eclipse Che, que permite desarrollar aplicaciones desde un navegador web. Aunque, eso sí, el tiempo de ejecución de este IDE en línea es más lento que su versión de escritorio.
  • 30.
    27 Netbeans Netbeans es unIDE gratuito y de código abierto inicialmente desarrollado por Sun Mycrosystem y ahora propiedad de Oracle. Una de las ventajas de usar este entorno es la facilidad con la que se pueden crear aplicaciones con interfaz gráfica gracias a la función Drap and Drop. Por esta razón, es muy utilizado por quiénes recién se inician en la programación. Sin embargo, la facilidad con la que se pueden crear interfaces gráficas, pueden hacer que el usuario se vuelva dependiente de los botones de arrastrar y soltar. Por otro lado, con Netbeans puedes desarrollar todo tipo de aplicaciones Java Web, J2SE, EJB y aplicaciones móviles. Además, soporta otros lenguajes de programación como C/C++, XML, HTML, PHP, Groovy, Javadoc, JavaScript y JSP. Ventajas:  Eficiente gestión de Proyectos.  Reutilización de Modulos.  Identifica y soluciona problemas de código comunes.  Librería visual de Netbeans.  Herramientas de desarrollo integrado.
  • 31.
    28 Desventajas:  Genera códigobasura al usar los botones de arrastrar y soltar.  Las librerías y complementos hacen que sea “muy pesado”. IntelliJ IDEA Desarrollado por JetBrains, IntelliJ IDEA incluye una versión gratuita (Community) y otra de pago (Ultimate) con algunas funciones adicionales. La versión Community ofrece soporte para Java, Groovy, Kotlin, XML, JSON, YAML; mientras que la versión Ultimate soporta estos y otros lenguajes como JavaScrip, TypeScript, SQL, XSL, XPath. Además, algunos otros lenguajes como Ruby, Phyton o PHP también son soportados por medio de plugins. Para un programador Java, la versión Community puede ser suficiente; aunque si lo que quieres es desarrollar proyectos profesionales o para empresas de gran tamaño, deberás optar por la versión de pago: Ultimate.
  • 32.
    29 Ventajas:  Herramientas integradaspara desarrolladores.  Soporte de frameworks.  Atajos de teclado.  Enfocado a proyectos complejos.  Soporte técnico (solo para la versión de pago). Desventajas:  Pagos de suscripción mensual/anual para la versión Ultimate. Codenvy Codenvy es un IDE Java en línea de código abierto que permite a los desarrolladores modificar, ejecutar y depurar código en la nube sin necesidad de instalar ningún software. Gracias a que está basado en Eclipse Che, este entorno de desarrollo integrado agrega multitenencia, controles de seguridad y automatización. Además, facilita la depuración y prueba de código Java gracias al entorno de tiempo de ejecución personalizado. Al igual que IntelliJ IDEA, Codenvy cuenta con versiones gratuitas y de pago. Así tenemos que las ediciones Developer y Team son gratuitas, pero con algunas limitaciones; mientras que la versión Enterprise es enteramente de pago.
  • 33.
    30 Ventajas:  Entorno deejecución personalizado para probar y depurar código.  Acceso SSH para ejecutar el contenedor en cada imagen.  Entornos preconstruidos para acelerar el desarrollo.  Posibilidad de compartir el progreso del trabajo con un cliente.  Funciones de finalización de código, refactorización y resaltado de sintaxis. Desventajas:  No cuenta con aplicación de escritorio  IBM Rational Application Developer(RAD) Rational Application Developer, también conocido como RAD, es un popular IDE comercial basado en Eclipse. RAD proporciona herramientas para analizar, desarrollar, diseñar visualmente y desplegar aplicaciones desarrolladas en Java. No solo eso, también se puede utilizar para implementar y administrar servicios web, aplicaciones web que utilizan JavaScript y XML y activos de arquitectura de componentes de servicio.
  • 34.
    31 Ventajas:  Integración conel servidor de aplicaciones de IBM Websphere.  Herramientas para desarrollar, implementar y probar aplicaciones en WebSphere Application Server.  Altamente personalizable.  Extensa documentación.  Facilidad de uso y tiempo de despliegue. Desventajas:  Alto costo de la licencia.  Consumo de recursos elevado. JCreator JCreator es un IDE Java comercial propiedad de Xinox Software. Ofrece dos ediciones de pago: JCreator Lite, con funciones más que suficientes para un programador Java; y JCreator Pro, con algunas funciones extra como CVS y el Depurador JDK. A diferencia de otras aplicaciones para programar en Java, JCreator está escrito en C++, lo cual hace que sea más rápido. Una de sus principales características, es que cuando necesites compilar una aplicación, no es necesario seleccionar el documento principal de tu proyecto, JCreator lo detecta automáticamente.
  • 35.
    32 Ventajas:  Gestión deproyectos.  Plantillas de proyecto.  Interfaz de depuración independiente.  Interfaz de usuario totalmente personalizable. Desventajas:  No ofrece versiones gratuitas.  No es apto para desarrollar sistemas complejos de gran tamaño. jGRASP jGRASP, siglas de “Representaciones gráficas de algoritmos, estructuras y procesos”,es la aplicación más ligera para programar en Java. A pesar de estar implementado en Java, jGrasp produce diagramas de estructura de control (CSD) para varios lenguajes de programación como C, C++, Python, Objective-C y Ada. Además, incluye funciones para hacer que las aplicaciones de software sean integrales al generar la visualización del software automáticamente. Gracias a este IDE, los desarrolladores pueden generar diagramas de estructura de control y diagramas de clase UML.
  • 36.
    33 Ventajas:  Entorno dedesarrollo ligero.  Extremadamente fácil de usar.  Gestión de Proyectos para C, C ++, Objective-C, y Ada. Desventajas:  Funcionalidades muy básicas.