miércoles, 3 de junio de 2015

LENGUAJE JAVA

                                                                    JAVA

Un programa java es una colección de clases, Java fue presentado en mayo de 1995(SUN WORLD 95), como sociedad, algunos de sus usos es la distribución de las aplicaciones a través de internet:

·         Aplicaciones (programas ya sea independientes)
·         Applets (pequeñas aplicaciones)



Java ha ido evolucionando  a través de la historia de su creación, JAMES GOSGLIN quien trabajaba para SUN MICROSYSTEMS, era el encargado de la creación de programas para controlar aparatos electrodomésticos utilizando C++, pero no fue satisfactorio porque en el encontró varios errores y dificultades al utilizar C++, así que empezó a desarrollar un nuevo lenguaje llamándolo OAK, este se usó por primera vez en un proyecto llamado proyecto Green, este permitía controlar los aparatos electrodomésticos , permitiendo su manipulación de los distintos dispositivos a través de una sola computadora la cual fue llamada  pantalla 7 “STAR SEVEN” tenía las características de una pantalla sensible  para que el administrador pudiera seleccionar y controlar dichos dispositivos, tenía diferentes figuras como la mascota actual de java “DUKE”. El siguiente proyecto que se utilizo fue VOD “video en demanda” la cual permitía controlar un sistema de televisión interactivo; poco después SUN MICROSYSTEMS descubrió que el nombre OAK ya había sido usado fue ahí donde decidió cambiarle el nombre de JAVA.

La máquina virtual java:



·         El COMPILADOR JAVA genera un código intermedio independiente de la plataforma bytecodes.
·         Los bytecodes son considerados como el lenguaje máquina de una máquina virtual, la máquina virtual java (JVM)
·       
  Cuando se ejecuta una aplicación java al cargar el programa en memoria se puede acceder:

>interpretar los bytecodes instrucción por instrucción
>compilar los bytecodes para obtener el código maquina necesario para la ejecución de la aplicación en el ordenador compilador JIT (JUST IN TIME).

La máquina virtual es como una maquina imaginaria que es implantada por la emulación de software en una maquina real. El código que utiliza es almacenado en archivos conteniendo una clase pública.Esto nos dice que la java es multiplataforma porque podemos ejecutarlo en diversos sistemas operativos sin tener la necesidad de recompilarlo  en comparación como C++, así su compilación es hecha por una maquina genérica, al intérprete de java de cada plataforma de hardware le corresponde asegurar la ejecución del código compilado para la VJM (máquina virtual de java).



La definición que hizo SUN MICROSYSTEMS a java como “simple, orientado a objetos tipificado estáticamente, compilado, independiente de arquitectura, multi-procesos, con recolector de basura, robusto, seguro y ampliable”.

Así como sus ventajas tiene sus desventajas al utilizarlo:

Ventajas:
·         Es seguro
·         Se aprende con facilidad
·          Es orientada a objetos
·         No bloquea los sistemas
·         Tiene aplicaciones para comunicación en red
·         No tiene aritmética de apuntadores
·         Es independiente de la plataforma
·         Es soportado por Microsoft

Desventajas:
·         Es 10 a 20 veces más lento en ejecución que C++.
·         Es soportado por Microsoft.

La mayoría de los lenguajes el programador siempre es responsable de liberar la memoria, hace que no se sepa con anticipación cuando se va a liberar memoria, esto puede bloquear el sistema cuando no queda memoria disponible. En java quita esa responsabilidad de liberar memoria por medio de un alojamiento de memoria que mantiene una cuenta de numero de referencias a cada apuntador a memoria, el proceso de basura revisa si hay apuntadores a memoria donde es igual a  cero, si existen algunos, el bloque de memoria marcado por el recolector es liberado. Una vez que se compilan los programas en java, se realiza una ejecución la cual se lleva a cabo la carga (este carga en memoria el archivo bytecode cargándose desde la máquina virtual local o de la red), revisión (verifica que no exista violaciones de acceso, operaciones que conduzcan a overflow o underflow que son los parámetros incorrectos, conversiones de datos incorrectos)y ejecución (en él se corren las instrucciones del programa)

Existen tres tipos de escribir los comentarios de java:

·         //comentario de una línea
·         /*comentario de una línea o más líneas*/
·         /**comentario para documentación*/

Elementos de un programa java

Los identificadores

Un identificador empieza con una letra, el carácter de subraya o el signo de pesos $; los demás caracteres pueden contener dígitos, son sensibles a mayúsculas/minúsculas; cualquier identificador que empiece una letra seguida de mas letras o dígitos es valido siempre y cuando no formen parte de las palabras reservadas del lenguaje java.

Variable
$cadena
_numero
nombreUsuario
Nombre_Usuario

Los identificadores pueden tener palabras reservadas, pero a la vez no lo pueden ser, un ejemplo claro es utilizar integer, pero no int.

Variables y valores

Cualquier programa java utiliza variables para almacenar valores, realizar cálculos, modificar valores almacenado, mostrarlos en consola, etc. Una variable almacena un único valor; definiéndose por un nombre un tipo y rango de valores que puede almacenar.

Palabra reservadas:



Las palabras true, false, null se escriben en minúsculas, no existen un operador ziseof; el tamaño y representación de todos los tipos es fija y no es independiente de la implantación, y que las palabras goto y const no se utilizan en java.

TIPOS DE DATOS



Java utiliza 8 tipos de datos llamados primitivos y uno especial, se agrupan en lógicos, textuales, integrales y de punto flotante.

Lógicos
·         El tipo de dato boolean solo tiene dos valores: false y true permitiendo valores lógicos.

Datos textuales

·         Char: se utiliza un numero de 16 bits sin signo con un rango de cero, dichos caracteres se encierran entre apostrofes.
·         String: no es primitivo porque es usado para representar secuencias de caracteres, una cadena de caracteres se encierra entre comillas.

Integrales

·         Los tipos integrales  son: byte, short, int y Long. Utilizan números con signos, representados en forma decimal, octal o hexadecimal
Ahora veremos los cuatro tipos de datos pero de acuerdo a su rango definido por el lenguaje

Datos de punto flotante:

·         Estos son float y doublé, puede incluir el punto decimal, una parte exponente(E), o seguido de la letra F (float) o la letra D (double)

En java todos los valores de punto flotante son doublé, al menos que se indique que sean float.



MODIFICADORES

Dentro de las palabras reservadas java utiliza para modificar el acceso a una variable, clase o función colocándose al inicio de la declaración: public, protected, default, prívate.

·         Public
Da acceso a cualquier objeto externo
-Public int numero  //cualquier objeto puede tener acceso a esta variable.

·         Protected
Da acceso a objetos que forman parte de del mismo paquete, y las subclases.

·         Default
Permite el acceso a objetos que son parte del mismo paquete, sin embargo en los programas no se puede especificar el modificador porque no hay palabra para ello.
-int numero  //acceso default.

·         Prívate
Da acceso solo únicamente a la clase que lo contiene
Prívate int número  //únicamente lo puede accesar la clase.





Paquetes
Java define los paquetes como una forma de organizar las clases, se pueden indicar que las clases en el código fuente van a pertenecer a un paquete empleado la palabra package.
La declaración de paquete si es que las hay desde estar al inicio del código fuente puede estar precedida únicamente de comentarios, los nombres de los archivos no son jerárquicos, separados por puntos, los elementos de los paquetes se escriben siempre con minúsculas.

Arreglos
En java utiliza este término como un objeto, aun cuando el arreglo es de tipos de datos primitivos y  con los demás objetos. Las declaraciones no crean arreglos solo hacen referente a variables que pueden ser usadas para accesar al arreglo:

Se puede declarar arreglos de cualquier tipo de dato;
·         Char letras []
·         Point punto[]

 Se pueden crear arreglos con las siguientes sintaxis:
Char [] letras

Las declaraciones son válidas tanto chair y point. Pero en point solo basta con poner el nombre de cada arreglo

Char letras [], números []
Por este
Char [] letras, números

Para crear los arreglos se usa la palabra clave new:
·         Letras= new char[20] (crea un arreglo de 20 valores)
·         Punto= new  point[100] (no crea los 100 objetos point, porque hay que crearlos por separado para cada objeto).
Punto[0] =new point()
Punto[2]=new point()

ESTRUCTURA DE UN PROGRAMA EN JAVA
Tiene diferentes elementos como: comentarios, definiciones de clase, definiciones de método y las sentencias.

·         Comentario:

El programa siempre ha de comenzar en un comentario, su delimitador de inicio es /* y de su fin es */. Los comentarios suelen ser ignorados por el compilador y solo son utiles para el programador, también nos ayuda a explicar aspectos relevantes del programa haciéndolo más legible, se pueden escribir todo lo que se desee y puede ser una o más líneas.

·         Definición de clase
En la primera línea del programa, define una clase que se llama Hola Mundo, su definición comienza por el carácter {y termina con el carácter}, dicho nombre de la clase lo define el programador.

·         Definición de método
Este se describe después del método de clase, todos los programas java debe incluir un método main (). Este se encarga de indicar las sentencias a realizar cuando se ejecuta el programa.

·         Sentencia
Dentro del método main () se puede incluir una sentencia para mostrar un texto por la consola. Escribiéndose entre comillas dobles para diferenciar  de otros elementos del lenguaje, todas las sentencias terminan con el símbolo punto y coma asi indicando al compilador que ha finalizado una sentencia.

Cuando se ha terminado de editar, es necesario compilarlo y ejecutarlo para comprobar si es correcto, cuando se ha finalizado el proceso de compilación, el compilador indica si existen errores: léxico, sintáctico o semántico.

CLASES
Se puede definir las tareas que se van arealizarse, en el se incluyen las variables necesarias y sus métodos tanto los públicos como privados.
·         Un objeto es la instancia de una clase, y se pueden ejecutar las tareas definidas en la clase, tiene una identidad propia y un estado. 

·         Una subclase es una clase que se deriva de la otra, así heredando  sus variables y métodos.
·         Un constructor es un método utilizado de valores iniciales al objeto al instante de hacerse la instancia.

Un programa java siempre utiliza clases y objetos representados siempre de un esquema simplificado, es la representación abstracta de un conjunto de objetos que comparten los mismos atributos y comportamientos, asi describiendo un tipo de objetos.

Una clase se define por la palabra class seguida del nombre de la clase, este debe empezar en mayúscula.
Terminado la declaración de una clase, se pueden crear los objetos a partir de ella, llamado dicho proceso instanciación.

Elementos de una clase

·         Atributos

La información de un objeto se almacena en atributos; estos pueden ser de tipos primitivos de java o de tipo objeto.
·         Métodos y constructores
Toda clase debe definirse por un método especial denominado constructor para instanciar los objetos de la clase. Para diferenciar entre los atributos del objeto y los identificadores de los parámetros del método constructor se utiliza la palabra this.


Representación de clases y objetos

Una clase se representa como un recuadro dividido en tres partes, el nombre de la clase en la partesuperior, la declaraciónde atributos y la declaración de métodos  ejemplo utilizando un diagrama de clases:



El código java se divide en dos partes la declaración y su definición, esta comienza por la palabra class y después indicando el nombre de la clase. Los objetos se representan como cajas que indican el nombre del objeto, la clase al que pertenecen y el estado del objeto.


Declaración de variables

En el lenguaje java se pueden declarar las variables como campos de datos de una clase, como argumentos de un método o como variables dentro de un bloque.

·         Declaraciones de campos de datos y variables de métodos
La variable es declarada por su tipo y su identificador, el tipo puede ser uno de los tipos primitivos o puede ser una clase. Una declaración de variables de instancia o campos de datos tiene una parte de modificador opcional, un tipo de nombre, un nombre de variable y una inicialización opcional.

Opinión personal

A mi punto de vista java se me hace muy interesante, porque además de ser muy práctico me puede parecer muy útil para el desarrollo de un programa, al realizar este reporte, estoy conociendo sus estructuras y formas de aprender a programar, al descubrir una parte de su integración me lleva a otra, esto me está ayudando a conocer más sobre java, a decir verdad ser autónomos, nos hace tener más curiosidad sobre este tema; voy descubriendo que programar no es solo programar, es más que números y letras, sino que hagamos lo imposible ser posible, a través del conocimiento  de la programación.

Referencias

http://pendientedemigracion.ucm.es/info/tecnomovil/documentos/fjava.pdf
http://www.jorgesanchez.net/programacion/manuales/Java.pdf
http://www3.uji.es/~belfern/pdidoc/IX26/Documentos/introJava.pdf

 http://profesores.elo.utfsm.cl/~agv/elo329/1s09/lectures/JavaSyntax.pdf

sábado, 23 de mayo de 2015

ENTORNO DE DESARROLLO INTEGRADO IDE



IDE

IDE proviene de sus siglas en inglés: INTEGRATED DEBELOPMENT ENVIRONMENT,  en español significa: ENTORNO DE DESARROLLO INTEGRADO
Los primeros entornos de desarrollo integrado  nace a principios de los años 70 su objetivo era de ganar tiempo y fiabilidad de los proyectos de software, de esta forma ayudan a los programadores proporcionando una misma interfaz gráfica (experimentos de control por medio de aplicaciones graficas), reduciendo el tiempo  y un aumento de eficiencia.
Así la mayoría de las personas aprender a programar de la forma más simple, como al utilizar un editor de texto básico, un compilador-depurador, pero al final terminan usando una IDE.
Se hace referente como ENTORNO DE DESARROLLO INTEGRADO (IDE), más como un tipo de software (programa basado en materiales de programación definiéndose como un programa de aplicación), así teniendo una estructura como:

·        Compilador (proceso de traduccion)
Es un traductor del código fuente, así traduciéndolo a un lenguaje más práctico para las maquinas
·        Depurador=debugger
Es un botón de ejecución y trazado, puntos de ruptura y el seguimiento de variables (prueba y elimina los posibles errores que haya).
·        Editor de código de programación (código fuente)
En el resalta y colorea la sintaxis, con la función de autocompletar código, ayuda y listado de parámetros empleados en las funciones y los métodos de clase. De manera automática inserta paréntesis, corchetes, tabulación y los espacios en blanco
·        Constructor de interfaz gráfico (GUI:graphical user interface )
Nos ayuda a programar en varios lenguajes con un mismo IDE, ya que nos puede acceder a innumerables bibliotecas y plugins así aumenta las opciones de nuestros programas; así nos permite más interacción entre la aplicación y el usuariO, utilizando un conjunto de imagenes y obejetos graficos.
INTERPRETE
 Analiza y ejecuta otros programas pero en diferente nivel.

Un IDE  está conformado por un lenguaje de programación, en la actualidad las últimas versiones de las IDES son compatibles con varios lenguajes (eclipse, Microsoft visual studio, netbeans) para que se puede debe instalarse plugins adicionales.
El primer IDE que fue inventado solo estaba basado en una consola de comandos (eso era a principios de los años 70, ya que después fueron introducidos en los años 90 lo que fue los sistemas operativos que incluía una interfaz gráfica), pero en la actualidad son compatibles con el uso de la gestión de archivos, la compilación, depuración de los IDE antiguos. Así el primer IDE fue llamado maestro para su instalación requirió alrededor de 2200 programadores  del todo el mundo.
Cualquier tipo de lenguaje de programación para utilizar la IDE siempre dependerá del programador y de acuerdo  a lo que vaya a utilizar para la decodificación de aplicaciones y también teniendo el tipo de licencia con la que queremos trabajar.

Para esto es necesario que una IDE debe de tener las siguientes características:
·        * Soporte para diversos lenguajes de programación
·        *La integración con sistemas de control de versiones diferentes
·        *El reconocimiento de sintaxis
·        *Extensiones y componentes para IDE
·        *Manual de usuarios y ayuda
·        *Importar y exportar proyectos
·        *Múltiples idiomas
·        *Integración con framework populares
·        *multiplataforma


Esta puede ser una muestra de una IDE que cuenta con símbolos gráficos y las capas de traducción de los símbolos gráficos al lenguaje de máquina, de esa forma pueden incluir varios niveles de traducción de intermedios (así formando un diagrama de bloques a solución desarrollada):



LAS FUNCIONES QUE TIENE UNA IDE ES:
·    *Herramientas de concepción visual para la creación y manipulación de    componentes visuales
·       *  Editor de código o texto: brillo de sintaxis
    - Marcar región
–Búsqueda y reemplazo
–Copiar, cortar y pegar
–Formatear
–Deshacer y rehacer
–Importar
·        * La identificación automática de código.
·        *Auto completado de código, atributos y métodos de clases
·        *Asistentes y utilidades de gestión y generación de códigos
·        *Archivos fuente en unas carpetas y compilados en otras
·        *Compilación de proyectos complejos en un solo paso
·    *Control de versiones: tener un único almacén de archivos compartidos por parte de todos los colaboradores del proyecto, así cuando se dé un error tenga un auto recuperación a un estado anterior.
   -Versión ALFA:  primera version del programa
   -Versión BETA:version completa del programa
    -Versión RC:version definitva del programa o producto final
      *   Un cliente
·         * Soporta los cambios de varios usuario de manera simultanea
·        * Generador de documentación integrado
·       *  La ayuda para la construcción de interfaces graficas de usuario

