lenguajes de programación y aplicaciones

30
A SANTZEZ COMPILATION. LENGUAJES DE PROGRAMACIÓN Administración de sistemas. Metodología. Lenguajes y aplicaciones de gestión de los mismos. Zope ................................................................................................................... 2 Plone .................................................................................................................. 3 Sistemas de gestión de contenidos .................................................................... 6 Visual Basic ........................................................................................................ 7 Gambas ............................................................................................................ 14 PHP .................................................................................................................. 16 Java .................................................................................................................. 28 C....................................................................................................................... 29 Python .............................................................................................................. 30

Upload: santzez

Post on 30-Jun-2015

2.677 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lenguajes de programación y aplicaciones

A SANTZEZ COMPILATION.

LENGUAJES DE PROGRAMACIÓN

Administración de sistemas. Metodología.

Lenguajes y aplicaciones de gestión de los mismos.

Zope ................................................................................................................... 2

Plone .................................................................................................................. 3

Sistemas de gestión de contenidos .................................................................... 6

Visual Basic ........................................................................................................ 7

Gambas ............................................................................................................ 14

PHP .................................................................................................................. 16

Java .................................................................................................................. 28

C ....................................................................................................................... 29

Python .............................................................................................................. 30

Page 2: Lenguajes de programación y aplicaciones

2

Zope Zope es un servidor de aplicaciones web de código abierto escrito en el

lenguaje de programación Python. Para las funciones de edición de contenidos,

así como personalizaciones básicas, puede ser usado mediante un navegador

web. La programación avanzada así como el desarrollo de nuevas

funcionalidades requiere la edición de componentes en «file system».

Un sitio web de Zope está compuesto de objetos en lugar de archivos, como es

usual con la mayoría de los otros sistemas de servidores web. Las ventajas de

usar objetos en lugar de archivos son:

Combinan el comportamiento y los datos en una forma más natural que

los archivos de texto plano.

Alientan el uso de componentes estándares que se ocupan de una parte

particular de las que forman una aplicación Web, permitiendo flexibilidad

y buena descomposición.

Posibilitan procesos automáticos de gestión de información.

Lo más característico de Zope es su base de datos orientada a objetos,

llamada ZODB o Zope Object Database. Esta base de datos almacena objetos

ordenados en un sistema similar a un sistema de ficheros, pero cada objeto

tiene propiedades, métodos u otros objetos. Esta aproximación es muy

diferente de las base de datos relacionales habituales. Sin embargo, Zope

dispone de múltiples conectores para las diferentes bases de datos

relacionales y ofrece sistemas básicos de conexión y consulta abstrayéndolos

como objetos.

Actualmente existen dos ramas principales, zope2 y zope3. Este último es una

reimplementación del servidor zope, donde se ha tratado de volcar toda la

experiencia adquirida en zope2. Zope3 no trae compatibilidad hacia atrás, por

lo que los componentes hechos para zope2 no funcionan. Aún se está en un

proceso de adaptación hacia este nuevo zope, para lo cual está usando un

componente llamado five, con el cual desde zope2 pueden tener la facilidad de

zope3.

Page 3: Lenguajes de programación y aplicaciones

3

Plone Plone es un Sistema de Gestión de Contenidos o CMS por sus siglas en inglés

(Content Management System), basado en Zope (que tiene miles de

desarrolladores en todo el mundo) y programado en Python. Es un desarrollo

basado en código abierto. Plone puede utilizarse para construir portales, sitios

webs corporativos, sitios de noticias, servidor de extranet o intranet, como

sistema de publicación, repositorio de documentos, herramienta colaborativa

(Groupware), comercio en línea (E-commerce).1

Frecuentemente es utilizado también como CRM, aun cuando no fue diseñado

como tal. También han sido estudiadas sus capacidades como Sistema de

Gestión de Conocimiento (KMS, del inglés Knowledge Management System)2

El proyecto Plone comenzó en 1999 por Alan Runyan, Alexander Limi, y Vidar

Andersen. Rápidamente se convirtió en uno de los populares y poderosos

Sistemas de Gestión de Contenido de Código Abierto. En el 2004 se creó la

Fundación Plone para proteger y promover el uso de Plone.

El estilo "Monobook" de la Wikipedia está basado parcialmente en el estilo de

las páginas de Plone.3

Características

Producción muy rápida

Enfocado en los contenidos/documentos

La utilización adecuada de carpetas virtuales y "flujos de trabajo" le permiten

adaptarse a múltiples funciones (p.ej, como CRM).

Entorno gráfico tipo "web".

Gestión de contenido deslocalizado

Edición de las páginas en tiempo real

Colaboración fácil

Localización de la interfaz en modo nativo

Uso limitado de las imágenes (con la utilización masiva de CSS)

Enfocado a la usabilidad

Apropiación de los usuarios estimulando la producción de contenidos

Page 4: Lenguajes de programación y aplicaciones

4

Gestión del histórico y de la anulación (undo)

Plantillas (templates) con estándares de la industria

Motor de búsqueda completo, indexación en tiempo real

Modulable, evolutivo y fácilmente personalizable

Motor de workflow integrado

Arquitectura abierta Plone es construido sobre una arquitectura de componentes reutilizables. Más

de 80 programadores han desarrollado 60 plug-ins para Plone. Numerosas

extensiones (ArcheType por ejemplo) permiten desplegar los componentes de

oficio específicos.

El modelo de desarrollo de Plone (Zope en realidad) sigue un diseño orientado

a aspectos muy bien implementado. Esto posibilita que aspectos como la

seguridad, la presentación, la gestión de errores, workflow o transacciones

sean tratados "ortogonalmente" sin estorbarse. Incluso los mejores frameworks

existentes hoy en día para Java (Spring) no consiguen una implementación tan

limpia [cita requerida]. El modelo de plantillas utilizado para la capa de

presentación es también extraordinario y de hecho JSP copió varias ideas del

diseño a la hora de crear los "taglib" para desarrollo web en Java [cita

requerida].

Gran parte del mérito de Zope/Plone lo tuvo la arriesgada decisión de fundar

los pilares de la aplicación en una base de datos de objetos enlazados (en

contraposición a una base de datos relacional). Esta decisión a largo plazo se

mostró altamente acertada y permite un desarrollo mucho más natural ya que

el modelo relacional falla cuando el esquema es "difuso", algo común en un

sistema documental donde el objeto base, el documento, no tiene un esquema

sólido y definido. Para que todo pueda funcionar en la práctica se requería sin

embargo un sistema de indexación muy potente para poder ejecutar búsquedas

o recorrer la "red de objetos" rápidamente.

El sistema de indexación fue implementado de nuevo con gran éxito hasta el

punto que el mismo permite hacer "búsquedas en tiempo real" aún en bases de

datos con decenas de Gigabytes y crear carpetas inteligentes (búsquedas

almacenadas que el usuario ve como una carpeta de contenido) con un tiempo

de respuesta extremadamente rápido (décimas de segundo en bases de datos

de más de un Giga) [cita requerida].

El despliege de una aplicación Plone es fácil por la independencia al sistema

operativo (Linux, Windows, Mac OS X, BSD, Solaris) y con scripts de

instalaciones (Customization Policies) permitiendo el embalaje de la aplicación.

Page 5: Lenguajes de programación y aplicaciones

5

El motor de Flujo de trabajo (workflow) reproduce los procesos de oficio,

permite los Flujos de trabajo en los documentos (Entity-based workflows) y en

las acciones (Action-based workflows). Todos los elementos del sistema de

información pueden tener flujo de trabajo, incluyendo los usuarios.

La integración a los sistemas existentes es fácil, ya sea la autentificación

(LDAP, SQL, sistema operativo) o la salvaguardia de los datos (base de datos

integrada o SGBD externa - PostgreSQL, Oracle, MS SQL, Sybase, MySQL).

Un sistema basado en los usuarios. El acento es puesto en una interfaz de

usuarios agradable e intuitiva : numerosas pruebas de usabilidad fueron

efectuados. Sobre el principio de la autentificación única del usuario, el usuario

accede al conjunto de los servicios del sitio después de su identificación. Plone

se centra en el contenido (o documento) como unidad central de trabajo

ofreciendo una alta productividad a sus usuarios, que no se ven distraídos por

menús y barras de herramientas "laberínticas" como en herramientas

ofimáticas convencionales.

La interfaz de Plone es compatible con los estándares de CSS y de XHTML. EL

uso intensivo de CSS permite de beneficiar de una interfaz ligera. En nativo,

cada página del sitio es optimizada para la impresión. También cada página

tiene su propio modo de visualización.

Sobre la seguridad, Plone pone a disposición de los usuarios roles y grupos

con mucha flexibilidad. También es posible manejar localmente la seguridad y

no solamente al nivel del conjunto del sistema. Es decir un usuario puede ser

administrador de la zona "/financiero" al tiempo que sólo es miembro restringido

de "/soporte".

Lenguajes usados Plone es principalmente desarrollado en Python. Como siempre, se usan otros

lenguajes en el proyecto. A continuación una tabla que resume los lenguajes

usados en Plone, como esta aparece en el sitio de ohloh del proyecto Plone:

Python 58%

JavaScript 28%

XML 12%

Otros 2%

En la categoría de "Otros" se incluyen HTML, Perl, AWK, Make y otras más.

Page 6: Lenguajes de programación y aplicaciones

6

Sistemas de gestión de

contenidos Un sistema de gestión de contenidos (en inglés Content Management System,

abreviado CMS) es un programa que permite crear una estructura de soporte

(framework) para la creación y administración de contenidos, principalmente en

páginas web, por parte de los participantes.

Consiste en una interfaz que controla una o varias base de datos en las cuales

podemos realizar modificaciones del contenido bases de datos donde se aloja

el contenido del sitio. El sistema permite manejar de manera independiente el

contenido y el diseño. Así, es posible manejar el contenido y darle en cualquier

momento un diseño distinto al sitio sin tener que darle formato al contenido de

nuevo, además de permitir la fácil y controlada publicación en el sitio a varios

editores. Un ejemplo clásico es el de editores que cargan el contenido al

sistema y otro de nivel superior (directorio) que permite que estos contenidos

sean visibles a todo el público (los aprueba).

Joomla! es un sistema de gestión de contenidos, y entre sus principales virtudes está la

de permitir editar el contenido de un sitio web de manera sencilla. Es una

aplicación de código abierto programada mayoritariamente en PHP bajo una

licencia GPL. Este administrador de contenidos puede trabajar en Internet o

intranets y requiere de una base de datos MySQL, así como, preferiblemente,

de un servidor HTTP Apache.

Page 7: Lenguajes de programación y aplicaciones

7

Visual Basic Visual Basic es un lenguaje de programación desarrollado por el aleman Alan

cooper para Microsoft. El lenguaje de programación es un dialecto de BASIC0,

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

completamente gráfico que facilitara la creación de interfaces gráficas y, en

cierta medida, también la programación misma. Desde el 2001 Microsoft ha

propuesto abandonar el desarrollo basado en la API Win32 y pasar a trabajar

sobre 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).

Visual Basic (Visual Studio) constituye un IDE (entorno de desarrollo integrado

o en inglés Integrated Development Enviroment) que ha sido empaquetado

como un programa de aplicación, es decir, consiste en un editor de código

(programa donde se escribe el código fuente), un depurador (programa que

corrige errores en el código fuente para que pueda ser bien compilado), un

compilador (programa que traduce el código fuente a lenguaje de máquina), y

un constructor de interfaz gráfica o GUI (es una forma de programar en la que

no es necesario escribir el código para la parte gráfica del programa, sino que

se puede hacer de forma visual).

Contenido [mostrar]

Compilador

El compilador de Visual Basic x.0 genera ejecutables que requieren una DLL

para que funcionen, en algunos casos llamada MSVBSGHVMxy.DLL (acrónimo

de "MicroSoft Visual Basic Virtual Machine x.y", siendo x.y la versión) y en otros

VBSDGRUNXXX.DLL ("Visual Basic Runtime X.XX"), que provee todas las

funciones implementadas en el lenguaje. Además existen un gran número de

bibliotecas (DLL) que facilitan el acceso a muchas funciones del sistema

operativo y la integración con otras aplicaciones. Actualmente la mayoría de

estas bibliotecas y componentes adicionales para ejecutar los programas

desarrollados en Visual Basic 6.56 vienen de serie en las versiones de

Windows posteriores a XP.

En versiones anteriores era necesario instalar la librería en tiempo de ejecución

(runtime) y las bibliotecas comunes se podían descargar del sitio web de

(MSDN).

Page 8: Lenguajes de programación y aplicaciones

8

Entorno de desarrollo

Su entorno de desarrollo es muy similar al de otros lenguajes e IDE's.

Se compone principalmente de su barra de herramientas y menús que se

pueden personalizar con prácticamente la completa totalidad de los comandos

del IDE a necesidad.

El espacio de trabajo donde se muestran todas las ventanas del proyecto, las

vistas de código de módulos y objetos, y las vistas de diseño de formularios y

componentes.

El Cuadro de herramientas (por defecto a la izquierda) contiene los controles

con los que componen las ventanas de nuestra aplicación. Por defecto

disponemos los controles básicos:

(PictureBox) Caja de Imagen

(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

Page 9: Lenguajes de programación y aplicaciones

9

(Image) Imagen

(Data) Conexión a origen de datos

(OLE) Contenedor de documentos embebidos compatibles con Object Linking

and Embedding

Se pueden agregar todo tipo de controles de terceros, una gran cantidad de

ellos de serie con la instalación de Visual Basic 6.0, que vienen embebidos

dentro de archivos de extensión *.OCX.

El panel lateral derecho contiene dos vistas principales:

El Explorador de Proyectos, que muestra todos los elementos que componen

nuestro 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

controles de nuestros formularios o la información de modulos clase y

formularios entre otros muchos.

La Ventana de inmediato (por defecto en la parte inferior aunque puede no

estar visible. Utilizar Ctrl+G mostrar la ventana). Esta ventana resulta una

herramienta muy útil a la hora de depurar código o incluso de hacer pruebas

rápidas ya que permite imprimir mensajes de texto desde nuestro código y

ejecutar sentencias simples de código (solo sentencias que se puedan

representar en una sola línea, no permite bloques) que puede ser desde código

de nuestra propia aplicación, por ejemplo consultar el valor de una variable o

llamar a un método declarado en el módulo que se està depurando, así como

ejecutar código al vuelo, esto viene a ser por ejemplo probar cosas como:

?2+2

Al ejecutarlo devolvería el resultado de la operación, pudiendo usar variables

del código de la aplicación, o sentencias de código como:

Msgbox "Prueba de cuadro de mensaje de error.", vbCritical, "Titulo del

mensaje"

A la hora de depurar errores es útil para consultar el error en cuestión:

?Err.Number

Versiones

Las versiones de Visual Basic para Windows son muy conocidas, pero existe

una versión de Microsoft Visual Basic 1.0 para MS-DOS (ediciones Profesional

Page 10: Lenguajes de programación y aplicaciones

10

y Estándar) menos difundida y que data de 1992. Era un entorno que, aunque

en modo texto, incluía un diseñador de formularios en el que se podían

arrastrar y soltar distintos controles.

La última versión sólo para 16 bits, la 3.0, no incluía una detallada biblioteca de

componentes para toda clase de usos. Durante la transición de Windows 3.11 a

Windows 95, apareció la versión 4.0, que podía generar programas de 16 y 32

bits a partir de un mismo código fuente, a costa de un gran aumento en el

tamaño de los archivos "runtime" necesarios. Además, se sustituyen los

controles VBX por los nuevos OCX. Con la versión 5.0, estuvo a punto de

implementar por primera vez la posibilidad de compilar a código nativo,

obteniendo una mejora de rendimiento considerable. Tanto esta como la

posterior 6.0 soportaban características propias de los lenguajes orientados a

objetos, aunque careciendo de algunos ítems importantes como la herencia y la

sobrecarga. La versión 6.0 continua utilizándose masivamente y es casi

compatible prácticamente al 100% con las últimas versiones de Windows como

Vista y Windows 7.

Las versiones actuales de Visual Basic se basan en la plataforma .NET, que se

desligan de las anteriores versiones.

Cabe mencionar que aunque menos conocido, existió también una versión

gratuita de Visual Basic 5.0 dedicada en su práctica al desarrollo de controles y

componentes, su nombre en concreto era Microsoft Visual Basic 5.0 Control

Creation Edition (Visual Basic 5 CCE). También hubo versiones orientadas al

desarrollo de aplicaciones para dispositivos móviles basados en Windows CE y

Pocket PC, conocido como eMbedded Visual Basic.

Ventajas

Es un lenguaje .

Posee una curva de aprendizaje muy rápida.

Integra el diseño e implementación de formularios de Windows.

Permite usar con suma facilidad la plataforma de los sistemas Windows dado

que tiene acceso prácticamente total a la API de Windows incluídas librerías

actuales.

El código en Visual Basic es fácilmente migrable a otros lenguajes.

Es un lenguaje muy extendido por lo que resulta fácil encontrar información,

documentación y fuentes para los proyectos.

Page 11: Lenguajes de programación y aplicaciones

11

Fácilmente extensible mediante librerías DLL y componentes ActiveX de otros

lenguajes.

Posibilidad de añadir soporte para ejecución de scripts, VBScript o JScript, en

las aplicaciones mediante Microsoft Script Control.

Acceso a la API multimedia de DirectX (versiones 7 y 8). También está

disponible, de forma no oficial, un componente para trabajar con OpenGL 1.1:

VBOpenGL type library

Existe una versión integrada en las aplicaciones de Office, versiones tanto

Windows como Mac, que permite programar macros para extender y

automatizar funcionalidades en documentos como por ejemplo una hoja de

cálculo de Excel o una base de datos Access (VBA)

Es un entorno perfecto para realizar pequeños prototipos rápidos de ideas.

Inconvenientes

Sin soporte oficial de Microsoft desde el 4 de abril de 2008 (aunque existe

mucha documentación disponible en el sitio de MSDN incluídas descargas de

Service Packs, paquetes de dependencias mínimas y similares en el sitio web

de Microsoft).

No es multiplataforma (sin embargo se pueden usar emuladores e intérpretes

para correrlos en otras plataformas).

Por defecto permite la programación sin declaración de variables, (que puede

ser sencillamente corregida escribiendo la frase Option Explicit en el

encabezado de cada módulo de código, en cuyo caso será menester declarar

todas las variables a utilizar, lo que a la postre genera código más estable y

seguro).

No permite programación a bajo nivel ni incrustar secciones de código en ASM

(aunque es posible ejecutar código ASM mediante pequeños hacks como este).

Sólo soporta librerías dinámicas (DLL) que usen la convención de llamadas

_stdcall y componentes y librerías ActiveX.

Es un lenguaje basado en objetos pero no implementa por completo la filosofía

de Orientación a Objetos (véase POO).

No permite la sobrecarga de operadores ni métodos.

No permite nombres de espacio (véase namespace).

Page 12: Lenguajes de programación y aplicaciones

12

No soporta el puntero a memoria salvo en algunas acciones concretas, como

por ejemplo pasar la dirección de memoria de una función como argumento

(operador AddressOf).

No soporta tratamiento de procesos como parte del lenguaje.

No incluye operadores de desplazamiento de bits como parte del lenguaje.

No permite el manejo de memoria dinámica, punteros, etc. como parte del

lenguaje.

No soporta el tratamiento de excepciones. Su tratamiento de errores se basa

en la captura de mensajes y desvío del flujo de ejecución de la forma

tradicional del BASIC (On Error Goto <etiqueta/numero línea>).

No controla todos los errores de conversión de tipos dado que en muchas

ocasiones hace conversiones al vuelo (sobre todo al usar variables de tipo

Variant).

Aunque existen opciones avanzadas en el compilador para desactivar los

controladores de desbordamiento de enteros o las comprobaciones de límites

en matrices entre otros (presumiblemente para optimizar y lograr algo de

rendimiento) no es seguro del todo dado que hay más posibilidades de generar

una excepción grave no controlada por el intérprete (y por consiguiente del

programador) o un memory leak haciendo el programa altamente inestable e

impredecible.

No tiene instrucciones de preprocesamiento.

El tratamiento de mensajes de Windows es básico e indirecto.

La gran gama de controles incorporados son, sin embargo en algunos casos,

muy generales, lo que lleva a tener que reprogramar nuevos controles para una

necesidad concreta de la aplicación. Esto cambia radicalmente en Visual Basic

.NET donde es posible reprogramar y mejorar o reutilizar los controles

existentes.

El depurador no es demasiado flexible ni cómodo en ciertas situaciones.

Los controles personalizados no mejoran la potencia de la API de Windows, y

en determinados casos acudir a ésta será el único modo de conseguir el control

personalizado deseado.

No soporta correctamente la programación multihilo haciendo muy inestable su

ejecución inclusive desde el propio entorno de desarrollo.

Su fuerte dependencia de librerías y componentes ActiveX que requieren de

privilegios de administrador para poder instalar las aplicaciones (existen

opciones de terceras aplicaciones para generar ejecutables independientes que

Page 13: Lenguajes de programación y aplicaciones

13

embeben las dependencias en el propio código del ejecutable, por ejemplo:

Molebox o Thinstall/VMware Thinapp).

Entornos de desarrollo

Existe un único entorno de desarrollo para Visual Basic, desarrollado por

Microsoft:

Microsoft Visual Basic x.0 para versiones desde la 1.0 hasta la 6.0, (con las

diferencias entre las versiones desde la 1.0 (MS-DOS/Windows 3.1) hasta la

3.0 (16 bits, Windows 3.1/95) y las de la 4.0 (16/32 bits, Windows 3.1/95/NT)

hasta la 6.0 (32 bits, Windows 9x/Me/NT/2000/XP/2003 server/Vista/2008

server/7).

Alternativas multiplataforma o externas

a Windows

Existen múltiples alternativas dentro y fuera de Windows que intentan imitar a

este lenguaje y su mecánica de desarrollo. El más conocido y popular es

Gambas:

Gambas es un proyecto libre para implementar programación visual con Basic

en GNU/Linux. Está derivado principalmente de Visual Basic, adaptándose a

partir de su lenguaje y su entorno de desarrollo, para implementar su propia

variante, parcialmente compatible con Visual Basic, aportando y enriqueciendo

con las oportunidades que brinda GNU/Linux.

Otras opciones conocidas son Real Basic o PureBasic que permiten desarrollar

bajo Windows, Linux, Mac OS e independientemente, PureBasic permite

desarrollar también para Amiga OS. A diferencia de Gambas, estas son

soluciones comerciales y no son libres.

Page 14: Lenguajes de programación y aplicaciones

14

Gambas Gambas es un lenguaje de programación libre derivado de BASIC. Es

distribuido con licencia GNU GPL. Cabe destacar que presenta ciertas

similitudes con Java ya que en la ejecución de cualquier aplicación, se requiere

un conjunto de librerías interprete previamente instaladas (Gambas Runtime)

que entiendan el bytecode de las aplicaciones desarrolladas y lo conviertan en

código ejecutable por el computador. Por otro lado, a diferencia de Java, no se

experimentan ralentizaciones y es posible desarrollar grandes aplicaciones en

poco tiempo.

Permite crear formularios con botones de comandos, cuadros de texto y

muchos otros controles y enlazarlos a bases de datos como MySQL,

PostgreSQL o SQLite además de facilitar la creación de aplicaciones muy

diversas como videojuegos (utilizando OpenGL), aplicaciones para dispositivos

móviles (en desarrollo pero muy avanzado), aplicaciones de red (con manejo

avanzado de protocolos HTTP, FTP, SMTP, DNS), entre otras .

Historia

Gambas nació como respuesta a la necesidad de tener un entorno de

desarrollo rápido de aplicaciones RAD que cumple la necesidad de muchos

programadores del lenguaje de Microsoft de tener un lenguaje de programación

sencillo para plataformas libres (como GNU/Linux y BSD).

A pesar de estar basado en el lenguaje BASIC y poseer gran similitud con

Visual Basic, Gambas no es un clon de este último.

Componentes

Un compilador.

Un intérprete.

Un archivador.

Una interfaz gráfica de usuario GUI.

Un entorno de desarrollo.

Portabilidad

Page 15: Lenguajes de programación y aplicaciones

15

Gambas ha sido portado a casi cualquier distribución de GNU/Linux, a

excepción de Linspire en la cual hay problemas con las librerías Qt. Además,

ha sido portada a OpenBSD y es mantenido como un port oficial. Mientras que

para sistemas operativos como Microsoft Windows o Mac, según informa la

página oficial de Gambas, es posible en el primero compilar a través de

Cygwin, pero muchos componentes principales como aquellos que conforman

las GUI no podrán ser compiladas, y para el segundo es posible compilar sin

problemas, aunque lo más probable es que al momento de la ejecución el

resultante sea una falla crítica. En la página oficial se muestra el estado de la

portabilidad de Microsoft Windows y Mac, y en ambos su Status tiene una

calificación de Bad.

Diferencias con Visual Basic (6.0) La principal diferencia con respecto a Visual Basic 6.0 es el soporte para

orientación a objetos. En Gambas, no existen los arrays de controles -muy

populares en Visual Basic- pero dispone de un elemento similar llamado group,

que utilizado conjuntamente con arrays de objetos ofrecen resultados análogos.

Gambas añade algunas propiedades nuevas en algunos de sus controles,

como la alineación vertical/horizontal en etiquetas, o algunas propiedades

gráficas en el elemento Button (Equivalente a CommandButton de Visual

Basic).

El acceso a bases de datos es sumamente sencillo y potente. Gambas incluye,

al igual que Visual Basic, su propio empaquetador para la distribución de

aplicaciones, que permite crear incluso paquetes Deb. Los componentes

suministrados en Gambas 2.0 son realmente potentes, desde una librería para

el manejo de documentos pdf, hasta componentes para imágenes, sockets e

informes (equivalentes a Crystal reports) y otras herramientas gratuitas

alternativas.

Es importante señalar que prácticamente todos los proyectos desarrollados en

este entorno son compatibles con versiones nuevas de Gambas, no así los

hechos por Microsoft Visual Basic, es decir, por ejemplo un proyecto hecho en

Microsoft Visual Basic 5.0 difícilmente funcionará en la última versión, ya que

no es orientado a objetos, por lo tanto carece de herencia.

Gambas es una excelente y potente alternativa a la programación visual

ofrecida en Visual Basic para entornos GNU/Linux. Su talón de aquiles

actualmente la imposibilidad de crear aplicaciones para Windows y Mac OSX.

Aunque muchos critican la escasa documentación, existen libros completos [1]

(en español e inglés) que tratan a profundidad todos los componentes de este

lenguaje de programación.

Page 16: Lenguajes de programación y aplicaciones

16

PHP PHP es un lenguaje de programación interpretado, diseñado originalmente para

la creación de páginas web dinámicas. Es usado principalmente en

interpretación del lado del servidor (server-side scripting) pero actualmente

puede ser utilizado desde una interfaz de línea de comandos o en la creación

de otros tipos de programas incluyendo aplicaciones con interfaz gráfica

usando las bibliotecas Qt o GTK+.

PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor

(inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado

originalmente por Rasmus Lerdorf en 1994; sin embargo la implementación

principal de PHP es producida ahora por The PHP Group y sirve como el

estándar de facto para PHP al no haber una especificación formal. Publicado

bajo la PHP License, la Free Software Foundation considera esta licencia como

software libre.

Visión general

PHP es un lenguaje interpretado de propósito general ampliamente usado,

diseñado especialmente para desarrollo web y que puede ser incrustado dentro

de código HTML. Generalmente se ejecuta en un servidor web, tomando el

código en PHP como su entrada y creando páginas web como salida. Puede

ser desplegado en la mayoría de los servidores web y en casi todos los

sistemas operativos y plataformas sin costo alguno. PHP se encuentra

instalado en más de 20 millones de sitios web y en un millón de servidores, el

número de sitios en PHP ha compartido algo de su preponderante sitio con

otros nuevos lenguajes no tan poderosos desde agosto de 2005. Este mismo

sitio web de Wikipedia está desarrollado en PHP. Es también el módulo Apache

más popular entre las computadoras que utilizan Apache como servidor web.

La versión más reciente de PHP es la 5.3.2 (for Windows) del 04 de marzo de

2010.

El gran parecido que posee PHP con los lenguajes más comunes de

programación estructurada, como C y Perl, permiten a la mayoría de los

programadores crear aplicaciones complejas con una curva de aprendizaje

muy corta. También les permite involucrarse con aplicaciones de contenido

dinámico sin tener que aprender todo un nuevo grupo de funciones.

Aunque todo en su diseño está orientado a facilitar la creación de página web,

es posible crear aplicaciones con una interfaz gráfica para el usuario, utilizando

la extensión PHP-Qt o PHP-GTK. También puede ser usado desde la línea de

Page 17: Lenguajes de programación y aplicaciones

17

órdenes, de la misma manera como Perl o Python pueden hacerlo, a esta

versión de PHP se la llama PHP CLI (Command Line Interface).

Cuando el cliente hace una petición al servidor para que le envíe una página

web, el servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado

que generará el contenido de manera dinámica (por ejemplo obteniendo

información de una base de datos). El resultado es enviado por el intérprete al

servidor, quien a su vez se lo envía al cliente. Mediante extensiones es también

posible la generación de archivos PDF, Flash, así como imágenes en diferentes

formatos.

Permite la conexión a diferentes tipos de servidores de bases de datos tales

como MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y

SQLite.

XAMPP es un servidor independiente de plataforma, software libre, que

consiste principalmente en la base de datos MySQL, el servidor Web Apache y

los intérpretes para lenguajes de script: PHP y Perl. El nombre proviene del

acrónimo de X (para cualquiera de los diferentes sistemas operativos), Apache,

MySQL, PHP, Perl. El programa está liberado bajo la licencia GNU y actúa

como un servidor Web libre, fácil de usar y capaz de interpretar páginas

dinámicas. Actualmente XAMPP esta disponible para Microsoft Windows,

GNU/Linux, Solaris, y MacOS X.

PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas

operativos, tales como UNIX (y de ese tipo, como Linux o Mac OS X) y

Windows, y puede interactuar con los servidores de web más populares ya que

existe en versión CGI, módulo para Apache, e ISAPI.

PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que

utiliza C# VB.NET como lenguajes), a ColdFusion de la compañía Adobe (antes

Macromedia), a JSP/Java de Sun Microsystems, y a CGI/Perl. Aunque su

creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia

GNU, existe además un IDE (entorno de desarrollo integrado) comercial

llamado Zend Studio. Recientemente, CodeGear (la división de lenguajes de

programación de Borland) ha sacado al mercado un entorno integrado de

desarrollo para PHP, denominado Delphi for PHP. Existe un módulo para

Eclipse, uno de los IDE más populares.

Historia

Fue originalmente diseñado en Perl, con base en la escritura de un grupo de

CGI binarios escritos en el lenguaje C por el programador danés-canadiense

Page 18: Lenguajes de programación y aplicaciones

18

Rasmus Lerdorf en el año 1994 para mostrar su currículum vítae y guardar

ciertos datos, como la cantidad de tráfico que su página web recibía. El 8 de

junio de 1995 fue publicado "Personal Home Page Tools" después de que

Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI.

PHP 3 Dos programadores israelíes del Technion, Zeev Suraski y Andi Gutmans,

reescribieron el analizador sintáctico (parser en inglés) en el año 1997 y

crearon la base del PHP3, cambiando el nombre del lenguaje a la forma actual.

Inmediatamente comenzaron experimentaciones públicas de PHP3 y fue

publicado oficialmente en junio del 1998.

Para 1999, Suraski y Gutmans reescribieron el código de PHP, produciendo lo

que hoy se conoce como motor Zend. También fundaron Zend Technologies en

Ramat Gan, Israel.

PHP 4 En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine 1.0.

El día 13 de julio de 2007 se anunció la suspensión del soporte y desarrollo de

la versión 4 de PHP,1 a pesar de lo anunciado se ha liberado una nueva

versión con mejoras de seguridad, la 4.4.8 publicada el 13 de enero del 2008 y

posteriormente la versión 4.4.9 publicada el 7 de agosto de 2008.2 Según esta

noticia [1] se dará soporte a fallos críticos hasta el 2008-08-09,......

PHP 5 El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0

(o Zend Engine 2). La versión más reciente de PHP es la 5.3.2 (4 de marzo del

2010), que incluye todas las ventajas que provee el nuevo Zend Engine 2

como:

Mejor soporte para la Programación Orientada a Objetos, que en versiones

anteriores era extremadamente rudimentario, con PHP Data Objects.

Mejoras de rendimiento.

Mejor soporte para MySQL con extensión completamente reescrita.

Mejor soporte a XML ( XPath, DOM, etc. ).

Soporte nativo para SQLite.

Soporte integrado para SOAP.

Iteradores de datos.

Page 19: Lenguajes de programación y aplicaciones

19

Manejo de excepciones.

Mejoras con la implementación con Oracle.

Aún se siguen publicando versiones de la rama 5.2.X, siendo publicada la

versión 5.2.12 el 17 de diciembre de 2009, aunque la mayoría son

actualizaciones de seguridad

PHP 6 Está previsto el lanzamiento en breve de la rama 6 de PHP. Cuando se lance

esta nueva versión quedarán solo dos ramas activas en desarrollo (PHP 5 y 6),

pues se abandonó el desarrollo y soporte de PHP 4 el 13 de julio de 2007.3

Las diferencias que encontraremos frente a PHP 5.* son:

Soportará Unicode;

limpieza de funcionalidades obsoletas como register_globals, safe_mode, etc;

PECL y eliminación de soporte ereg;

mejoras en orientación a objetos;

inclusión en el núcleo de xmlReader y xmlWriter así como Fileinfo;

return por referencia devolverá un error;

se retira el soporte de las bibliotecas FreeType1 y GD21;

etc.

Tabla Resumen Versión Fecha Cambios más importantes

PHP 1.0 8 de junio de 1995 Oficialmente llamado "Herramientas

personales de trabajo (PHP Tools)". Es el primer uso del nombre "PHP".

PHP Version 2 (PHP/FI) 16 de abril de 1996 Considerado por el creador

como la "más rápida y simple herramienta" para la creación de páginas webs

dinámicas .

PHP 3.0 6 de junio de 1998 Desarrollo movido de una persona a muchos

desarrolladores. Zeev Suraski y Andi Gutmans reescriben la base para esta

versión.

PHP 4.0 22 de mayo de 2000 Se añade un sistema más avanzado de

análisis de etiquetas en dos fases análisis/ejecución llamado el motor Zend.

Page 20: Lenguajes de programación y aplicaciones

20

PHP 4.1 10 de diciembre de 2001 Introducidas las variables superglobals

($_GET, $_SESSION, etc.).

PHP 4.2 22 de abril de 2002 Se deshabilitan register_globals por defecto.

PHP 4.3 27 de diciembre de 2002 Introducido la CLI, en adición a la CGI.

PHP 4.4 11 de julio de 2005

PHP 5.0 13 de julio de 2004 Motor Zend II con un nuevo modelo de

objetos.

PHP 5.1 25 de noviembre de 2005

PHP 5.2 2 de noviembre de 2006 Habilitado el filtro de extensiones por

defecto.

PHP 5.2.4 30 de agosto de 2007

PHP 5.2.5 8 de noviembre de 2007 Versión centrada en mejorar la

estabilidad (+60 errores solucionados).

PHP 5.2.8 8 de diciembre de 2008

PHP 5.2.9 26 de febrero de 2009 Diversas mejoras en el ámbito de la

seguridad (+50 errores solucionados).

PHP 5.2.12 17 de diciembre de 2009 Diversas mejoras en el ámbito de la

seguridad (+50 errores solucionados).

PHP 5.3 30 de junio de 2009 namespaces, late static binding, closures,

optional garbage collection for cyclic references, nuevas extensiones (+140

errores solucionados).

PHP 5.3.1 19 de noviembre de 2009 Diversas mejoras en el ámbito de la

seguridad (36 errores solucionados)..

PHP 5.3.2 4 de marzo del 2010 Diversas mejoras en el ámbito de la

seguridad (99 errores solucionados)..

PHP 6 S/D

Características de PHP

Ventajas

Es un lenguaje multiplataforma.

Page 21: Lenguajes de programación y aplicaciones

21

Completamente orientado al desarrollo de aplicaciones web dinámicas con

acceso a información almacenada en una Base de Datos.

El código fuente escrito en PHP es invisible al navegador y al cliente ya que es

el servidor el que se encarga de ejecutar el código y enviar su resultado HTML

al navegador. Esto hace que la programación en PHP sea segura y confiable.

Capacidad de conexión con la mayoría de los motores de base de datos que se

utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.

Capacidad de expandir su potencial utilizando la enorme cantidad de módulos

(llamados ext's o extensiones).

Posee una amplia documentación en su página oficial ([2]), entre la cual se

destaca que todas las funciones del sistema están explicadas y ejemplificadas

en un único archivo de ayuda.

Es libre, por lo que se presenta como una alternativa de fácil acceso para

todos.

Permite aplicar técnicas de programación orientada a objetos.

Biblioteca nativa de funciones sumamente amplia e incluida.

No requiere definición de tipos de variables aunque sus variables se pueden

evaluar también por el tipo que estén manejando en tiempo de ejecución.

Tiene manejo de excepciones (desde PHP5).

Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a

la hora de programar (muchos otros lenguajes tampoco lo hacen), aun estando

dirigido a alguna en particular, el programador puede aplicar en su trabajo

cualquier técnica de programación y/o desarrollo que le permita escribir código

ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos

que en PHP se han hecho del patrón de diseño Modelo Vista Controlador (o

MVC), que permiten separar el tratamiento y acceso a los datos, la lógica de

control y la interfaz de usuario en tres componentes independientes (ver más

abajo Frameworks en PHP).

Inconvenientes

La ofuscación de código es la única forma de ocultar los fuentes.

Ejemplo de código PHP

En el siguiente ejemplo se muestra el típico Hola Mundo, que es una simple

impresión por pantalla del mismo mensaje:

Page 22: Lenguajes de programación y aplicaciones

22

<?php

$a = 'hola mundo';

echo $a;

?>

El ejemplo anterior escribiría simplemente "Hola Mundo" (sin comillas) en la

página web. Es importante recordar que todo bloque de código PHP debe estar

dentro de <?php(para abrir) y ?>(para cerrar) o simplemente de una forma más

corta <? <CÓDIGO_PHP> ?> -siempre que la directiva short_open_tag esté

activada-,4 muy parecido a las etiquetas en ASP <% <CÓDIGO_ASP> %>.

Ahora bien, el resultado que tendríamos en el navegador sería el siguiente:

Hola Mundo

A continuación un ejemplo de envío y recepción de datos en una misma página

con PHP:

<html>

<head>

<title>Ejemplo de uso simple en envío y recepción de parámetros con

PHP</title>

</head>

<body>

<?php

// Si existe la variable $_POST['comida'], entonces muestra la comida favorita

if (isset($_POST['comida']))

{

echo 'Hola, '.$_POST['nombre'].', tu comida favorita es: '.

$_POST['comida'];

} else {

// Si no, muestra un formulario solicitando la comida favorita

?>

<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">

¿Cuál es tu nombre?

Page 23: Lenguajes de programación y aplicaciones

23

<input type="text" name="nombre" />

¿Cuál es tu comida favorita?

<select name="comida">

<option value="Spaguetis">Spaguetis</option>

<option value="Asado">Asado</option>

<option value="Pizza">Pizza</option>

</select>

<input type="submit" name="muestra" value="Seguir" />

</form>

<?php

} //Fin del bloque else

?>

</body>

</html>

En este código es posible observar las siguientes características:

Las variables enviadas por un formulario utilizando el método POST, son

recibidas en el lenguaje dentro de la matriz $_POST, lo cual facilita la obtención

de este tipo de datos. Este mismo método es utilizado por el lenguaje para

todas las fuentes de información en una aplicación web, tales como cookies en

la matriz $_COOKIES, variables de URL en $_GET (que en formularios puede

servir para guardar los datos), variables de sesión utilizando $_SESSION, y

variables del servidor y del cliente por medio de la matriz $_SERVER.

Las variables que están dentro de las cadenas $_POST, $_GET y $_COOKIE

pueden encontrarse en la cadena $_REQUEST, ya que ésta resume las 3

anteriores.

El código PHP está incrustado dentro del HTML e interactúa con el mismo, lo

que permite diseñar la página Web en un editor común de HTML y añadir el

código dinámico dentro de las etiquetas <?php ?>.

Page 24: Lenguajes de programación y aplicaciones

24

El resultado muestra y oculta ciertas porciones del código HTML en forma

condicional.

Es posible utilizar funciones propias del lenguaje para aplicaciones Web como

htmlentitites(), que convierte los caracteres que tienen algún significado

especial en el código HTML o que podrían desplegarse erróneamente en el

navegador como acentos o diéresis, en sus equivalentes en formato HTML..

Todas las variables en PHP llevan el símbolo de dólar como prefijo (ejemplo:

$variable1, $variable2, $variable3...,$variableN), los tipos de variable no es

necesario declararlas, ya que a medida que se usan en la aplicación el servidor

reconoce de que tipo son. Para mostrar una cadena (en inglés string) debe

estar dentro de comillas dobles o simples (ejemplo: "Hola Mundo", 'Lo que

quiero mostrar'). Cabe destacar que si se desea mostrar el símbolo " o ' debe

encerrarse en el otro tipo de comillas ("...'...", '..."...') o usarse un escape (\', \").

Toda línea de instrucción siempre termina en un punto y coma (;), al igual que

el lenguaje C.

Para insertar un comentario de una sola línea, debe empezar por // o por #. El

resto de la línea es tratado entonces como un comentario. Para insertar un

bloque de comentario, de una o más líneas, se utiliza la combinación /* y */, por

ejemplo: /* <COMENTARIOS> */

POO en PHP

PHP no es en sí un lenguaje de programación orientado a objetos (POO), pero

desde hace ya unas versiones se ha implementado el uso de clases y objetos.

Aquí tenemos un ejemplo de una clase sencilla en PHP:

class Clase {

var Una_variable; //Creamos las variables

var Otra_variable;

function __construct($var1, $var2){ //Creamos un constructor que defina las

variables "Una_variable" y "Otra_variable" dentro de la clase.

$this->Una_variable = $var1;

$this->Otra_variable = $var2;

}

Page 25: Lenguajes de programación y aplicaciones

25

}

Ahora veremos como se llama a la clase previamente creada:

$clase = new Clase("Esta es la variable 1", "Esta es la variable 2");

El ejemplo anterior es valido para php4, el mismo ejemplo escrito php5, varia

en la forma en como se declara la variable.

<?php

class Clase {

public $Una_variable; //Creamos las variables para php5

public $Otra_variable;

function __construct($var1, $var2){ //Creamos un constructor que defina las

variables "Una_variable" y "Otra_variable" dentro de la clase.

$this->Una_variable = $var1;

$this->Otra_variable = $var2;

}

}

$instancia = new Clase('rojo','blanco');

echo "El color de la variable \$Una_variable es : ". $instancia->Una_variable . "

El color de la otra variable \$Otra_variable es: " .

$instancia->Otra_variable;

?>

El valor public indica que la propiedad o el método están disponible para todo

código que desee acceder a los mismos. PHP 5 ofrece tres niveles de

visibilidad para utilizar en clases: public, private, protected. A la vez, cambia la

forma en la que se declara el constructor de la clase, ya que en PHP 4 se

Page 26: Lenguajes de programación y aplicaciones

26

usaba el mismo nombre de esta, y en PHP 5 se crea le metodo especial

__construct

Aplicaciones desarrolladas con PHP

Redes

Sociales

Facebook

Tuenti

Bixeando

E-

Commerce

Magento

OsCommer

ce

PrestaSho

p

Blogs

WordPress

Burning

Board

CMSformE

Dokuwiki

Drupal

Gallery

Project

Mambo

Open

Source

MediaWiki

(desarrolla

do para

Wikipedia)

Moodle

Phorum

phpMyAdm

in

PHP-Nuke

phpPgAdm

in

PhpWiki

PmWiki

Zikula

(anteriorme

nte

llamado

PostNuke)

Smarty

SPIP

SugarCRM

vBulletin

Xaraya

Xoops

Joomla

MODx

SMF

phpBB

UVG

SCADA

(En el

siguiente

listado de

CMS

pueden

encontrars

e muchos

más.)

PhpCollab

Frameworks en PHP

Zend

Framework

(Oficial, de

los

desarrollad

ores de

PHP)

Kohana

Symfony

CakePHP

PHP Prado

CodeIgnite

r

Yii

Framework

Lithium

Sapphire

(Otros

Framework

s en PHP y

en otros

lenguajes

aquí.)

IDEs para PHP

Algunos de los Entornos de Desarrollo Integrados, en inglés (IDE, Integrated

Development Environment), para PHP más conocidos o habituales son:

Dreamweaver, comercial, de la casa Adobe actualmente en la versión CS5

(11.0.4909)

PDT, plugin de Eclipse: GPL - (Sun).

NetBeans , libre, multiplataforma.

Zend Studio: Comercial - (Zend).

Aptana Studio: GPL, existe una versión comercial. Debe instalarse el plugin

para PHP. Está basado en Eclipse, pero posee características que lo hacen

Page 27: Lenguajes de programación y aplicaciones

27

mas deseable que el Eclipse PDT; entre ellas: auto-completado de código,

auto-identador.

Komodo IDE: Komodo Edit, libre y gratuito, el IDE es licencia comercial -

(Mozilla).

NuSphere PhpED: Comercial, para linux y windows.

Quanta: GPL y gratuito, para GNU/linux con QT.

Bluefish: GPL y gratuito, para GNU/linux con GTK.

gEdit: Editor de texto por defecto en Gnome - (Linux).

Geany:GPL, para linux y Windows. Sumamente liviano. Incluye

autocompletado, autoidentador, soporte para numerosos lenguajes.

phpDesigner: Comercial y Freeware, para linux y windows. Incluye integración

con el manual, autocompletado en código y viene en varios idiomas.

Rapid PHP: Comercial, para windows.

AJAX PHP IDE: Entorno de desarrollo para PHP que utiliza funcionalidad AJAX

en los eventos de los formularios diseñados. Separación de la lógica y el html.

Page 28: Lenguajes de programación y aplicaciones

28

Java Java es un lenguaje de programación orientado a objetos desarrollado por Sun

Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha

de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y

elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como

la manipulación directa de punteros o memoria.

Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la

compilación en código máquina nativo también es posible. En el tiempo de

ejecución, el bytecode es normalmente interpretado o compilado a código

nativo para la ejecución, aunque la ejecución directa por hardware del bytecode

por un procesador Java también es posible.

La implementación original y de referencia del compilador, la máquina virtual y

las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems

en 1995. Desde entonces, Sun ha controlado las especificaciones, el desarrollo

y evolución del lenguaje a través del Java Community Process, si bien otros

han desarrollado también implementaciones alternativas de estas tecnologías

de Sun, algunas incluso bajo licencias de software libre.

Entre noviembre de 2006 y mayo de 2007, Sun Microsystems liberó la mayor

parte de sus tecnologías Java bajo la licencia GNU GPL, de acuerdo con las

especificaciones del Java Community Process, de tal forma que prácticamente

todo el Java de Sun es ahora software libre (aunque la biblioteca de clases de

Sun que se requiere para ejecutar los programas Java aún no lo es).

Page 29: Lenguajes de programación y aplicaciones

29

C C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los

Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en

BCPL.

Al igual que B, es un lenguaje orientado a la implementación de Sistemas

Operativos, concretamente Unix. C es apreciado por la eficiencia del código

que produce y es el lenguaje de programación más popular para crear software

de sistemas, aunque también se utiliza para crear aplicaciones.

Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas

características de bajo nivel. Dispone de las estructuras típicas de los lenguajes

de alto nivel pero, a su vez, dispone de construcciones del lenguaje que

permiten un control a muy bajo nivel. Los compiladores suelen ofrecer

extensiones al lenguaje que posibilitan mezclar código en ensamblador con

código C o acceder directamente a memoria o dispositivos periféricos.

La primera estandarización del lenguaje C fue en ANSI, con el estándar

X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente

como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO

(ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que,

si los programas creados lo siguen, el código es portátil entre plataformas y/o

arquitecturas. En la práctica, los programadores suelen usar elementos no-

portátiles dependientes del compilador o del sistema operativo.

Page 30: Lenguajes de programación y aplicaciones

30

Python es un lenguaje de programación interpretado creado por Guido van Rossum en

el año 1991.1

Se compara habitualmente con Tcl, Perl, Scheme, Java y Ruby. En la

actualidad Python se desarrolla como un proyecto de código abierto,

administrado por la Python Software Foundation. La última versión estable del

lenguaje es la 3.1.1.2

Python es considerado como la "oposición leal" a Perl, lenguaje con el cual

mantiene una rivalidad amistosa. Los usuarios de Python consideran a éste

mucho más limpio y elegante para programar.

Python permite dividir el programa en módulos reutilizables desde otros

programas Python. Viene con una gran colección de módulos estándar que se

pueden utilizar como base de los programas (o como ejemplos para empezar a

aprender Python). También hay módulos incluidos que proporcionan E/S de

ficheros, llamadas al sistema, sockets y hasta interfaces a GUI (interfaz gráfica

con el usuario) como Tk, GTK, Qt entre otros.

Python se utiliza como lenguaje de programación interpretado, lo que ahorra un

tiempo considerable en el desarrollo del programa, pues no es necesario

compilar ni enlazar. El intérprete se puede utilizar de modo interactivo, lo que

facilita experimentar con características del lenguaje, escribir programas

desechables o probar funciones durante el desarrollo del programa.

El nombre del lenguaje proviene de la afición de su creador original, Guido van

Rossum, por los humoristas británicos Monty Python.3 El principal objetivo que

persigue este lenguaje es la facilidad, tanto de lectura, como de diseño.