martes, 2 de agosto de 2016

Introducción a Java: Primeros pasos

Introducción a Java

Java se origina en 1991 como resultado de un proyecto de investigación llamado OAK. La idea era desarrollar un lenguaje de programación que se pudiera usar en diferentes dispositivos. 
Como resultado de estas investigaciones, se descubrió que el nuevo lenguaje se podía usar para desarrollar componentes Web que posteriormente se pasaron a llamar Applets.

Los conceptos clave de Java son:

Orientado a objetos
Java es un lenguaje orientado a objetos (Object Oriented Programming). Se basa en la creación e interacción de objetos y es distinto a la programación prodedural (o programación por procedimientos) la cual se fundamenta en la programación por pasos. 
La OOP se centra en la creación e interacción de Objetos.

Distribuido
Se dice que Java es distribuido debido a que el lenguaje provee soporte a tecnologías distribuidas como RIM (Remote Method Invocation) y CORBA (Common Object Request Broker Architecture)


Simple
Se dice que Java es simple por que no usa algunas prácticas que suelen ser complejas en otros lenguajes. Por ejemplo, Java no permite manipular punteros a ubicaciones en memoria (como si sucede en C / C++). En su lugar se manipulan objetos mediante el uso de referencias a dichos objetos. Java usa un componente llamado "Garbage Collector" que permite controlar y monitorear objetos. 
También se usa tipo de datos Booleano (Falso o Verdadero, 1 o 0)

Multiproceso/Multitarea

Java es un lenguaje multitarea debido a que es posible ejecutar varias tareas en simultaneo mediante el uso eficiente de recursos.


Seguridad

Java es un lenguaje seguro debido a que protege los programas de ataques mediante algunas técnicas como prohibición de la manipulación de memoria usando punteros, o la prohibición de programas a escribir en el Disco del computador. Se verifica que los programas Java contienen código válido y se soportan fírmas digitales.

Ejecución de programas independientes de plataformaUn compilador es una aplicación que convierte un algoritmo en un código específico de CPU llamado "Machine Code".

Los programas indepedientes de plataforma se llaman Binary Files y se combinan con otros archivos como librerías (u otro código ya escrito). Se usan vinculadores (linkers) ya existentes del sistema operativo (ejemplo Windows, Solaris o Linux) para generar un ejecutable.


Creación de Bytecode
Los ejecutables Java son creados mediante el ingreso de un código java a un compilador. El resultado es un "bytecode platform-independant" el cual puede ser usado en diferentes sistemas operativos, normalmente con muy pocos cambios o con ninguno.

Para esto, Java usa una Virtual Machine (Java Virtual Machine), el cual es un programa que entiende el bytecode y lo ejecuta en alguna plataforma particular



La Java Virtual Machine (JVM) interpreta el código, carga clases y ejecuta los programas Java. Para esto, JVM usa librerías Java estándares (Java Class Libraries) y requiere un JRE (Java Runtime Environment).

Los grupos de producto de la tecnología Java son los siguientes:
  • Java EE (Enterprise Edition) Provee soluciones y herramientas orientadas al desarrollo en empresas (Server-Side y Client-Side). Por ejemplo, soluciones de eCommerce y
  •  Java SE (Standard Edition) Provee soluciones y herramientas orientadas al desarrollo de Applets y aplicaciones Standalone en Desktop
  •  Java ME (Micro Edition) Provee soluciones y herramientas orientadas al desarrollo de aplicaciones en dispositivos de consumo, (Ejemplo, Celulares, TVs, etc).

El Java SE Development Kit (SDK) contiene:

JRE
Consite en el Java Virtual Machine y las Class Libraries para la plataforma en la cual se va a desarrollar el proyecto. También incluye el compilador Java y librerías, así como también documentación adicional.

También se incluyen ejemplos, utilidades para creación de Archives, (ejemplo, JAR files) y utilidades para hacer debugging (depuración) de programas Java.


¿Que es un digo fuente?
Son las instrucciones del programa que se escriben en la sintaxis propia del lenguaje. 

¿Que es un compilador?
Toma las instrucciones del codigo fuente y las traduce para que el computador las entienda.

Informática:
Viene de la palabra "información"

Lenguajes más conocidos usados en Informática:

Código de maquina
Assembler
A
B
C
C++
Java
.Net

 Problema que resuelve Java:

Anteriormente había que escribir codigo fuente para cada plataforma:

Codigo fuente -> Compilador (El compilador es asociado a un lenguaje y una plataforma (ej. Win 32b y Win64b)) -> Ejecutable.

Con Java, el compilador entrega un archivo intermedio (bytecode)
que debe ser pasado por un JVM. (Java Virtual Machine). El JVM traduce el bytecode a la plataforma y genera el ejecutable.

Eso quiere decir, que el cliente DEBE tener JVM de su plataforma, para que el ejecutable generado en Java, pueda ser ejecutado en cualquier plataforma.

Se dice que Microsoft comienza a tener una serie de disputas legales con Sun Microsystems, debido a que JVM venía anteriormente "incluido" en el SO de Microsoft. Sun Microsystems gana esa disputa legal, y separa el JVM. Por esta razón, Microsoft desarrolla .Net.

Podríamos decir que .Net es el equivalente a JVM; en dónde el lenguaje C# es equivalente a Java.

Java es un lenguaje muy grande. Para su estudio, se recomiendan las especializaciones. Por ejemplo:

- Java Web
- Java Mobile
- Java Base de datos
- etc.

Diferencias y usos en Aplicaciones, Aplicaciones Web,  Sitios Web, Programas, Videojuegos, Aplicaciones empresariales, etc.

Las corporaciones grandes requieren programas/aplicaciones grandes, generalmente sin interfáces gráficas de otros propósitos (ejemplo pantallas similares a videojuegos, 3d, etc). 

Se suelen usar Aplicaciones web para manejo de información en grandes volúmenes. Para estos casos, una buena opción es Java.

Sin embargo, un sitio web no es considerado un "programa grande". Si bien es posible manejar grandes volumenes de información, generalmente no son críticos.

Para estos casos, una buena opción, es PHP.

Para aplicaciones de VideoJuegos, la mejor opción es .NET (C#) ya que esta tecnología tiene mucho mejor manejo y comunicación de recursos de perífericos (ejemplo, placa de video, de audio, etc). 
Esto permite que al ejecutarse, los videojuegos sean más rápidos.

Cuando tenemos un conjunto de instrucciones escritas para un propósito, que corren en una computadora, se considera un Programa.

Puede darse el caso que se corran programas para un mismo propósito en varias computadoras en red, administradas por un servidor. Eso se considera una aplicación de red.

Existen aplicaciones empresariales. Para que se pueda considerar empresarial, debe soportar que muchos usuarios puedan acceder simultaneamente a un sistema para escribir o leer datos (Concurrencia)

La aplicación empresarial también debe soportar administración de políticas de seguridad, para permitir acceder cierto típo de usuarios, etc (Seguridad)


Otras características de Java:
  • JVM tiene la inteligencia suficiente para determinar si la información que se está escribiendo en Memoria RAM, sigue usandose o no. Si esta información no se usa más, entonces libera la RAM. (Esto no sucedía en C++,  a no ser que incluya alguna función para ese propósito)
  • Garbage Colector es una tecnología de JVM que se ejecuta en caso de que se llene toda la memoria, revisa posición por posición y permite liberar recursos.

Qué se necesita para usar Java?

Para desarrollar en Java se necesita (Developer)
  • Compilador Java
  • JVM

El desarrollador estándar puede usar Java Development Kit (JDK)
Para aplicaciones empresariales, se usa Java Enterprise Edition (JEE)
Para aplicaciones mobiles, se usa Java Mobile Edition (JEE) aunque está siendo reemplazada por Android (incluye un JVM y un compilador para Android)

Para USAR Java (Usuario final):
  • Ejecutable Java
  • JVM
El usuario FINAL descarga el Java Runtime Edition (JRE)


Como desarrolladores, es recomendable comenzar a escribir el código Java usando IDEs (Integrated Development Environment)

Hay un paquete que incluye el JDK y también incluye Eclipse (es un IDE desarrollado por IBM).

Algunos IDEs:

- Netbeans (IDE para Java, creado en Java. Mayoría de plug-ins, library, frameworks son gratis y simples)
- Eclipse (Usado en ámbito corporativo. Algunos plug-ins y libraries son pagos)

Plug-in:
Es un complemento, pero es un programa. No es código.

Libraries: 
Codigo fuente que sirve para complementar funciones o resolver problemas, se integran al código que uno esté desarrollando.

Framework:
Es un programa que permite agregar complementos de código que he desarrollado;

Descargar e instalar Java:

Al ingresar al sitio oficial

http://www.oracle.com/technetwork/es/java/javase/downloads/index.html




Al hacer clic en la 2da opción, es posible instalar Netbeans + el JDK.

No hay comentarios:

Publicar un comentario