Las ventajas que nos pueden favorecer los IDE pueden ser:
·        -Funciones para renombrar variables y funciones
·       -Formateo de código
·        -Es más ágil y eficaz para los usuarios que no tienen experiencia para el manejo de consola
·      -  Se pude realizar proyectos para la visualización de archivos en manera gráfica.
·        -Trae por medio por default  un navegador web interno, esto es para comprobación dentro de las IDE, aunque no es muy recomendable.
·        -Trae herramientas como refactoring O REFACTORIZACION (para la extracción de una porción de código a un método nuevo o restructiracion de u codigo fuente dela misma forma que se puede aleterar su estructura solo interna mas no externa.
·        -Trae warnings  y errores de sintaxis que nos muestra en la pantalla, son advertencias de que algo no funciona.
·        -Pueden ser aplicaciones por si solas o  parte de aplicaciones que ya existen.
·        -Permite la introducción automáticamente tabulaciones y espaciados para aumentar la legibilidad.
·        -Se puede administrar las interfaces del usuario (menú y barra de herramientas) y las configuraciones de usuario.

Ahora veremos lo que es la interacción del usuario con un IDE por medio de un diagrama de flujo:



Podemos observar que los pasos que se deben tomar en cuenta de manera específica lo que es el diseño de una estructura de control ya que de ahí depende lo que es la generación de código, el lenguaje y la traducción de código.
A continuación se muestra  algunos IDE donde se describe las características y el tipo de software que se emplea:
·         NETBEANS
El software que se emplea es de manera libre, también es expandible mediante plugins facilitando el diseño gráfico asociado a las     aplicaciones de java; su mayor ventaja es que  tienen un código abierto y gratuito y se puede trabajar con java, PHP, C++

·     







            ECLIPSE
Se utiliza un software libre, es uno de los más utilizados en java, a nivel profesional, ya que su estructura básica puede expandirse mediante la instalación de plugins para los que necesitemos en eclipse.
·         


        BLUEJ
 Se utiliza un software libre, se utiliza en el aprendizaje de java y no tiene uso a nivel profesional, es un lenguaje sencillo porque incluye algunas funciones algo complejas y prácticas en la POO; cuenta con un compilador, máquina virtual y un depurador para la escritura de programas


 



·        JBUILDER
Se utiliza un software comercial, nos permite desarrollos gráficos, se pueden tener versiones de prueba o gratuitas en la web.


·         



    JCREATOR
Se utiliza un software comercial, es uno de los más rápidos y eficiente, esto se debe a que puede omitir herramientas para desarrollos gráficos, y está escrito en C++. Este es ofrecido por la compañía XINOX SOFTWARE, una es gratuita LE y la de pago es PRO.







·        MICROSOFT VISUAL  STUDIO   Es un producto gratuito, soporta varios lenguajes de programación como visual BASIC, visual c++, visual c#, visual j#.





Ahora conoceremos los lenguajes que se pueden utilizar y el tipo de sistema en que pueden operar algunos ya mencionados anteriormente:

GRATUITOS:
 
DE USO COMERCIAL (DE PAGO):

 La mayoría de los IDE siempre han ofrecido trabajar con diferentes lenguajes de programación esto pueden ser: visual Basic, Delphi, c#, java, python, c++, esto nos ayuda a que los lenguajes de programación empleados se utiliza en forma interactiva, ya que no es necesario trabajar con archivos de texto.

DIFERENCIAS ENTRE SUS VERSIONES  Y EN TODAS LAS IDE
Algunas diferencias puede ser las herramientas de líneas de comando, así nos puede dar soluciones comerciales y no comerciales, pero puede crear incompatibilidad debido a que su diseño es diferente; algunos son fáciles de programar en algunos son algo complicados. Los IDE que son gratuitos son sencillos y básicos, y los que son de pago se pueden utilizar para la creación de aplicaciones y trae características más complejas y elementales. Otra diferencia que pude ser es que no todos se pueden ejecutar con el mismo sistema operativo; así como los diferentes lenguajes de programación empleados

OPINION DE LOS USUARIOS
El cliente siempre tiene la razón a la hora de utilizar un producto, así es como los usuarios describen sus opiniones al utilizar una IDE en especial, ya sea que lo utilizan desde hace tiempo y aunque salgan actuales o mejores no cambian de IDE, ya que describen que son programas más accesibles porque facilitan el trabajo para que podamos programar; esto les ha ayudado como para las ediciones de código o el diseñador de GUI que les resulta más práctico y eficaz, así como la refactorización. Dicen que el mejor que se haya inventado es el netbeans, esto es porque ya lo conocen tanto como la práctica y los atajos que se empiezan a familiarizar rápido con la IDE y así se vuelven más eficientes. Y por otra parte ocupan lo que es eclipse  solo para sistema android.

OPINION PERSONAL: QUE IDE SE ME PODRIA FACILITAR MAS
Con base a lo investigado y analizado paso a paso sobre una IDE, se me facilitaría mas NETBEANS, un punto importantes que es de código abierto y gratuito, también no solo se emplea para versiones de escritorio, sino que también existe para las aplicaciones web o de dispositivos móviles; se me hace muy interesante poder trabajar en esta IDE, otro favorecimiento mas es que puede trabajar con diferentes sistemas operativos ya sea: Linux, Mac os, Windows, así como los lenguajes de java, PHP, HTML5, GROOVY, C/C++. Da soporte a todas las novedades de java, ya que también trae asistentes para que se nos facilite aún más para la creación y configuración de proyectos en el que nosotros queremos trabajar, hay ventajas de poder manejar diferentes ventanas con el código que se esté empleando , es practico porque podemos personalizar su estructura, trae herramientas para depurar errores, para la optimización de códigos, el acceso a base de datos permitiendo la conexión de diferentes gestores de base de datos, trae integrado varios servidores de aplicaciones y es extensible si se le agregan plugins adicionales.
REFERENCIAS BILBIOGRAFICAS:
 http://www.ie.itcr.ac.cr/einteriano/control/Laboratorio/Proyectos/2010_IDE/IDE_Informe_Final.pdf
 http://apuntesprimerodaw.wikispaces.com/file/view/Tema+3.pdf