Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

LENGUAJE DE PROGRAMACION DE 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.1 2

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
laplataforma 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 abytecode (clase Java) que puede ejecutarse en cualquier máquina virtual
Java (JVM) sin importar laarquitectura 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 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.

Es un lenguaje sencillo de aprender. Su sintaxis es la de C++ “simplificada”. Los creadores de Java partieron


de la sintaxis de C++ y trataron de eliminar de este todo lo que resultase complicado o fuente de errores en
este lenguaje.Java es un lenguaje orientado a objetos, aunque no de los denominados puros; en Java todos
los tipos, a excepción de los tipos fundamentales de variables (int, char, long...) son clases. Sin embargo, en
los lenguajes orientados a objetos puros incluso estos tipos fundamentales son clases, por ejemplo en
Smalltalk.El código generado por el compilador Java es independiente de la arquitectura: podría
ejecutarse en un entorno UNIX, Mac o Windows. El motivo de esto es que el que realmente ejecuta el código
generado por el compilador no es el procesador del ordenador directamente, sino que este se ejecuta
mediante una máquina virtual.

Características

Lenguaje totalmente orientado a Objetos. Todos los conceptos en los que se apoya esta técnica,
encapsulación, herencia, polimorfismo, etc., están presentes en Java.
 Disponibilidad de un amplio conjunto de bibliotecas. Como ya se mencionó anteriormente, Java
es algo más que un lenguaje. La programación de aplicaciones con Java se basa no solo en el empleo
del juego de instrucciones que componen el lenguaje, sino, fundamentalmente, en la posibilidad de
utilizar el amplísimo conjunto de clases que Sun pone a disposición del programador y con las cuales es
posible realizar prácticamente cualquier tipo de aplicación.
 Lenguaje simple. Java posee una curva de aprendizaje muy rápida. Resulta relativamente sencillo
escribir applets interesantes desde el principio. Todos aquellos familiarizados con C++ encontrarán que
Java es más sencillo, ya que se han eliminado ciertas características, como los punteros. Debido a su
semejanza con C y C++, y dado que la mayoría de la gente los conoce aunque sea de forma elemental,
resulta muy fácil aprender Java. Los programadores experimentados en C++ pueden migrar muy
rápidamente a Java y ser productivos en poco tiempo.
 Distribuido. Java proporciona una colección de clases para su uso en aplicaciones de red, que
permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes remotos, facilitando
así la creación de aplicaciones distribuidas.
 Interpretado y compilado a la vez. Java es compilado, en la medida en que su código fuente se
transforma en una especie de código máquina, losbytecodes, semejantes a las instrucciones de
ensamblador. Por otra parte, es interpretado, ya que los bytecodes se pueden ejecutar directamente
sobre cualquier máquina a la cual se hayan portado el intérprete y el sistema de ejecución en tiempo real
(run-time).
 Robusto. Java fue diseñado para crear software altamente fiable. Para ello proporciona numerosas
comprobaciones en compilación y en tiempo de ejecución. Sus características de memoria liberan a los
programadores de una familia entera de errores (la aritmética de punteros), ya que se ha prescindido por
completo de los punteros, y la recolección de basura elimina la necesidad de liberación explícita de
memoria.
 Seguro (?). Dada la naturaleza distribuida de Java, donde las applets se bajan desde cualquier
punto de la Red, la seguridad se impuso como una necesidad de vital importancia. A nadie le gustaría
ejecutar en su ordenador programas con acceso total a su sistema, procedentes de fuentes
desconocidas. Así que se implementaron barreras de seguridad en el lenguaje y en el sistema de
ejecución en tiempo real.
 Indiferente a la arquitectura. Java está diseñado para soportar aplicaciones que serán ejecutadas
en los más variados entornos de red, desde Unix a Windows Nt, pasando por Mac y estaciones de
trabajo, sobre arquitecturas distintas y con sistemas operativos diversos. Para acomodar requisitos de
ejecución tan diversos o variopintos, el compilador de Java genera bytecodes: un formato intermedio
indiferente a la arquitectura diseñado para transportar el código eficientemente a múltiples plataformas
hardware y software. El resto de problemas los soluciona el intérprete de Java.
 Portable. La indiferencia a la arquitectura representa sólo una parte de su portabilidad. Además,
Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus operadores
aritméticos, de manera que los programas son iguales en todas las plataformas. Estas dos últimas
características se conocen como la Máquina Virtual Java (JVM).
 Alto rendimiento.

 Multihebra. Hoy en día ya se ven como terriblemente limitadas las aplicaciones que sólo pueden
