Java
De MasFoxPro Wiki
Tabla de contenidos |
[editar] Java
Pros
- Tiene el soporte de SUN y una gran comunidad
- Multiplataforma
- Corre en dispositivos móviles
- Tiene entornos RAD bastante completos
- También existen varios frameworks para desarrollo rápido
- Aplicaciones para web y para escritorio.
- Tiene licencia de codigo abierto GPL 2 desde noviembre de 2006.
Contras
- Aplicaciones bastante pesadas
- Sintaxis
Aclaro que estas son apreciaciones muy personales que pudieran estar erradas, agradezco cualquier corrección.
Y si hablamos de sintaxis xBase me ha llamado bastante la atención Xailer que, aunque no le llega a VFP, me he llevado una grata sorpresa viendo sus tutoriales .
Saludos
-- Nelson Rosales - Xpmen 22:17 21 mar 2007 (PDT)
[editar] Ejemplos de Acceso a Datos
import java.sql.*;
public class conexionMySql{
static String dbName = “databaseName”;
static String dbUser = “user”;
static String dbPass = “pass”;
static String dbUrl = “jdbc:mysql://localhost/” + dbName;
public static void main(String[] args) {
Connection connection = null;
try{
Class.forName(”com.mysql.jdbc.Driver”).newInstance();
connection =
DriverManager.getConnection(dbUrl, dbUser, dbPass);
if (connection != null) {
Statement stmt = connection.createStatement();
ResultSet result =
stmt.executeQuery(”SELECT * FROM empleados”);
while(res.next()) {
String id = result.getString(”id”);
String nombre = result.getString(”nombre”);
float salario = result.getFloat(”salario”);
System.out.println(id +” t “+name+” t “+salario);
}
result.close();
stmt.close();
connection.close();
}
}
catch(SQLException ex) {
System.out.println(”Error connecting: “+ex);
}
catch(ClassNotFoundException ex) {
System.out.println(”Connector not found: “+ex);
}
}
}
Tomado de : http://ricardofutami.wordpress.com
-- Nelson Rosales - --Xpmen 15:06 23 mar 2007 (PDT)
[editar] JAVA con NetBeans
Estoy iniciando el estudio sistemático de JAVA con el IDE de NetBeans. Lo conocí a través de los comentarios de Ricardo Fynn en el foro de VFP en español en UT. Apenas he comenzado con el tutorial "GUI Building in NetBeans IDE 5.0". Hasta ahora el IDE me ha parecido superior al de VS2005 y al de VFP. Por ejemplo el "anchor" de los objetos en el formulario es automático, la alineación también. Hay múltiples tutoriales y video-tutoriales, aunque todo parece estar en inglés.
¿Por qué estoy siguiendo esta opción?. Varias razones:
- El software libre y gratuito.
- Es multiplataforma.
- En casi todas las universidades se enseña JAVA y por tanto es de amplia difusión y aumentará.
- Me parece (NetBeans) muy trabajado y muy avanzado.
- Hay un foro con mucha actividad (unos 100 mensajes diarios) aunque parece ser solo en inglés.
- Entre elegir VS2005 que no corre en Linux, ni en Mac y que depende de las decisiones de un solo propietario y elegir NetBeans 5.5 que corre en Windows, Linux, Mac, Móviles, y depende de 100 patrocinadores aunque el principal sea SUN, me quedo con la segunda opción que me parece menos sujeta a los vaivenes del mercado.
- La abundancia de información sobre JAVA es enorme.
Los inconvenientes que le veo:
- Que la curva de aprendizaje va a ser muy dura para mi que soy un programador de VFP que ha utilizado poco la OOP
- La documentación y los foros parecen ser exclusivamente en inglés.
Hasta ahora esta es mi alternativa y mis razones, quizás esté equivocado en algunas o quizás no. El tiempo lo dirá.
Saludos a todos Manuel Tovar (Barranquilla, Colombia)
[editar] Examinando la Tecnología de Java
De acuerdo con los objetivos del diseño de los creadores de Java este cumple con ser " un lenguaje de programación sencillo, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portátil, de gran rendimiento, multitarea y dinámico ".
De acuerdo a éstos objetivos, podemos ver lo que tenían en mente sus creadores, y que en la actualidad pueden aún aplicarse.
Simple
Java es simple porque elimina la complejidad de los lenguajes de programación como el C y el C++. Java incorpora nuevas características como un recolector automático de elementos no utilizados y elimina aspectos confusos y poco utilizados del C++ como la sobrecarga de operadores. También por supuesto, elimina el manejo difícil y complejo de los apuntadores y su aritmética de apuntadores.
Incorpora un conjunto de características ya utilizadas en la historia de los lenguajes de programación como son:
Las clases que vienen de C++ y SmallTalk pero limitadas a herencia simple.
Las interfaces que proceden de Objetive-C y proporcionan a Java herencia múltiple de interfaces.
Los paquetes de clases viene de Modula
La concurrencia y la multitarea que estaban ya en varios lenguajes, Java lo incorpora.
El control de excepciones del Modula-3
Vínculos dinámicos y la recogida automática de elementos no utilizados proviene del Lisp.
Orientado a Objetos
Java es un lenguaje Orientado a Objetos porque éste paradigma de la programación es una forma de desarrollar software describiendo los problemas mediante el uso de elementos u objetos de el espacio del problema y no mediante un conjunto de pasos secuenciales que se ejecutan en la computadora. Un buen diseño Orientado a Objetos produce componentes reutilizables , extensibles y sostenibles.
Estos componentes de software son lo bastante flexibles para controlar los cambios que se puedan producir en el ambiente a lo largo del tiempo, porque su trabajo principal es el de intercambiar mensajes entre sí.
Los API Core de Java son una colección de éstos componentes , previamente creados, denominados bibliotecas de clases. El programador no necesita crear todo de nuevo, simplemente utiliza éstas bibliotecas estándar que han ido evolucionando a lo largo del tiempo, obteniendo mas componentes con una nueva versión o liberación de Java.
Distribuido
Java es distribuido porque además de que puede acceder a objetos distribuidos en distintas computadoras u equipos mediante protocolos estándar basados en TCP/IP como HTTP, con las últimas versiones de Java, se pueden invocar métodos en un equipo remoto tan fácil e invisiblemente como podría hacerse en su mismo equipo o espacio de ejecución mediante protocolos comunes como CORBA (que es una arquitectura intermediaria para solicitar objetos comunes) y RMI (que son invocaciones a métodos remotos), además de los recién incorporados servicios Web.
Para cada protocolo de comunicación, Java se encarga de toda la conversión y transporte de manera automática.
Interpretado
Java es un lenguaje interpretado, porque sus códigos de programas fuente en lugar de ser compilados y traducidos en ejecutables nativos, son traducidos en códigos de bytes (byte code) no asociados a una plataforma específica.
Este byte code es transferido a cualquier plataforma que tenga Java Runtime Environment (JRE), y que consiste en una Máquina Virtual de Java (JVM) y de éste modo pueden ejecutarse sin volver a compilarlos (Compile una vez y Ejecútelo n veces).
Puede pensarse que Java es lento, sin embargo los códigos neutrales de bytes contienen información adicional que puede utilizarse para optimizar la ejecución en tiempo de ejecución, según decisiones que no pueden realizarse en tiempo de compilación.
Robusto
La robustez es la fiabilidad de un programa. Java es fiable o robusto porque incorpora las siguientes características:
Es un lenguaje "tipeado" o basado en tipos. El compilador y cargador de clases aseguran la corrección de todas las llamadas de método, lo que evita las diferencias implícitas entre tipos y las incompatibilidades entre versiones.
No tiene apuntadores o punteros. En Java hay referencias en lugar de apuntadores, y no se pueden mover una referencia para manipular directamente espacios de memoria. Esto evita que la memoria se corrompe accidentalmente , como por ejemplo pasarse el final de una pila, etc.
Java tiene un colector automático de basura (garbage collector). Los programadores pueden olvidarse de liberar memoria y con Java ya no tienen que preocuparse por decidir las partes de memoria que deben liberarse ya que el colector lo hace automáticamente.
En Java se fomenta el uso de interfaces en lugar de clases. Las interfaces definen un conjunto de comportamientos (métodos). En lugar de pasar clases, se pasan interfaces, ocultando así las implementaciones. Si la implementación cambia como sucede a menudo, y no se tiene la nueva clase que implementa la vieja interfaz, todo lo demás funcionará perfectamente.
Seguro
El sistema de Java tiene ciertas políticas que evitan se puedan codificar virus con este lenguaje. Existen muchas restricciones, especialmente para los applets, que limitan lo que se puede y no puede hacer con los recursos críticos de una computadora y poner los sistemas en riesgo.
Java no permite el manejo de apuntadores, y evita que un programa malicioso corrompa los espacios de memoria.
En cuanto a la ejecución de programas Java integra funciones de seguridad: el verificador de código de bit, el cargador de clases y el gestor de seguridad. Esto garantiza que el código no seguro realice operaciones seguras, como leer el disco duro. Otro aspecto de la seguridad recientemente incorporado a Java tiene que ver con la autentificación, autorización y encriptación para proteger la privacidad y asegurar la integridad de los datos.
De arquitectura neutral
Para establecer Java como parte integral de la Word Wide Web, el compilador Java compila su código a un archivo objeto de formato independiente de la arquitectura de la máquina en que se ejecutará. Cualquier máquina que tenga el sistema de ejecución (JRE) puede ejecutar ese código objeto, sin importar en modo alguno la máquina en que ha sido generado. Actualmente existen sistemas run-time para Solaris 2.x, SunOs 4.1.x, Windows 95, Windows NT, Linux, Irix, Aix, Mac, Apple y ya hay grupos de desarrollo trabajando en la portabilidad a otras plataformas.
Si una compañía desarrolla nuevo hardware, no tiene que desechar sus inversiones en software, sino que sólo debe colocar un JRE en la nueva plataforma. También si una empresa desarrolla hardware completamente nuevo o un nuevo sistema operativo, no tienen que comenzar desde cero sin ningún software para el producto, con tan solo agregar el JRE, a la plataforma recién diseñada puede ejecutar todos los programas de Java existentes.
Portátil
Como el código compilado de Java (conocido como byte code) o que es un código de bytes de plataforma neutral, es interpretado, y un programa compilado de Java puede ser utilizado por cualquier computadora que tenga implementado el interprete de Java ( JRE ). Esto último hace honor a la promesa de sus desarrolladores sintetizado en las frases " Escribir una vez, Ejecutarse en cualquier sitio" (EE).
De esta manera, es posible confiarse en que todas las implementaciones numéricas en tamaño , orden de byte y manipulación son generales o neutrales, y estas están definidas en la documentación de Java en ( http://java.sun.com/docs/books/jls/ ) Language Specification.
Multitarea
Java es un lenguaje que soporta multiples threads ( hilos , procesos, tareas ) , esto es, Java es un lenguaje que puede ejecutar diferentes líneas de código al mismo tiempo.
Los programas multitarea comparten memoria y deben tener comunicación entre los subprocesos. Java tiene bibliotecas estándar con muchos recursos para ayudar al programador en este proceso de comunicación , asegurando la seguridad de los subprocesos.
Creo que son buenas razones para pasarse a JAVA en caso que ya no este nuestro querido zorro.
att: Foxbey
[editar] Enlaces útiles
Para los interesados en programar en JAVA pudiera ser interesante este sitio VFP to JAVA [1] , que aunque está en portugués puede aportar valiosa información.
Saludos
-- Amby
