martes, 5 de julio de 2016





a la 
programación orientada a 
objetos

este es un vídeo de programación orientada a objetos:


introducción:

el término de Programación Orientada a Objetos indica más una forma de diseño y una metodología de desarrollo de software que un lenguaje de programación, ya que en realidad se puede aplicar el Diseño Orientado a Objetos (En inglés abreviado OOD, Object Oriented Design), a cualquier tipo de lenguaje de programación.
El desarrollo de la OOP empieza a destacar durante la década de los 80 tomando en cuenta la programación estructurada, a la que engloba y dotando al programador de nuevos elementos para el análisis y desarrollo de software
Los objetos son entidades que tienen un determinado "estado", "comportamiento (método)" e "identidad":
La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante).
Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados métodos, que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.
Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podría producir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen a las primeras por el otro. De esta manera se estaría realizando una "programación estructurada camuflada" en un lenguaje de POO.

La programación orientada a objetos difiere de la programación estructurada tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada solo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.
que es un objeto:
Objeto
Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa).
Programación dirigida por eventos
La programación dirigida por eventos es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen.
Para entender la programación dirigida por eventos, podemos oponerla a lo que no es: mientras en la programación secuencial (o estructurada) es el programador el que define cuál va a ser el flujo del programa, en la programación dirigida por eventos será el propio usuario —o lo que sea que esté accionando el programa— el que dirija el flujo del programa. Aunque en la programación secuencial puede haber intervención de un agente externo al programa, estas intervenciones ocurrirán cuando el programador lo haya determinado, y no en cualquier momento como puede ser en el caso de la programación dirigida por eventos.

El creador de un programa dirigido por eventos debe definir los eventos que manejarán su programa y las acciones que se realizarán al producirse cada uno de ellos, lo que se conoce como el administrador de evento. Los eventos soportados estarán determinados por el lenguaje de programación utilizado, por el sistema operativo e incluso por eventos creados por el mismo programador.

que es una clase:
Clase
Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ella.

Clases en programación Orientada a Objetos:




que es una herencia:
Herencia

Por ejemplo, herencia de la clase C a la clase D, es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables públicas declaradas en C. Los componentes registrados como "privados" (prívate) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. En el caso de los componentes registrados como "protegidos" (protected) también se heredan, pero solo para esa clase, no para futuras clases heredadas. Esto es así para mantener hegemónico el ideal de POO.


En la programación dirigida por eventos,

al comenzar la ejecución del programa se llevarán a cabo las inicializaciones y demás código inicial y a continuación el programa quedará bloqueado hasta que se produzca algún evento. Cuando alguno de los eventos esperados por el programa tenga lugar, el programa pasará a ejecutar el código del correspondiente administrador de evento. Por ejemplo, si el evento consiste en que el usuario ha hecho clic en el botón de play de un reproductor de películas, se ejecutará el código del administrador de evento, que será el que haga que la película se muestre por pantalla.
Un ejemplo claro lo tenemos en los sistemas de programación Lexico y Visual Basic, en los que a cada elemento del programa (objetos, controles, etcétera) se le asignan una serie de eventos que generará dicho elemento, como la pulsación de un botón del ratón sobre él o el redibujado del control.
La programación dirigida por eventos es la base de lo que llamamos interfaz de usuario, aunque puede emplearse también para desarrollar interfaces entre componentes de Software o módulos del núcleo.
En los primeros tiempos de la computación, los programas eran secuenciales, también llamados Batch. Un programa secuencial arranca, lee parámetros de entrada, procesa estos parámetros, y produce un resultado, todo de manera lineal y sin intervención del usuario mientras se ejecuta.

Con la aparición y popularización de los PC, el software empezó a ser demandado para usos alejados de los clásicos académicos y empresariales para los cuales era necesitado hasta entonces, y quedó patente que el paradigma clásico de programación no podía responder a las nuevas necesidades de interacción con el usuario que surgieron a raíz de este hecho.


identificación de los elementos de la poo:

Objeto
Todo es un objeto en la POO
El objeto es una abstracción del dominio del problema Un objeto tiene:
Comportamiento: métodos, mensajes a los que puede responder
Estructura interna y estado interna: las variables de instancia o propiedades y sus valores
Identidad: un objeto sólo es idéntico a sí mismo
Instancia: todo objeto es instancia de una clase Comportamiento:
¿Qué hace el objeto? indica cuáles son las responsabilidades del objeto
Se especifica a través del conjunto de mensajes
O protocolo Comportamiento:
¿Cómo lo hace? la implementación indica cómo hace el objeto para responder a los mensajes
Se especifica a través de un conjunto de métodos
Es privada del objeto, ningún otro objeto puede accederla Estado interno: está compuesto por las variables de instancia del objeto
Las v.i. pueden ser propiedades del objeto y otros objetos
Es privado del objeto. Instanciación Envío de un mensaje ¿ ? NO!!! Al enviarle un mensaje a un objeto,
Éste responde activando el método
Asociado a ese mensaje
Como resultado del envío de un mensaje puede retornarse un objeto Sintaxis del mensaje <objeto receptor>.<nombre de mensaje> (<parámetros>) una Cuenta. De opositar (100) decirle a una cuenta
Bancaria que deposite $100
Se escribe Método contraparte funcional del mensaje
Expresa el cómo se realiza el mensaje Puede realizar 3 cosas:
Modificar el estado interno de un objeto
Colaborar con otros objetos
Retornar y terminar
Nombre del método lista de parámetros comentario del método lista de variables temporales cuerpo del método consiste
En la resolución del
Comportamiento de opositar (un Monto)
"Agrega un Monto al saldo actual de la cuenta"
Saldo <--- saldo + un Monto Encapsulamiento Características:
Esconde detalles de implementación
Protege el estado interno de los objetos
Un objeto sólo muestra su "cara visible" por medio del protocolo
Facilita modularidad si el titular de la
Cuenta bancaria
Es Julio González
Sólo lo sabe la cuenta bancaria
Y sólo podemos acceder a él
A través del protocolo
Clases una clase es una descripción abstracta de un conjunto de objetos
Las clases:
Describen el formato de los objetos
Agrupan comportamiento en común
Pueden pensarse como moldes de un tipo específico de objeto Clases e instancias una clase es responsable de crear sus instancias
Todas las instancias de una clase se comportan de la misma manera

Cada instancia mantendrá su propio estado interno

lunes, 4 de julio de 2016

programación orientada a objetos:

La programación Orientada a objetos  (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.

Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.


La programación orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial.
Muchos de los objetos pre-diseñados de los lenguajes de programación actuales permiten la agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten al usuario la creación de sus propias bibliotecas.
Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.


La POO es un paradigma surgido en los años 1970, que utiliza objetos como elementos fundamentales en la construcción de la solución. Un objeto es una abstracción de algún hecho o ente del mundo real, con atributos que representan sus características o propiedades, y métodos que emulan su comportamiento o actividad. Todas las propiedades y métodos comunes a los objetos se encapsulan o agrupan en clases. Una clase es una plantilla, un prototipo para crear objetos; en general, se dice que cada objeto es una instancia o ejemplar de una clase.


características:
Existe un acuerdo acerca de qué características contempla la "orientación a objetos". Las características siguientes son las más importantes:1

Abstracción
Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar "cómo" se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.
Encapsulamiento
Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión (diseño estructurado) de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
Modularidad
Se denomina "modularidad" a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.
Principio de ocultación
Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una "interfaz" a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
Recolección de basura
La recolección de basura (garba ge collection) es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Objecto Pascal, esta característica no existe y la memoria debe des asignarse expresamente.



lenguajes de programación:

Visual C# 

es un lenguaje de programación que se ha diseñado para compilar diversas aplicaciones que se ejecutan en .NET Framework.  C# es simple, eficaz, con seguridad de tipos y orientado a objetos.  Las numerosas innovaciones de C# permiten desarrollar aplicaciones rápidamente y mantener la expresividad y elegancia de los lenguajes de estilo de C. 

Visual C# es una implementación del lenguaje C# de Microsoft. Visual Studio ofrece compatibilidad con Visual C# con un completo editor de código, un compilador, plantillas de proyecto, diseñadores, asistentes para código, un depurador eficaz y de fácil uso y otras herramientas.  La biblioteca de clases de .NET Framework ofrece acceso a numerosos servicios de sistema operativo y a otras clases útiles y adecuadamente diseñadas que aceleran el ciclo de desarrollo de manera significativa.   

Características principales de C#

A continuación enumeramos las principales características que definen al lenguaje de programación C#. Algunas de estas características no son propias del lenguaje, sino de la plataforma .NET, aunque se listan aquí ya que tienen una implicación directa en ellenguaje.

Sencillez de uso

 C# elimina muchos elementos añadidos por otros lenguajes y quefacilitan su uso y compresión, como por ejemplo ficheros de cabecera, oficheros fuentes IDL1 .12. Es por ello que se dice que C# esautocontenido. Además, no se incorporan al lenguaje elementos pocoútiles, como por ejemplo macros, herencia múltiple u operadoresdiferentes al operador de aceso a métodos (operador punto) paraacceder a miembros de espacios de nombres.

Modernidad

 Al ser C# un lenguaje de última generación, incorpora elementos que seha demostrado a lo largo del tiempo que son muy útiles para elprogramador, como tipos decimales o

booleanos

, un tipo básico

string

,así como una instrución que permita recorrer colecciones con facilidad(instrucción

foreach

). Estos elementos hay que simularlos en otroslenguajes como C++ o Java.

Orientado a objetos

 C# como lenguaje de última generación, y de propósito general, esorientado a objetos. C# no permite la inclusión de funciones ni variablesglobales que no estén incluidos en una definición de tipos, por lo que laorientación a objetos es más pura y clara que en otros lenguajes comoC++. Además, C# soporta todas las características del paradigma de laprogramación orientada a objetos, como son la

encapsulación, laherencia

y el

 polimorfismo

Orientado a componentes

 La propia sintasix de C# incluye elementos propios del diseño decomponentes que otros lenguajes tienen que simular. La sintaxis de C#incluye por ejemplo formas de definir

 propiedades

,

eventos

o

atributos

Recolección de basura

 Como ya se comentó, todo lenguaje incluido en la plataforma .NET tienea su disposición el recolector de basura del CLR. Esto implica que no esnecesario incluir instrucciones de destrucción de objetos en el lenguaje.

Seguridad de tipos

 C# incluye mecanismos de control de acceso a tipos de datos, lo quegarantiza que no se produzcan errores difíciles de detectar como unacceso a memoria de ningún objeto, por ejemplo. Para ello, el lenguajeprovee de una serie de normas de sintaxis, como por ejemplo no realizarconversiones entre tipos que no sean compatibles. Además, no sepueden usar variables no inicializadas previamente, y en el acceso atablas se hace una comprobación de rangos para que no se excedanninguno de los índices de la misma. Se puede controlar así mismo los

 

 

desbordamientos en operaciones aritméticas, produciéndoseexcepciones cuando se produzcan.

Instrucciones seguras

 Para evitar errores comunes como se producían programando en otroslenguajes, en C# se han impuesto una serie de restricciones en el uso deinstrucciones de control más comunes. Por ejemplo, la evaluación detoda condición ha de ser una expresión condicional y no aritmética,como ocurría por ejemplo en C o en C++. Así se evitan errores porconfusión del operador igualdad con el de asignación. Otra restricciónque se impone en la instrucción de selección

switch

, imponiendo quetoda selectora de la instrucción finalice con una instrucción

break

o

goto

que indique cuál es la siguiente acción a realizar.

Unificación de tipos

 En C# todos los tipos derivan de una superclase común llamada

System.Object

, por lo que automáticamente heredarán todos losmiembros definidos en esta clase. Es decir, son

objetos

. A diferencia de Java, en C# esta característica también se aplica para los tipos básicos.

Extensión de los operadores básicos

 Para facilitar la legibilidad de código y conseguir que los nuevos tipos dedatos que se definan a través de las estructuras estén al mismo nivelque los elementos predefinidos en el lenguaje, al igual que C++ pero adiferencia de Java, C# permite redefinir el significado de la mayoría delos operadores (incluidos el de la conversión) cuando se apliquen adiferentes tiops de objetos.

Las redefiniciones de operadores se hacen de manera inteligente, de modo que a partir de una única definición de los operadores

++

y

-

el compilador puede deducir automáticamente cómo ejecutarlos de manera prefija y postfija. Definiendooperadores simples como la suma, el compilador deduce como aplicar la versión deasignación compuesta (

+=

). Además, para asegurar la consistencia, el compilador exige que los operadores con opuesto (como por ejemplo el operador igualdad

==

ysu opuesto

!=

) siempre se redefinan por parejas.

Extensión de modificadores

 C# ofrece, a través de los

atributos

, la posiblidad de añadir a losmetadatos del módulo resultante de la compilación de cualquier fuenteinformación adicional a la generada por el compilador que luego podráser consultada en tiempo de ejecución a través de la biblioteca dereflexión de .NET.

Eficiente

 En C#, todo el código incluye numerosas restricciones para garantizar suseguridad, no permitiendo el uso de punteros. Sin embargo, y adiferencia de Java, existen modificadores para saltarse esta restricción,pudiendo manipular objetos a través de punteros. Para ello bastaidentificar regiones de código con el identificador

unsafe

, y podránusarse en ellas punteros de forma similar a como se hace en C++. Estacaracterística puede resultar de utilidad en situaciones en las que senecesite gran velocidad de procesamiento


Visual J# permite a los des arrolladores utilizar la sintaxis del lenguaje Java para generar aplicaciones y servicios que se ejecutarán en .NET Framework. Visual J# integra la sintaxis de Java en el entorno de desarrollo integrado (IDE) de Visual Studio®. No es una herramienta para desarrollar aplicaciones que se ejecuten en una máquina virtual de Java.

Características:

Visual J# tiene como destino de compilación el Common Language Runtime (CLR) y puede usarse para programar aplicaciones para .NET Framework, incluidos los servicios Web XML y las aplicaciones Web, que aprovechen al máximo la funcionalidad de .NET Framework. Las aplicaciones de Visual J# se benefician de:

·         Integración entre lenguajes.

·         Seguridad mejorada.

·         Compatibilidad con el control de versiones y la implementación.

·         Servicios de depuración y generación de perfiles


ASP.NET

es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores y diseñadores para construir sitios web dinámicos, aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de la tecnología Active Server Pages (ASP). ASP.NET está construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.

 

Características

Páginas

Las páginas de ASP.NET, conocidas oficialmente como "web forms" (formularios web), son el principal medio de construcción para el desarrollo de aplicaciones web.8 Los formularios web están contenidos en archivos con una extensión ASPX; en jerga de programación, estos archivos típicamente contienen etiquetas HTML o XHTML estático, y también etiquetas definiendo Controles Web que se procesan del lado del servidor y Controles de Usuario donde los desarrolladores colocan todo el código estático y dinámico requerido por la página web. Adicionalmente, el código dinámico que se ejecuta en el servidor puede ser colocado en una página dentro de un bloque <% -- código dinámico -- %> que es muy similar a otras tecnologías de desarrollo como PHP, JSP y ASP, pero esta práctica es, generalmente, desaconsejada excepto para propósitos de enlace de datos pues requiere más llamadas cuando se genera la página. 

ASP.NET no sólo funciona sobre el servidor de Microsoft IIS, también lo hace sobre Apache.

Formulario web de ejemplo[editar]

Este es un ejemplo que utiliza código "en línea", opuesto al código independiente (code-behind).

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)

    {

   Label1.Text = DateTime.Now.ToLongDateString();

    }

</script

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Página de Ejemplo</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:Label runat="server" id="Label1" />

    </div>

    </form>

</body>

</html>


Visual  NET 

es un framework de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una estrategia horizontal que integre todos sus productos, desde el sistema operativo hasta las herramientas de mercado.

 

.NET podría considerarse una respuesta de Microsoft al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java de Oracle Corporation y a los diversos framework de desarrollo web basados en PHP. Su propuesta es ofrecer una manera rápida y económica, a la vez que segura y robusta, de desarrollar aplicaciones –o como la misma plataforma las denomina, soluciones– permitiendo una integración más rápida y ágil entre empresas y un acceso más simple y universal a todo tipo de información desde cualquier tipo de dispositivo


Características
Es el encargado de proveer lo que se llama código administrado, es decir, un entorno que provee servicios automáticos al código que se ejecuta. Los servicios son variados:

Cargador de clases: permite cargar en memoria las clases.
Compilador MSIL a nativo: transforma código intermedio de alto nivel independiente del hardware que lo ejecuta a código de máquina propio del dispositivo que lo ejecuta.
Administrador de código: coordina toda la operación de los distintos subsistemas del Common Language Runtime.
Recolector de basura: elimina de memoria objetos no utilizados automáticamente.
Motor de seguridad: administra la seguridad del código que se ejecuta.
Motor de depuración: permite hacer un seguimiento de la ejecución del código aún cuando se utilicen lenguajes distintos.
Verificador de tipos: controla que las variables de la aplicación usen el área de memoria que tienen asignado.
Administrador de excepciones: maneja los errores que se producen durante la ejecución del código.
Soporte de multiproceso (hilos): permite desarrollar aplicaciones que ejecuten código en forma paralela.
Empaquetador de COM: coordina la comunicación con los componentes COM para que puedan ser usados por el .NET Framework.
Biblioteca de Clases Base que incluye soporte para muchas funcionalidades comunes en las aplicaciones.



lenguajes en programación:
Visual Basic

 es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft. Este lenguaje de programación es un dialecto de BASIC, con importantes agregados. Su primera versión fue presentada en 1991, con la intención de simplificar la programación utilizando un ambiente de desarrollo que facilitó en cierta medida la programación misma.

La última versión fue la 6, liberada en 1998, para la que Microsoft extendió el soporte hasta marzo de 2008.

En 2001 Microsoft propuso abandonar el desarrollo basado en la API Win32 y pasar a un framework o marco común de librerías, independiente de la versión del sistema operativo, .NET Framework, a través de Visual Basic .NET (y otros lenguajes como C Sharp (C#) de fácil transición de código entre ellos); fue el sucesor de Visual Basic 6.

Aunque Visual Basic es de propósito general, también provee facilidades para el desarrollo de aplicaciones de bases de datos usando Data Access Objects, Remote Data Objects o ActiveX Data Objects.

Visual Basic contiene un entorno de desarrollo integrado o IDE que integra editor de textos para edición del código fuente, un depurador, un compilador (y enlazador) y un editor de interfaces gráficas o GUI.
Características 
Los compiladores de Visual Basic generan código que requiere una o más librerías de enlace dinámico para que funcione, conocidas comúnmente como DLL (sigla en inglés de dynamic-link library); en algunos casos reside en el archivo llamado MSVBVMxy.DLL (siglas de "Microsoft Visual Basic Virtual Machine x. y", donde x. y es la versión) y en otros en VBRUNXXX.DLL ("Visual Basic Runtime X.XX"). Estas bibliotecas DLL proveen las funciones básicas implementadas en el lenguaje, conteniendo rutinas en código ejecutable que son cargadas bajo demanda en tiempo de ejecución. Además de las esenciales, existe un gran número de bibliotecas del tipo DLL con variedad de funciones, tales como las que facilitan el acceso a la mayoría de las funciones del sistema operativo o las que proveen medios para la integración con otras aplicaciones.

Dentro del mismo Entorno de desarrollo integrado (IDE) de Visual Basic se puede ejecutar el programa que esté desarrollándose, es decir en modo intérprete (en realidad pseudo-compila el programa muy rápidamente y luego lo ejecuta, simulando la función de un intérprete puro). Desde ese entorno también se puede generar el archivo en código ejecutable (exe); ese programa así generado en disco puede luego ser ejecutado sin requerir del ambiente de programación (incluso en modo stand alone), aunque sí será necesario que las librerías DLL requeridas por la aplicación desarrollada se encuentren también instaladas en el sistema para posibilitar su ejecución.

El propio Visual Basic provee soporte para empaquetado y distribución; es decir, permite generar un módulo instalador que contiene al programa ejecutable y las bibliotecas DLL necesarias para su ejecución. Con ese módulo la aplicación desarrollada se distribuye y puede ser instalada en cualquier equipo (que tenga un sistema operativo compatible).

Así como bibliotecas DLL, hay numerosas aplicaciones desarrolladas por terceros que permiten disponer de variadas y múltiples funciones, incluso mejoras para el propio Visual Basic; las hay también para el empaquetado y distribución, y hasta para otorgar mayor funcionalidad al entorno de programación (IDE).

Entorno de desarrollo [editar]
Existe un único entorno de desarrollo para Visual Basic, desarrollado por Microsoft: Microsoft Visual Basic x.0, correspondientes a versiones desde la 2.0 hasta la 20.0, (con respectivas diferencias entre versiones del lenguaje).

El entorno de desarrollo es muy similar al de otros lenguajes. Realizando una instalación típica del producto, las características básicas se presentan de la siguiente forma:

En la parte superior aparecen tres elementos, en este orden: la barra de título donde figura el nombre del proyecto en curso y su estado (diseño o ejecución); la barra de menú con 13 opciones desplegables y una barra de herramientas; esta última se puede personalizar, posibilitando la inclusión de prácticamente la totalidad de los comandos del IDE.
En la parte central, cubriendo la franja de mayor área, se encuentra el espacio de trabajo. Éste incluye y muestra las ventanas del proyecto, las vistas del código fuente de los módulos, los objetos y los controles que contienen las ventanas de la aplicación y el panel de controles.
El panel de controles, que aunque es móvil normalmente está ubicado a la derecha, por defecto cuenta con los siguientes controles:
PictureBox: Caja de imágenes
Label: Etiqueta
TextBox: Caja de texto
Frame: Marco
CommandButton: Botón de comando
CheckBox: Casilla de verificación
OptionButton: Botón de opción
ComboBox: Lista desplegable
ListBox: Lista
HScrollBar: Barra de desplazamiento horizontal
VScrollBar: Barra de desplazamiento vertical
Timer: Temporizador
DriveListBox: Lista de unidades de disco
DirListBox: Lista de directorios
FileListBox: Lista de archivos
Shape: Figura
Line: Línea
Image: Imagen
Data: Conexión a origen de datos
OLE: Contenedor de documentos embebidos compatibles con Object Linking and Embedding
Además de los listados, se pueden agregar todo tipo de controles de terceros, y hay una gran cantidad de ellos que se proveen con el propio Visual Basic 6.0. Los controles vienen embebidos dentro de archivos con extensión OCX.
Las ventanas de proyecto, aunque móviles, se encuentran en el panel lateral derecho y contienen dos vistas principales:
El Explorador de proyectos, que muestra todos los elementos que componen el proyecto o grupos de proyectos (formularios, interfaz de controles, módulos de código, módulos de clase, etc.)
El Panel de propiedades, donde se muestran todos los atributos de los objetos, controles, formularios, información de módulos clase, entre muchos otros.
La Ventana inmediato, por defecto se encuentra en la parte inferior, aunque puede no estar visible (se presionan las teclas Ctrl+G, en ese caso, para mostrar la ventana). Esta ventana resulta una herramienta muy útil a la hora de depurar el programa o bien para realizar pruebas rápidas, ya que permite imprimir mensajes de texto desde el código y ejecutar sentencias y comandos simples inmediatamente (sólo sentencias que se puedan escribir en una sola línea). Por ejemplo, de la aplicación en curso, se puede consultar el valor de una variable o llamar a un método declarado en el módulo que se está depurando. Se puede ejecutar código "al vuelo", por ejemplo con sentencias como:
sqr (2)
siendo el signo ? un reemplazo natural del comando Print en Basic, al ejecutar la sentencia se mostraría por pantalla el valor de la raíz cuadrada de 2. También se pueden usar variables del propio programa, o sentencias de código tales como:
Msgbox "Prueba de cuadro de mensaje de error.", vbCritical, "Título del mensaje"
A la hora de la depuración puede ser útil para consultar el valor de variables del programa, o el código de error como:
? Err.Number
Objetos y eventos [editar]
JavaScript

(abreviado comúnmente JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos,3 basado en prototipos, imperativo, débilmente tipado y dinámico.

Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas4 aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo.

JavaScript se diseñó con una sintaxis similar a C, aunque adopta nombres y convenciones del lenguaje de programación Java. Sin embargo, Java y JavaScript tienen semánticas y propósitos diferentes.

Todos los navegadores modernos interpretan el código JavaScript integrado en las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del Document Object Model (DOM).

Tradicionalmente se venía utilizando en páginas web HTML para realizar operaciones y únicamente en el marco de la aplicación cliente, sin acceso a funciones del servidor. Actualmente es ampliamente utilizado para enviar y recibir información del servidor junto con ayuda de otras tecnologías como AJAX. JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargándose junto con el código HTML.

Desde el lanzamiento en junio de 1997 del estándar ECMAScript 1, han existido las versiones 2, 3 y 5, que es la más usada actualmente (la 4 se abandonó5). En junio de 2015 se cerró y publicó la versión ECMAScript 66.
Características
Las siguientes características son comunes a todas las implementaciones que se ajustan al estándar ECMAScript, a menos que especifique explícitamente en caso contrario.

Imperativo y estructurado[editar]
JavaScript es compatible con gran parte de la estructura de programación de C (por ejemplo, sentencias if, bucles for, sentencias switch, etc.). Con una salvedad, en parte: en C, el ámbito de las variables alcanza al bloque en el cual fueron definidas; sin embargo JavaScript no es compatible con esto, puesto que el ámbito de las variables es el de la función en la cual fueron declaradas. Esto cambia con la versión de JavaScript 1.7, ya que añade compatibilidad con block scoping por medio de la palabra clave let. Como en C, JavaScript hace distinción entre expresiones y sentencias. Una diferencia sintáctica con respecto a C es la inserción automática de punto y coma, es decir, en JavaScript los puntos y coma que finalizan una sentencia pueden ser omitidos.22

Dinámico[editar]
Tipado dinámico
Como en la mayoría de lenguajes de scripting, el tipo está asociado al valor, no a la variable. Por ejemplo, una variable x en un momento dado puede estar ligada a un número y más adelante, religada a una cadena. JavaScript es compatible con varias formas de comprobar el tipo de un objeto, incluyendo duck typing.23 Una forma de saberlo es por medio de la palabra clave typeof.
Objetual
JavaScript está formado casi en su totalidad por objetos. Los objetos en JavaScript son arrays asociativos, mejorados con la inclusión de prototipos (ver más adelante). Los nombres de las propiedades de los objetos son claves de tipo cadena: obj.x = 10 y obj['x'] = 10 son equivalentes, siendo la notación con punto azúcar sintáctico. Las propiedades y sus valores pueden ser creados, cambiados o eliminados en tiempo de ejecución. La mayoría de propiedades de un objeto (y aquellas que son incluidas por la cadena de la herencia prototípica) pueden ser enumeradas a por medio de la instrucción de bucle for... in. JavaScript tiene un pequeño número de objetos predefinidos como son Function y Date.
Evaluación en tiempo de ejecución
JavaScript incluye la función eval que permite evaluar expresiones como expresadas como cadenas en tiempo de ejecución. Por ello se recomienda que eval sea utilizado con precaución y que se opte por utilizar la función JSON.parse() en la medida de lo posible, pues resulta mucho más segura.
Funcional[editar]
Funciones de primera clase
A las funciones se les suele llamar ciudadanos de primera clase; son objetos en sí mismos. Como tal, poseen propiedades y métodos, como .call() y .bind().24 Una función anidada es una función definida dentro de otra. Esta es creada cada vez que la función externa es invocada. Además, cada función creada forma una clausura; es el resultado de evaluar un ámbito conteniendo en una o más variables dependientes de otro ámbito externo, incluyendo constantes, variables locales y argumentos de la función externa llamante. El resultado de la evaluación de dicha clausura forma parte del estado interno de cada objeto función, incluso después de que la función exterior concluya su evaluación.25
Prototípico
Prototipos
JavaScript usa prototipos en vez de clases para el uso de herencia.26 Es posible llegar a emular muchas de las características que proporcionan las clases en lenguajes orientados a objetos tradicionales por medio de prototipos en JavaScript.27
Funciones como constructores de objetos
Las funciones también se comportan como constructores. Prefijar una llamada a la función con la palabra clave new crear una nueva instancia de un prototipo, que heredan propiedades y métodos del constructor (incluidas las propiedades del prototipo de Object).28 ECMAScript 5 ofrece el método Object.create, permitiendo la creación explícita de una instancia sin tener que heredar automáticamente del prototipo de Object (en entornos antiguos puede aparecer el prototipo del objeto creado como null).29 La propiedad prototype del constructor determina el objeto usado para el prototipo interno de los nuevos objetos creados. Se pueden añadir nuevos métodos modificando el prototipo del objeto usado como constructor. Constructores predefinidos en JavaScript, como Array u Object, también tienen prototipos que pueden ser modificados. Aunque esto sea posible se considera una mala práctica modificar el prototipo de Object ya que la mayoría de los objetos en Javascript heredan los métodos y propiedades del objeto prototype, objetos los cuales pueden esperar que estos no hayan sido modificados.30
Otras características
Entorno de ejecución
JavaScript normalmente depende del entorno en el que se ejecute (por ejemplo, en un navegador web) para ofrecer objetos y métodos por los que los scripts pueden interactuar con el "mundo exterior". De hecho, depende del entorno para ser capaz de proporcionar la capacidad de incluir o importar scripts (por ejemplo, en HTML por medio del tag <script>). (Esto no es una característica del lenguaje, pero es común en la mayoría de las implementaciones de JavaScript.)
Funciones variádicas
Un número indefinido de parámetros pueden ser pasados a la función. La función puede acceder a ellos a través de los parámetros o también a través del objeto local arguments. Las funciones variádicas también pueden ser creadas usando el método .apply().
Funciones como métodos
A diferencia de muchos lenguajes orientados a objetos, no hay distinción entre la definición de función y la definición de método. Más bien, la distinción se produce durante la llamada a la función; una función puede ser llamada como un método. Cuando una función es llamada como un método de un objeto, la palabra clave this, que es una variable local a la función, representa al objeto que invocó dicha función.
Arrays y la definición literal de objetos
Al igual que muchos lenguajes de script, arrays y objetos (arrays asociativos en otros idiomas) pueden ser creados con una sintaxis abreviada. De hecho, estos literales forman la base del formato de datos JSON.
Expresiones regulares
JavaScript también es compatible con expresiones regulares de una manera similar a Perl, que proporcionan una sintaxis concisa y poderosa para la manipulación de texto que es más sofisticado que las funciones incorporadas a los objetos de tipo string.31
Extensiones específicas del fabricante[editar]
JavaScript se encuentra oficialmente bajo la organización de Mozilla Foundation, y periódicamente se añaden nuevas características del lenguaje. Sin embargo, sólo algunos motores JavaScript son compatibles con estas características:

Las propiedades get y set (también compatibles con WebKit, Opera,32 ActionScript y Rhino).33
Cláusulas catch condicionales.
Protocolo iterador adoptado de Python.
Corrutinas también adoptadas de Python.
Generación de listas y expresiones por comprensión también adoptado de Python.
Establecer el ámbito a bloque a través de la palabra clave let.
Desestructuración de arrays y objetos (forma limita de emparejamiento de patrones).
Expresiones concretas en funciones (function(args) expr).
ECMAScript para XML (E4X), una extensión que añade compatibilidad nativa XML a ECMAScript.
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 des arrolladores 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 la plataforma 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 a bytecode (clase Java) que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura 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.
Característica de java.
Las características principalesque nos ofrece Java son:
1.- Lenguaje  Simple:
Se lo conoce como lenguaje simpleporque viene de la misma estructura de c y c++; ya que c++ fue un referentepara la creación de java por eso utiliza determinadas características de c++ yse han eliminado otras.
2.- Orientado a Objeto:
Toda la programación en java ensu mayoría está orientada a objeto, ya que al estar agrupados en estructurasenestructuras encapsuladas es más fácil su manipulación.
3.- Distribuido:
Permite abrir sockets, establecery aceptar conexiones con los servidores o clientes remotos; facilita lacreación de aplicaciones distribuidas ya que proporciona una colección declases para aplicaciones en red.
4.- Robusto:
Es altamente fiable encomparación con c,  se han eliminadomuchas características con la aritmética de punteros, proporciona numerosascomprobaciones en compilación y en tiempo de ejecución.

5.- Seguro:
La seguridad es unacaracterística muy importante en java ya que se han implementado barreras deseguridad en el lenguaje y en el sistema de ejecución de tiempo real.
6.- Indiferente a laarquitectura:
Java es compatible con los másvariados entornos de red, cualquiera sean estos desde Windows 95, Unix aWindows Nt  y Mac, para poder trabajarcon diferentes sistemas operativos.
Java es muy versátil ya queutiliza byte-codes que es un formato intermedio que sirve para transportar elcódigo eficientemente o de diferentes  plataformas (Hardware - Software).
7.- Portable:
Por ser indiferente a laarquitectura sobre la cual está trabajando, esto hace que su portabilidad seamuy eficiente, sus programas son iguales en cualquiera de las plataformas, yaque java especifica tamaños básicos, esto se conoce como la máquina virtual dejava.
8.- Interpretado y compilado a lavez:
Java puede ser compilado einterpretado en tiempo real,  ya que  cuando se construye el código fuente este setransforma en una especie de código de máquina.
9.- Multihebra o Multihilos:
Java tiene una facilidad decumplir varias funciones al mismo tiempo, gracias a su función  de multahilos ya que por cada hilo que elprograma tenga se ejecutaran en tiempo real muchas funciones al mismo tiempo.
10.- Dinámico:
El lenguaje java es muy dinámicoen la fase de enlazado, sus clases solamente actuaran en medida en que  sean requeridas o necesitadas con estopermitirá que los enlaces se puedan incluir incluso desde fuentes muy variadaso desde la red.

11.- Produce Applets:
En java se pueden crearaplicaciones independientes y applets.
Independientes porque se puedencomportar como cualquier programa escrito en cualquier lenguaje.
Por otra parte los appletsconsiderados pequeños programas, tienen la capacidad de ejecutar funciones muycomplejas.
12.- Alto rendimiento
Java es considerado de altorendimiento por ser tan  veloz en elmomento de correr los programas y por ahorrase muchas líneas de código.

Visual C++ (también conocido como MSVC++, Microsoft Visual C++) es un entorno de desarrollo integrado (IDE) para lenguajes de programación C, C++ y C++/CLI. Visual C++ engloba el desarrollo de aplicaciones hechas en C, C++ y C++/CLI en el entorno Windows. Visual C++ incluye además las bibliotecas de Windows (WinApi), las bibliotecas MFC y el entorno de desarrollo para .NET Framework. Visual C++ cuenta con su propio compilador (de igual nombre) y otras herramientas como IntelliSense, TeamFoundation Server, Debug,... Además provee de bibliotecas propias de cada versión del sistema operativo y sockets. Como otros compiladores, se le pueden añadir nuevas bibliotecas como DirectX, wxWidgets o SDL.
Cuenta con una versión Express, llamada Microsoft Visual C++ Express Edition, la cual es gratuita y se puede descargar desde el sitio de Microsoft.
El lenguaje de programación utilizado por esta herramienta, de igual nombre, está basado en C++ y es compatible en la mayor parte de su código con este lenguaje, a la vez que su sintaxis es exactamente igual. En algunas ocasiones esta incompatibilidad impide que otros compiladores, sobre todo en otros sistemas operativos, funcionen bien con código desarrollado en este lenguaje.
Una de las nuevas implementaciones es que el llamado código administrado (managed code) hace uso de una de las mejores herramientas dentro de .NET, el recolector de basura (garbage collector).
 Características
Visual C++ hace uso extensivo del framework Microsoft Foundation Classes (o simplemente MFC), el cual es un conjunto de clases C++ para el desarrollo de aplicaciones en Windows.
El IDE cuenta con herramientas como el IntelliSense, RemoteDebuging, Editar y Continuar, y Texto Resaltado.
Cuenta con una versión Express, llamada Microsoft Visual C++ Express Edition, la cual es gratuita y se puede descargar desde el sitio de Microsoft.
El lenguaje de programación utilizado por esta herramienta, de igual nombre, está basado en C++ y es compatible en la mayor parte de su código con este lenguaje, a la vez que su sintaxis es exactamente igual. En algunas ocasiones esta incompatibilidad impide que otros compiladores, sobre todo en otros sistemas operativos, funcionen bien con código desarrollado en este lenguaje.
Algunas de las nuevas implementaciones es que el llamado código administrado (managed code), hace uso de una de las mejores herramientas dentro de .NET, el recolector de basura (garbage collector).