ejecutar una acción a la vez. Java soporta sincronización de múltiples hilos de ejecución (multithreading)
a nivel de lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así, mientras
un hilo se encarga de la comunicación, otro puede interactuar con el usuario mientras otro presenta una
animación en pantalla y otro realiza cálculos.
 Dinámico. El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de
enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos
de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.
 Produce applets. Java puede ser usado para crear dos tipos de programas: aplicaciones
independientes y applets. Las aplicaciones independientes se comportan como cualquier otro programa
escrito en cualquier lenguaje, como por ejemplo el navegador de Web HotJava, escrito íntegramente en
Java. Por su parte, las applets son pequeños programas que aparecen embebidos en las páginas Web,
como aparecen los gráficos o el texto, pero con la capacidad de ejecutar acciones muy complejas, como
animar imágenes, establecer conexiones de red, presentar menús y cuadros de diálogo para luego
emprender acciones, etc.

Las ventajas

JavaScript es una excelente solución para poner en práctica la validación de datos de un formulario en el lado

del cliente. Si un usuario omite escribir su nombre en un formulario, una función de validación en JavaScript

puede desplegar en pantalla un mensaje popup para hacerle saber al usuario acerca de la omisión. Este tipo

de funcionalidades son más ventajosas que tener una rutina de validación del lado del servidor para controlar
el error, dado que  el servidor en éste caso no tiene que hacer ningún tipo procesamiento de información

adicional. Una rutina de ASP o PHP podría ser escrita para lograr la misma tarea pero un formulario

desarrollado en JavaScript no permitiría que la información se enviase a menos que se complete

correctamente el formulario.

Una de las áreas en la que sobresale radicalmente JavaScript es en la creación de efectos dinámicos tales

como imágenes dinámicas y presentaciones de diapositivas, donde su uso se ha convertido algo común hoy

en día. Debido a que JavaScript se ejecuta dentro del navegador de los clientes, se puede utilizar para

cambiar el aspecto de la pantalla en el dispositivo de los usuarios después que la página ha sido enviada por

el servidor. Esto le permite al desarrollador web crear efectos dinámicos muy impresionantes mejorando así la

experiencia que recibe un usuario momento de entrar a un sitio web.


Las desventajas

La seguridad sigue siendo el talon de aquiles de Javascript. Los fragmentos de código de JavaScript una vez

añadidos a las páginas web en los servidores, estos son descargados y ejecutados en el navegador del

cliente permitiendo así que cierto código malicioso pueda ser ejecutado en la máquina del cliente con el

objetivo de explotar alguna vulnerabilidad de seguridad conocida en una de las aplicaciones, navegadores o el

mismo sistema operativo. Es verdad que hoy día existen estándares de seguridad que restringen la ejecución

de código por parte de los navegadores, pero aún así,  se puede ejecutar código que dañe, robe o destruya

información del lado del cliente.

Otra desventaja de JavaScript es que este tiende a introducir una cantidad enorme de fragmentos de código

en nuestros sitios web.  Por suerte, el problema de grandes fragmentos de código JavaScript se resuelve

fácilmente mediante el almacenamiento del código JavaScript dentro de archivos separados del código HTML

con la extensión. *.Js, dejando una página web mucho más limpia y legible de cara al desarrollador.

Debido a la tendencia de JavaScript de acrecentar el código de las páginas web, se hace necesario organizar

el código JavaScript en archivos separados al código HTML para que los motores de búsqueda (Google)

puedan descifrar fácilmente la calidad del contenido de la página web y esta pueda ser indexada

correctamente en los resultados de las búsquedas.

Cuando un motor de búsqueda llega a un sitio web buscando contenido de calidad junto con las palabras

claves para determinar qué tan útil es la pagina , lo último que quiere encontrar un motor de búsqueda son

cientos de líneas de código JavaScript. Una vez más, este problema se resuelve fácilmente almacenando el

código JavaScript en archivos de script con la extensión *.Js.

Por último, les doy la primicia de que ya tenemos el curso de Programación JavaScript listo en nuestro

sistema de e-learning. Si eres programador web y quieres mejorar tus habilidades para desarrollar web

dinámicas este curso es para ti. Si actualmente eres estudiante de la Carrera Informática en Capacity puedes

tener acceso hoy mismo totalmente gratis al contenido del curso de Programación JavaScript. Si quieres

saber más sobre nuestras ofertas educativas siguenos en Facebook y Twitter.

-Clase

En informática, una clase es una plantilla para la creación de objetos de datos según un modelo predefinido.
Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje. Cada
clase es un modelo que define un conjunto de variables -el estado, y métodos apropiados para operar con
dichos datos -el comportamiento. Cada objeto creado a partir de la clase se denomina instancia de la clase.

Las clases son un pilar fundamental de la programación orientada a objetos. Permiten abstraer los datos y sus
operaciones asociadas al modo de una caja negra. Los lenguajes de programación que soportan clases
difieren sutilmente en su soporte para diversas características relacionadas con clases. La mayoría soportan
diversas formas de herencia. Muchos lenguajes también soportan características para
proporcionar encapsulación, como especificadores de acceso.

Una clase también puede tener una representación (metaobjeto) en tiempo de ejecución, que proporciona
apoyo en tiempo de ejecución para la manipulación de los metadatos relacionados con la clase.

Objeto

Estos objetos interactúan unos con otros, en contraposición a la visión tradicional en la cual un programa es
una colección de subrutinas (funciones oprocedimientos), o simplemente una lista de instrucciones para el
computador. Cada objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a otros objetos de
manera similar a un servicio (en Windows) o demonio (en Unix y Linux).

En el mundo de la programación orientada a objetos (POO), un objeto es el resultado de la instanciación de


una clase. Una clase es el anteproyecto que ofrece la funcionalidad en ella definida, pero ésta queda
implementada sólo al crear una instancia de la clase, en la forma de un objeto. Por ejemplo: dado un plano
para construir sillas (una clase de nombre clase_silla), entonces una silla concreta, en la que podemos
sentarnos, construida a partir de este plano, sería un objeto de clase_silla. Es posible crear (construir)
múltiples objetos (sillas) utilizando la definición de la clase (plano) anterior. Los conceptos
de clasey objetos son análogos a los de tipo de datos y variable; es decir, definida una clase podemos
crear objetos de esa clase, igual que disponiendo de un determinado tipo de dato (por ejemplo el tipo entero),
podemos definir variables de dicho tipo:

int a,b;

( 'int' es un tipo de dato y 'a' y 'b' son variables de tipo entero con las que podemos operar)

Para utilizar la funcionalidad definida en una clase en particular (salvo en las clases abstractas),
primeramente es necesario crear un objeto de esa clase. De la misma manera, para una persona que
desea sentarse, las especificaciones para construir una silla serán de poca utilidad; lo que se necesita es
una silla real construida a partir de esas especificaciones. Siguiendo con la analogía anterior, también se
puede decir que para hacer operaciones aritméticas, de nada sirve por sí solo el tipo entero (int); para
ello necesitamos variables (o constantes) con las que operar.
Constructor

en programación orientada a objetos (POO), un constructor es una subrutina cuya misión es inicializar


un objeto de una clase. En el constructor se asignan los valores iniciales del nuevo objeto.

Se utiliza para crear tablas de clases virtuales y poder así desarrollar el polimorfismo, una de las herramientas
de la programación orientada a objetos. Al utilizar un constructor, el compilador determina cual de los objetos
va a responder al mensaje (virtual) que hemos creado. Tiene un tipo de acceso, un nombre y un paréntesis

Polimorfismo

En programación orientada a objetos, el polimorfismo se refiere a la propiedad por la que es posible enviar
mensajes sintácticamente iguales a objetos detipos distintos. El único requisito que deben cumplir los objetos
que se utilizan de manera polimórfica es saber responder al mensaje que se les envía.

La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de las
obvias diferencias sintácticas.

Por ejemplo, en un lenguaje de programación que cuenta con un sistema de tipos dinámico (en los que las
variables pueden contener datos de cualquier tipo u objetos de cualquier clase) como Smalltalk no se requiere
que los objetos que se utilizan de modo polimórfico sean parte de una jerarquía de clases.

Herencia

En programación orientada a objetos, la herencia es, después de la agregación o composición, el mecanismo


más utilizado para alcanzar algunos de los objetivos más preciados en el desarrollo de software como lo son
la reutilización y la extensibilidad. A través de ella los diseñadores pueden crear nuevas clases partiendo de
una clase o de una jerarquía de clases preexistente (ya comprobadas y verificadas) evitando con ello el
rediseño, la modificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos
a partir de otros ya existentes e implica que una subclase obtiene todo el comportamiento (métodos) y
eventualmente los atributos (variables) de su superclase.

Es la relación entre una clase general y otra clase más específica. Por ejemplo: Si declaramos una clase
párrafo derivada de una clase texto, todos los métodos y variables asociadas con la clase texto, son
automáticamente heredados por la subclase párrafo.

La herencia es uno de los mecanismos de los lenguajes de programación orientada a objetos basados en


clases, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad. La clase de
la que se hereda se suele denominar clase base, clase padre, superclase, clase ancestro (el vocabulario que
se utiliza suele depender en gran medida del lenguaje de programación).

EVOLUCION DE LOS LENGUAJES DE PROGRAMACION

La década de 1980: consolidación, módulos, rendimiento

La década de 1980 fueron años de consolidación relativa en los lenguajes imperativos. En vez de inventar nuevos

paradigmas, se comenzó a trabajar a partir de las ideas inventadas en la década anterior. C++ combinaba la programación

orientada a objetos y la programación de sistemas. El gobierno de Estados Unidos estandarizó Ada, un lenguaje de

programación de sistemas destinado a ser utilizado por contratistas de defensa. En Japón y en otras partes, se gastaron

enormes sumas investigando los llamados lenguajes de programación de quinta generación que incorporaban

construcciones de la programación lógica. La comunidad de los lenguajes funcionales llevaron a cabo la estandarización de

ML y Lisp. La investigación en Miranda, un lenguaje funcional, conevaluación perezosa, comenzó a tomar fuerza en esta

década.

Una nueva tendencia importante en el diseño de lenguajes era un mayor enfoque en la programación de sistemas a gran

escala a través del uso de módulos, una organización a gran escala de unidades de código. Modula, Ada, y ML

desarrollaron sistemas de módulos notables en la década de 1980. Los sistemas de módulos eran relacionados con

frecuencia con construcciones de programación genéricas, que serían, en esencia, módulos parametrizados (véase

también polimorfismo en programación orientada a objetos).

Aunque no aparecían nuevos paradigmas de lenguajes de programación imperativos, muchos investigadores expandieron

las ideas de los lenguajes anteriores y las adaptaron a nuevos contextos. Por ejemplo, los lenguajes de los

sistemas Argus y Emerald adaptaron la programación orientada a objetos para sistemas distribuidos.

La década de 1980 también trajo avances en la implementación de lenguajes de programación. El movimiento de RISC en

la arquitectura de computadoraspostulaba que el hardware debía estar diseñado para los compiladores más que para los

programadores de ensamblador humanos. Con la ayuda de las mejoras en la velocidad del procesador, permitiendo

técnicas de compilación cada vez más agresivas, el movimiento RISC despertó un mayor interés en la tecnología de

compilación de los lenguajes de alto nivel.

Las tecnologías de los lenguajes continuaron sobre estas líneas entrando en la década de 1990.

Algunos lenguajes importantes que se desarrollaron en este período son:


 1980 - C++ (C con clases, el nombre cambió en Julio de 1983)

 1983 - Ada

 1984 - Common Lisp

 1984 - MATLAB

 1985 - Eiffel

 1986 - Objective-C

 1986 - Erlang

 1987 - Perl

 1988 - Tcl

 1988 - Mathematica

 1989 - FL (Backus);

La década de 1990: la era de Internet

El rápido crecimiento de Internet en la década de 1990 fue el siguiente gran acontecimiento histórico para los lenguajes de

programación. Con la apertura de una plataforma totalmente nueva para los sistemas informáticos, Internet creó una

oportunidad adoptar nuevos lenguajes. En particular, el lenguaje de programación Java se hizo popular debido a su pronta

integración con el navegador web Netscape Navigator, y varios lenguajes de scripting alcanzaron un amplio uso en el

desarrollo de aplicaciones personalizadas para servidores web. La década de 1990 no vio ninguna novedad fundamental en

los lenguajes imperativos, pero sí mucha recombinación y la maduración de viejas ideas. Esta era comenzó la difusión de

los lenguajes funcionales. Una filosofía de conducción grande era la productividad del programador. Surgieron muchos

lenguajes de “aplicaciones de desarrollo rápido” (RAD), los cuales usualmente venían con un IDE, recolector de basura, y

eran descendientes de lenguajes anteriores. Todos estos lenguajes eran orientados a objeto. Estos incluíanObject

Pascal, Visual Basic y Java. Java, en particular, recibió mucha atención. Pero más radicales e innovadores que los

lenguajes de RAD eran los nuevoslenguajes de script. Estos no descendían directamente de otros lenguajes y ofrecieron

nuevas sintaxis e incorporación más liberal de otras características. Muchos consideran estos lenguajes de script más

productivos que los lenguajes de RAD, aunque esto se debe a menudo a que es más difícil escribir y mantener largos

programas que pequeños programas simples. Sin embargo, no es menos cierto que los programas de script llegaron para

convertirse en los más prominentes en la conexión con la Web.

Algunos lenguajes importantes que se desarrollaron en este período son:

 1990 - Haskell

 1991 - Python

 1991 - Visual Basic

 1991 - HTML (lenguaje de marcado de hipertexto)

 1993 - Ruby

 1993 - Lua

 1994 - CLOS (parte del ANSI Common Lisp)


 1995 - Java

 1995 - Delphi (Object Pascal)

 1995 - JavaScript

 1995 - PHP

 1996 - WebDNA

 1997 - Rebol

 1999 - D

Tendencias actuales

La evolución de los lenguajes de programación continúa, tanto en la industria como en investigación. Algunas de las

tendencias actuales incluyen:

 Aumentar el soporte para la programación funcional en lenguajes importantes utilizados comercialmente, incluida

la programación funcional pura para hacer el código más fácil de razonar y de paralelizar (tanto en macro como en

micro-niveles).

 Construir lenguajes para apoyar la programación concurrente y distribuida.

 Mecanismos para añadir al lenguaje verificación en cuanto a seguridad y confiabilidad: chequeo sintáctico

extendido, control de flujo de información,seguridad de hilos.

 Mecanismos alternativos de modularidad: mixins, delegados, aspectos.

 Desarrollo de software orientado a componentes.

 Metaprogramación, la reflexión o el acceso al árbol de sintaxis abstracta.

 Mayor énfasis en cuanto a distribución y movilidad.

 Integración con bases de datos, incluyendo XML y bases de datos relacionales.

 Soporte para Unicode para que el código fuente (texto del programa) no se limite sólo a los caracteres contenidos

en el conjunto de caracteres ASCII, permitiendo, por ejemplo, el uso de caracteres no latinos basados en guiones o

signos de puntuación extendidos.

 XML para interfaz gráfica (XUL, XAML).

 El código abierto como una filosofía de desarrollo de lenguajes, incluyendo la colección de compiladores de GNU

y lenguajes recientes, como Python,Ruby, y Squeak.

 Programación Orientada a Aspectos (AOP).

 Lenguajes que soporten programar sobre los procesadores de la GPU en paralelo, como OpenCL.

Algunos lenguajes importantes desarrollados durante este período incluyen:

 2000 - ActionScript

 2001 - C#

 2001 - Visual Basic .NET

 2002 - F#
 2003 - Groovy

 2003 - Scala

 2003 - Factor

 2007 - Clojure

 2009 - Go

 2011 - Dart

Personas destacadas en la historia de los lenguajes de programación

 Joe Armstrong, creador de Erlang.

 John Backus, inventor de Fortran.

 Alan Cooper, desarrollador de Visual Basic.

 Edsger W. Dijkstra, desarrolló la estructura para la programación estructurada.

 James Gosling, desarrollador de Oak, precursor de Java.

 Anders Hejlsberg, desarrollador de Turbo Pascal, Delphi y C#.

 Grace Hopper, desarrolladora de Flow-Matic, influenciando el lenguaje COBOL.

 Kenneth E. Iverson, desarrollador de APL, y co-desarrollador de J junto a Roger Hui.

 Bill Joy, inventor de vi, autor de BSD Unix, creador de SunOS, el cual se convirtió en Solaris.

 Alan Kay, pionero en programación orientada a objetos, creador de Smalltalk.

 Brian Kernighan, coautor del primer libro de programación en lenguaje C con Dennis Ritchie, y coautor de los

lenguajes de programación AWK y AMPL.

 Yukihiro Matsumoto, creador de Ruby.

 John McCarthy, inventor de LISP.

 Bertrand Meyer, inventor de Eiffel.

 Robin Milner, inventor de ML, y compartió crédito en el método Hindley–Milner de inferencia de tipo polimórfica.

 John von Neumann, creador del concepto de sistema operativo.

 Martin Odersky, creador de Scala, y previamente contribuyó en el diseño de Java

 Morgan Arriaza, Mejor estudiante de [IMB-PC]].

 Dennis Ritchie, inventor de C. Sistema Operativo Unix.

 Nathaniel Rochester, inventor del primer lenguaje en ensamblador simbólico (IBM 701).

 Guido van Rossum, creador de Python.

 Bjarne Stroustrup, desarrollador de C++.

 Ken Thompson, inventor de B, desarrollador de Go, y coauthor del sistema operativo Unix.

 Larry Wall, creador de Perl y Perl 6.

 Niklaus Wirth, inventor de Pascal, Modula y Oberon.

 Stephen Wolfram, creador de Mathematica.

También podría gustarte