Beruflich Dokumente
Kultur Dokumente
Mejoras de rendimiento.
Mejor soporte para MySQL con extensin completamente
reescrita.
Mejor soporte a XML ( XPath, DOM... ).
Soporte nativo para SQLite.
Soporte integrado para SOAP.
Iteradores de datos.
Excepciones de errores.
PHP 6 [editar]
Est previsto el lanzamiento en breve de la rama 6 de PHP, cuando se
lance esta nueva versin, quedarn solo dos ramas activas en
desarrollo (PHP 5 y 6) pues se ha comunicado que PHP 4 ha sido
discontinuado desde el 13 de Julio de 2007.
Las diferencias que encontraremos frente a PHP 5.* son:
Soportar Unicode
Limpieza de funcionalidades obsoletas como register_globals,
safe_mode...
PECL
Mejoras en orientacin a objetos
Es un lenguaje multiplataforma.
Capacidad de conexin con la mayora de los manejadores de
base de datos que se utilizan en la actualidad, destaca su
conectividad con MySQL
Historia [editar]
Versin
Fecha
Cambios ms importantes
8 de Junio de 1995
Oficialmente llamado
"Herramientas personales de
trabajo (PHP Tools)". Es el primer
uso del nombre "PHP".
16 de Abril de 1996
PHP 3.0
6 de Junio de 1998
PHP 4.0
22 de Mayo de 2000
PHP 1.0
PHP
Version 2
(PHP/FI)
PHP 4.1
10 de Diciembre de
2001
PHP 4.2
22 de Abril de 2002
Se deshabilitan register_globals
por defecto
PHP 4.3
27 de Diciembre de
2002
PHP 4.4
11 de Julio de 2005
PHP 5.0
13 de Julio de 2004
PHP 5.1
25 de Noviembre de
2005
PHP 5.2
2 de Noviembre de
2006
comunicado de prensa
o
o
o
o
o
o
o
o
o
o
o
o
[6]
Adems de los cambios en el lenguaje, con el paso de los aos se han
efectuado muchos ms cambios dramticos en la librera de clases de
Java (Java class library) que ha crecido de unos pocos cientos de
clases en JDK 1.0 hasta ms de tres mil en J2SE 5.0. APIs
completamente nuevas, como Swing y Java2D, han sido introducidas
y muchos de los mtodos y clases originales de JDK 1.0 estn
obsoletas.
Filosofa [editar]
El lenguaje Java se cre con cinco objetivos principales:
1. Debera usar la metodologa de la programacin orientada a
objetos.
2. Debera permitir la ejecucin de un mismo programa en
mltiples sistemas operativos.
3. Debera incluir por defecto soporte para trabajo en red.
4. Debera disearse para ejecutar cdigo en sistemas remotos de
forma segura.
5. Debera ser fcil de usar y tomar lo mejor de otros lenguajes
orientados a objetos, como C++.
Para conseguir la ejecucin de cdigo 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 [editar]
La primera caracterstica, orientado a objetos (OO), se refiere a un
mtodo de programacin y al diseo del lenguaje. Aunque hay
muchas interpretaciones para OO, una primera idea es disear el
software de forma que los distintos tipos de datos que use estn
unidos a sus operaciones. As, los datos y el cdigo (funciones o
mtodos) se combinan en entidades llamadas objetos. Un objeto
puede verse como un paquete que contiene el comportamiento (el
cdigo) 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 cdigo que
opera sobre los mismos, o viceversa. Esta separacin en objetos
coherentes e independientes ofrece una base ms estable para el
diseo de un sistema software. El objetivo es hacer que grandes
proyectos sean fciles de gestionar y manejar, mejorando como
consecuencia su calidad y reduciendo el nmero de proyectos fallidos.
Otra de las grandes promesas de la programacin orientada a objetos
es la creacin de entidades ms genricas (objetos) que permitan la
reutilizacin del software entre proyectos, una de las premisas
fundamentales de la Ingeniera del Software. Un objeto genrico
El lenguaje [editar]
Applets [editar]
Las applets de Java son programas incrustados en otras aplicaciones,
normalmente una pgina Web que se muestra en un navegador.
// Hola.java
Servlets [editar]
Los servlets son componentes de la parte del servidor de Java EE,
encargados de generar respuestas a las peticiones recibidas de los
clientes.
// Hola.java
import java.io.*;
import javax.servlet.*;
public class Hola extends GenericServlet {
public void service(ServletRequest request, ServletResponse
response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.println("Hola, mundo!");
pw.close();
}
}
Las sentencias import indican al compilador de Java la inclusin de
todas las clases pblicas e interfaces de los paquetes java.io y
javax.servlet en la compilacin.
La clase Hola extiende (extends), es heredera de la clase
GenericServlet. Esta clase proporciona la interfaz para que el
servidor le pase las peticiones al servlet y el mecanismo para
controlar el ciclo de vida del servlet.
La clase Hola sobrecarga el mtodo service(ServletRequest,
ServletResponse), definido por la interfaz servlet para acceder al
manejador de la peticin de servicio. El mtodo service() recibe un
objeto de tipo ServletRequest que contiene la peticin del cliente y
un objeto de tipo ServletResponse, usado para generar la respuesta
que se devuelve al cliente. El mtodo service() puede lanzar (throws)
excepciones de tipo ServletException e IOException si ocurre algn
tipo de anomala.
El mtodo setContentType(String) en el objeto respuesta establece
el tipo de contenido MIME a "text/html", para indicar al cliente que la
respuesta a su peticin es una pgina con formato HTML. El mtodo
getWriter() del objeto respuesta devuelve un objeto de tipo
PrintWriter, usado como una tubera por la que viajarn los datos al
cliente. El mtodo println(String) escribe la cadena "Hola, mundo!"
en la respuesta y finalmente se llama al mtodo close() para cerrar
la conexin, que hace que los datos escritos en la tubera o stream
sean devueltos al cliente.
Recursos [editar]
JRE [editar]
El JRE (Java Runtime Environment, o Entorno en Tiempo de Ejecucin
de Java) es el software necesario para ejecutar cualquier aplicacin
desarrollada para la plataforma Java. El usuario final usa el JRE como
parte de paquetes software o plugins (o conectores) en un navegador
Web. Sun ofrece tambin el SDK de Java 2, o JDK (Java Development
Kit) en cuyo seno reside el JRE, e incluye herramientas como el
compilador de Java, Javadoc para generar documentacin o el
depurador. Puede tambin obtenerse como un paquete
independiente, y puede considerarse como el entorno necesario para
ejecutar una aplicacin Java, mientras que un desarrollador debe
adems contar con otras facilidades que ofrece el JDK.
Componentes [editar]
APIs [editar]
Sun define tres plataformas en un intento por cubrir distintos
entornos de aplicacin. As, ha distribuido muchas de sus APIs
(Application Program Interface) de forma que pertenezcan a cada una
de las plataformas:
Notar que este artculo fue escrito antes de la liberacin del cdigo
fuente de Java. En la actualidad la postura de la Free Software
Foundation y de Richard Stallman han cambiado, mostrandose
partidarios ambos por su uso en software libre.
Software libre basado en Java [editar]
Azureus
Limewire
iRATE Radio
Java syntax
Java keywords
Java virtual machine
Java platform
Java applet
Java Platform, Standard Edition (Java SE, J2SE)
JavaOS
Comparison of Java and C++
Comparison of C# and Java
Java User Group
Listados [editar]
Referencias [editar]
Notas [editar]
1. Especificacin del lenguaje Java
2. Especificacin de la mquina virtual Java
Enlaces externos [editar]
Sun [editar]
Tutoriales [editar]
En Castellano:
o
o
o
o
o
o
Recursos [editar]
Java (Sun)
Desarrollo de Software en Java Comunidad virtual para el
intercambio de informacin en castellano sobre desarrollo de
software en Java para profesionales practicantes, docentes y
estudiantes.
Computer-Books.us Coleccin de libros sobre Java disponibles
para descarga gratuita.
Javapedia project
La Wiki de Java.net
Sun Certification Resource
JavaRSS.com Portal de sitios Web sobre lenguaje Java.
developerWorks Java Zone - Comunidad de recursos Java
JavaWhat.com Directorio de recursos de Java
Informacin, ejemplos de programas, mini tutoriales, fuentes de
informacin
Desarrollo en JavaDesarrollo en Java
Ejemplos, programas, foros y manuales en java
Historia [editar]
Conozca ms sobre la tecnologa Java
La tecnologa Java se cre como una herramienta de programacin en
una pequea operacin secreta y annima denominada "the Green
Project" en Sun Microsystems en el ao 1991.
El equipo secreto ("Green Team"), compuesto por trece personas y
dirigido por James Gosling, se encerr en una oficina desconocida de
Sand Hill Road en Menlo Park, interrumpi todas las comunicaciones
regulares con Sun y trabaj sin descanso durante 18 meses.
Intentaban anticiparse y prepararse para el futuro de la informtica.
Su conclusin inicial fue que al menos en parte se tendera hacia la
convergencia de los dispositivos digitales y los ordenadores.
El resultado fue un lenguaje de programacin que no dependa de los
dispositivos denominado "Oak".
Para demostrar cmo poda contribuir este nuevo lenguaje al futuro
de los dispositivos digitales, el equipo desarroll un controlador de
dispositivos de mano para uso domstico destinado al sector de la
televisin digital por cable. Por desgracia, la idea result ser
demasiado avanzada para el momento y el sector de la televisin
digital por cable no estaba listo para el gran avance que la tecnologa
Java les ofreca.
Pero poco tiempo despus Internet estaba listo para la tecnologa Java
y, justo a tiempo para su presentacin en pblico en 1995, el equipo
pudo anunciar que el navegador Netscape Navigator incorporara la
tecnologa Java.
Actualmente, a punto de cumplir los 10 aos de existencia, la
plataforma Java ha atrado a cerca de 4 millones de desarrolladores
de software, se utiliza en los principales sectores de la industria de
todo el mundo y est presente en un gran nmero de dispositivos,
ordenadores y redes de cualquier tecnologa de programacin.
De hecho, su versatilidad y eficiencia, la portabilidad de su plataforma
y la seguridad que aporta, la han convertido en la tecnologa ideal
para su aplicacin a redes, de manera que hoy en da, ms de 2.500
millones de dispositivos utilizan la tecnologa Java. Ms de 700
millones de ordenadores 708 millones de telfonos mviles y otros
dispositivos de mano (fuente: Ovum) 1000 millones de tarjetas
inteligentes Adems de sintonizadores, impresoras, web cams,
juegos, sistemas de navegacin para automviles, terminales de
lotera, dispositivos mdicos, cajeros de pago en aparcamientos, etc.
Hoy en da, puede encontrar la tecnologa Java en redes y dispositivos
que comprenden desde Internet y superordenadores cientficos hasta
porttiles y telfonos mviles; desde simuladores de mercado en Wall
Street hasta juegos de uso domstico y tarjetas de crdito: Java est
en todas partes.
El mejor modo de conocer todas estas aplicaciones es accediendo a
java.com, un lugar fundamental para realizar compras y conocer los
productos que, asimismo, constituye un recurso de informacin
central para empresas, consumidores y desarrolladores de software
que utilicen la tecnologa Java.
Por qu los desarrolladores de software eligen la tecnologa Java
El lenguaje de programacin Java ha sido totalmente mejorado,
ampliado y probado por una comunidad activa de unos cuatro
millones de desarrolladores de software.
La tecnologa Java, una tecnologa madura, extremadamente eficaz y
sorprendentemente verstil, se ha convertido en un recurso
inestimable ya que permite a los desarrolladores: Desarrollar software
en una plataforma y ejecutarlo en prcticamente cualquier otra
plataforma Crear programas para que funcionen en un navegador
Web y en servicios Web Desarrollar aplicaciones para servidores como
foros en lnea, tiendas, encuestas, procesamiento de formularios
HTML, etc. Combinar aplicaciones o servicios basados en la tecnologa
Java para crear servicios o aplicaciones totalmente personalizados
Visual Basic
es un lenguaje de programacin desarrollado por Alan Cooper para
Microsoft. El lenguaje de programacin es un dialecto de BASIC, con
importantes aadidos. Su primera versin fue presentada en 1991
con la intencin de simplificar la programacin utilizando un ambiente
de desarrollo completamente grfico que facilitara la creacin de
interfaces grficas y en cierta medida tambin la programacin
misma. Visual Basic fue discontinuado por Microsoft hace ya varios
aos. Muchos programadores estan migrando a Real Basic o hacia
Delphi que es un entorno de desarrollo mas avanzado y mucho mas
actual (ultima edicion en 2007 y con planes anunciados hasta el
2009). Microsoft propone abandonar el desarrollo en Win32 y pasar al
Visual Basic.NET que presenta serias incompatibilidades con el codigo
Visual Basic existente.
Caractersticas generales [editar]
Es un lenguaje de fcil aprendizaje pensado tanto para
programadores principiantes como expertos, guiado por eventos, y
centrado en un motor de formularios que facilita el rpido desarrollo
de aplicaciones grficas. Su sintaxis, derivada del antiguo BASIC, ha
sido ampliada con el tiempo al agregarse las caractersticas tpicas de
los lenguajes estructurados modernos. Se ha agregado una
implementacin limitada de la programacin orientada a objetos (los
propios formularios y controles son objetos), aunque s admite el
polimorfismo mediante el uso de los Interfaces, no admite la herencia.
No requiere de manejo de punteros y posee un manejo muy sencillo
de cadenas de caracteres. Posee varias bibliotecas para manejo de
Versiones [editar]
Las versiones de Visual Basic para Windows son muy conocidas, pero
existe una versin de Microsoft Visual Basic 1.0 para MS-DOS
(ediciones Profesional y Estndar) menos difundida y que data de
1992. Era un entorno que, aunque en modo texto, inclua un
diseador de formularios en el que se podan arrastrar y soltar
distintos controles.
Inconvenientes
SharpDevelop
Mono
Microsoft .NET framework SDK
PowerBasic
Objeto, Propiedad y Metodo
C+++
El C++ es un lenguaje de programacin, diseado a mediados de los
aos 1980, por Bjarne Stroustrup, como extensin del lenguaje de
programacin C.
Se puede decir que C++ es un lenguaje que abarca tres paradigmas
de la programacin: la programacin estructurada, la programacin
genrica y la programacin orientada a objetos.
Actualmente existe un estndar, denominado ISO C++, al que se han
adherido la mayora de los fabricantes de compiladores ms
modernos. Existen tambin algunos intrpretes como ROOT (enlace
externo). Las principales caractersticas del C++ son las facilidades
que proporciona para la programacin orientada a objetos y para el
uso de plantillas o programacin genrica (templates).
Adems posee una serie de propiedades difciles de encontrar en
otros lenguajes de alto nivel:
Tipo
Nmero de
Bits
char
short 16
int
32
float
32
doubl
64
e
sizeof(char)
siempre devuelve 1.
wchar_t [editar]
Para la versin del estndar que se public en 1999, se decidi aadir
el tipo de dato wchar_t, que permite el uso de caracteres UNICODE, a
diferencia del tradicional char, que contempla simplemente al cdigo
de caracteres ASCII extendido. A su vez, se ha definido para la
mayora de las funciones y clases tanto de C como de C++ una
versin para trabajar con wchar_t, donde usualmente se prefija el
public:
// Coordenadas del punto
float x;
float y;
// Constructor
Punto() : x ( 0 ) , y ( 0 ) // Inicializamos las variables "x" e "y"
{}
};
//----------------------------------------------------------------------// Main para demostrar el funcionamiento de la clase
#include <iostream>
cout<<"Coordenada X:"<<MiPunto.x<<endl;
valor acumulado en la variable x
cout<<"Coordenada Y:"<<MiPunto.y<<endl;
valor acumulado en la variable y
return 0;
}
// mostramos el
// mostramos el
padre de las cuales se deben derivar clases hijas. Una clase abstracta
se usa para representar aquellas entidades o mtodos que despus
se implementarn en las clases derivadas, pero la clase abstracta en
s no contiene ninguna implementacin -- solamente representa los
mtodos que se deben implementar. Por ello, no es posible instanciar
una clase abstracta, pero s una clase concreta que implemente los
mtodos definidos en ella.
Las clases abstractas son tiles para definir interfaces, es decir, un
conjunto de mtodos que definen el comportamiento de un mdulo
determinado. Estas definiciones pueden utilizarse sin tener en cuenta
la implementacin que se har de ellos.
En C++ los mtodos de las clases abstractas se definen como
funciones virtuales puras.
class Abstracta
{
public:
virtual int metodo() = 0;
};
class ConcretaA : public Abstracta
{
public:
int metodo()
{
//haz algo
return foo () + 2;
}
};
class ConcretaB : public Abstracta
{
public:
int metodo()
{
//otra implementacion
return baz () - 5;
}
};
En el ejemplo, la clase ConcretaA es una implementacin de la clase
Abstracta, y la clase ConcretaB es otra implementacin. Debe notarse
que el = 0 es la notacin que emplea C++ para definir funciones
virtuales puras.
Espacios de Nombres [editar]
Por ejemplo:
#include <iostream>
// Demuestra el uso de try y catch
int main()
{
std::string x = "Hola Mundo";
try {
std::cout<< x.at(99)<<std::endl;
}
catch (std::exception& X) {
std::cerr<< X.what()<<std::endl;
}
return 0;
}
En el ejemplo anterior, se hace el intento de acceder al caracter
nmero 99 de la cadena "Hola Mundo", el cual no existe. El tipo de
datos std::string arroja en estos casos, en la llamada a la funcin "at",
una excepcin, del tipo std::out_of_range, derivado de std::exception.
El bloque catch "atrapar" la excepcin arrojada como una variable X,
para la cual el mtodo what() muestra un mensaje con la causa del
error (en nuestro caso, un mensaje similar a "Index Out of Range").
Es buena idea al crear nuevas excepciones derivarlas de
std::exception ya que es el bloque catch que muchos programadores
colocan por defecto.
Si una excepcin se propaga sin ser atrapada por un bloque catch, y
llegara hasta el punto de terminacin del programa, se produce la
terminacin abrupta de ste ("abort").
Herencia [editar]
Existen varios tipos de herencia entre clases en el lenguaje de
programacin C++. Estos son:
Herencia Simple [editar]
La herencia en C++ es un mecanismo de abstraccin creado para
poder facilitar, y mejorar el diseo de las clases de un programa. Con
ella se pueden crear nuevas clases a partir de clases ya hechas,
siempre y cuando tengan un tipo de relacin especial.
En la herencia, las clases derivadas "heredan" los datos y las
funciones miembro de las clases base, pudiendo las clases derivadas
redefinir estos comportamientos (polimorfismo) y aadir
Por ltimo, hay que mencionar que existen 3 clases de herencia que
se diferencian en el modo de manejar la visibilidad de los
componentes de la clase resultante:
Por tanto, es posible utilizar ms de una clase para que otra herede
sus caractersticas.
Sobrecarga de Operadores [editar]
Es posible definir el comportamiento de un operador del lenguaje
para que trabaje con tipos de datos definidos por el usuario. No todos
los operadores de C++ son factibles de sobrecargar, y, entre aquellos
que pueden ser sobrecargados, se deben cumplir condiciones
especiales. En particular, los operadores sizeof y :: no son
sobrecargables.
No es posible en C++ crear un operador nuevo.
Los comportamientos de los operadores sobrecargados se
implementan de la misma manera que una funcin, salvo que esta
tendr un nombre especial: Tipo de dato de devolucin
operator<token del operador> (parmetros)
Los siguientes operadores pueden ser sobrecargados:
Operadores Unarios
o Operador * (de indireccin)
o Operador -> (de indireccin)
o Operador +
o Operador o Operador ++
o Operador -Operadores Binarios
o Operador +
o Operador o Operador *
o Operador /
o Operador %
o Operador <<
o Operador >>
o Operador &
o Operador ^
o Operador |
o Operador []
o Operador ()
Operadores de Asignacin
o Operador =
o Operador +=
o Operador -=
o Operador *=
o Operador /=
o Operador %=
o Operador <<=
Operador >>=
Operador &=
Operador ^=
Operador |=
Otros operadores
o Operador , (coma)
o Operador new
o Operador delete
o
o
o
o
}
De esta forma, para mostrar un punto, solo habra que realizar la
siguiente expresin:
//...
Punto p(4,5);
//...
cout << "Las coordenadas son: " << p << endl;
//...
Es posible formatear la entrada/salida, indicando el nmero de dgitos
decimales a mostrar, si los textos se pasarn a minsculas o
maysculas, si los nmeros recibidos estn en formato octal o
hexadecimal, etc.
fstreams [editar]
Tipo de flujo para el manejo de ficheros. La definicin previa de
ostreams/istreams es aplicable a este apartado. Existen tres clases
(ficheros de lectura, de escritura o de lectura/escritura):
ifstream,ofstream y fstream.
Pueden abrirse pasando al constructor los parmetros relativos a la
ubicacin del fichero y el modo de apertura:
ios::binary Apertura de un
ios::ate al
ios::app Modo fichero binario (esto es un
ios::trunc Al
abrir el
"append": Se concepto relativo al
abrir, se
fichero, se
abrir el fichero sistema operativo en
borra el
posicionar al
en modo de
cuestin, luego en
contenido
final
anexado
muchas ocasiones, no es
necesario)
Para cerrar un fichero, puede usarse el mtodo close, o esperar a que
el destructor de las clases lo cierre automticamente.
sstreams [editar]
Se destacan dos clases, ostringstream e istringstream. Todo lo
anteriormente dicho es aplicable a estas clases. Tratan a una cadena
como si de un flujo de datos se tratase. ostringstream permite
elaborar una cadena de texto insertando datos cual flujo, e
istringstream puede extraer la informacin contenida en una cadena
(pasada como parmetro en su constructor) con el operador >>.
Ejemplos:
ostringstream s;
s << nombre << "," << edad << "," << estatura << "," <<
punto(5,6) << endl;
cout << s.str();
istringstream s(cadena);
s >> nombre >> edad >> estatura >> p;
Contenedores [editar]
Son clases plantillas especiales utilizadas para almacenar tipos de
datos genricos, sean cuales sean. Segn la naturaleza del
almacenado, disponemos de varios tipos:
Iteradores [editar]
Pueden considerarse como una generalizacin de la clase de
"puntero". Un iterador es un tipo de dato que permite el recorrido y la
bsqueda de elementos en los contenedores. Como las estructuras de
datos (contenedores) son clases genricas, y los operadores
(algoritmos) que deben operar sobre ellas son tambin genricos
(funciones genricas), Stepanov y sus colaboradores tuvieron que
desarrollar el concepto de iterador como elemento o nexo de
conexin entre ambos. El nuevo concepto resulta ser una especie de
punteros que sealan a los diversos miembros del contenedor
(punteros genricos que como tales no existen en el lenguaje).
Algoritmos [editar]
Apple C++.
Borland C++
Codewarrior C++
Comeau C++
Cygwin (GNU C++)
Dev C++
Digital Mars C++
DJ Delorie's C++ development system for DOS/Windows (GNU
C++)
Edison Design Group C++ Front End
Green Hills C++
HP C++ para UNIX y HP C++ para OpenVMS.
IBM C++
Intel C++
MINGW - Minimalist GNU for Windows.
The LLVM Compiler Infrastructure.
Mentor Graphics/Microtec Research C++
Microsoft C++
Microsoft Visual C++ Toolkit 2003
Paradigm C++
The Portland Group C++
SGI C++
Sun C++
Sun Studio.
WindRiver's Diab C++
Visual Basic 2005 es, hasta este momento (Agosto de 2007), la ltima
versin publicada de Visual Basic .NET. Esta versin fue publicada
como parte de Visual Studio 2005, y requiere el Framework .NET 2.0.
En esta versin se incluyeron varias novedades, entre las que se
cuentan: