Вы находитесь на странице: 1из 11

LEGUAJES DE PROGRAMACIN

Arturo Fernando Granados Rodrguez Universidad Privada del Norte - Sede Cajamarca afgranados@gmail.com RESUMEN
A lo largo de los aos los lenguajes de programacin han tomado mucha importancia en el entorno de las ciencias de la computacin. La gran mayora de los lenguajes existentes han logrado solucionar muchas de las necesidades o requerimientos de las empresas y clientes. Pero al haber muchos lenguajes de programacin se hace difcil escoger el idneo para resolver algn problema. En este informe se trata de dar a conocer 4 lenguajes de programacin, que para el autor, son los primordiales para un buen desarrollador de software. Claro que existen ms, pero solo se mencionaran a los ms usados por la gran mayora de los programadores expertos. Estos lenguajes de programacin escogidos son los que ms soluciones proporcionan y de fcil uso. Applets: Pequeos programas que se insertan en una pgina HTML y se ejecutan en el ordenador local. O.O. La Programacin Orientada a Objetos (POO u OOP segn sus siglas en ingls) es un paradigma de programacin que usa objetos y sus interacciones para disear aplicaciones y programas de computadora. Est basado en varias tcnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. INTRODUCCION Se formularan una serie de fuentes basadas en 4 lenguajes de programacin, los cuales deberan tenerse en cuenta a la hora de desarrollar Software. Estos lenguajes no son los nicos, hay ms por investigar y tratar de aprender. El nombre Java surgi en una de las sesiones de brainstorming 1 celebradas por el equipo de desarrollo del lenguaje. Buscaban un nombre que evocara la esencia de la tecnologa (viveza, animacin, rapidez, interactividad). Java fue elegido de entre muchsimas propuestas. No es un acrnimo, sino nicamente algo humeante, caliente y que a muchos programadores les gusta beber en grandes cantidades: una taza de caf (Java en argot Ingls americano2) Java es un lenguaje de desarrollo de propsito general, y como tal es vlido para realizar todo tipo de aplicaciones profesionales. Incluye una combinacin de caractersticas que lo hacen nico y est siendo adoptado por multitud de fabricantes como herramienta bsica para el desarrollo de aplicaciones comerciales de gran repercusin. Una de las caractersticas ms importantes es que los programas ejecutables, creados por el compilador de Java, son independientes de la arquitectura. Se ejecutan indistintamente en una gran variedad de equipos con diferentes microprocesadores y sistemas operativos. 1.2. Beneficios: De momento, es pblico. Puede conseguirse un JDK o Kit de desarrollo de aplicaciones Java gratis. No se sabe si en un futuro seguir sindolo. Permite escribir Applets. Es fcil de aprender y est bien estructurado. Las aplicaciones son fiables. Puede controlar su seguridad frente al acceso a recursos del sistema y es capaz de gestionar permisos y criptografa. 1.3. A donde se orienta?: Es intrnsecamente orientado a objetos. (O.O.) El lenguaje en s mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos ms simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros o memoria.
1 2

1. JAVA
1.1. Concepto: El lenguaje Java fue desarrollado por Sun Microsystems a principios de los aos 90, con la idea original de desarrollar un sistema para controlar electrodomsticos e incluso PDAs o Asistentes Personales (pequeos ordenadores) que, adems, permitiera la conexin a redes de ordenadores. Se pretenda crear un hardware polivalente, con un Sistema Operativo eficiente (SunOS) y un lenguaje de desarrollo denominado Oak (roble), el precursor de Java.

Brainstorming: Ideas. Traducido al espaol por Google Translate Casualmente, la pronunciacin en ingls de este trmino es yava, que puede entenderse fuera de contexto como ya va!.

El lenguaje Java puede considerarse como una evolucin del C++. La sintaxis es parecida a la de este lenguaje. A pesar de que puede considerarse como una evolucin del C++ no acarrea los inconvenientes del mismo, pues Java fue diseado partiendo de cero, es decir, no necesitaba ser compatible con versiones anteriores de ningn lenguaje como ocurre con C++ y C. Gracias a que fue diseado partiendo de cero ha conseguido convertirse en un lenguaje orientado a objetos puro, limpio y prctico. No permite programar mediante otra tcnica que no sea la programacin orientada a objetos (POO en adelante) y, una vez superado el aprendizaje de la programacin orientada a objetos, es realmente sencillo aprender Java. 1.4. Cmo trabaja? El lenguaje es Compilado o Interpretado? Ni una cosa ni la otra. Aunque estrictamente hablando es interpretado, necesita de un proceso previo de compilacin. Una vez compilado el programa, se crea un fichero que almacena lo que se denomina bytecodes o j_code (pseudocdigo prcticamente al nivel de cdigo mquina). Para ejecutarlo, es necesario un intrprete, la JVM (Java Virtual Machine) mquina virtual Java. De esta forma, es posible compilar el programa en una estacin UNIX y ejecutarlo en otra con Windows95 utilizando la mquina virtual Java para Windows95. Esta JVM se encarga de leer los bytecodes y traducirlos a instrucciones ejecutables directamente en un determinado microprocesador, de una forma bastante eficiente.

Fig. 1 Cmo trabaja Java

Que el programa deba ser interpretado no hace que sea poco eficiente en cuanto a velocidad, pues la interpretacin se hace prcticamente al nivel de cdigo mquina. 1.4.1. La Mquina Virtual Java (JVM). La mquina virtual Java es la idea revolucionaria del lenguaje. Es la entidad que proporciona la independencia de plataforma para los programas Java compilados en byte-code. El trabajo de la mquina virtual es interpretar estos cdigos de bytes segn el sistema operativo en que se est trabajando. He aqu el secreto de la portabilidad de Java: existe una mquina virtual para cada sistema operativo y los bytecodes se verifican cada vez que han de ser ejecutados, es decir, no corren directamente sobre el sistema operativo, sino que la mquina virtual los ejecuta convirtiendo los bytecodes a instrucciones propias de la plataforma anfitrin. Existe una versin distinta de esta JVM para cada plataforma. Esta JVM se carga en memoria y va traduciendo al vuelo, los byte-codes a cdigo mquina. La JVM no ocupa mucho espacio en memoria, pinsese que fue diseada para poder ejecutarse sobre pequeos electrodomsticos como telfonos, televisores, etc.

* Java realiza revisin de tipos durante la compilacin (al igual que C). En una asignacin entre apuntadores el compilador verifica que los tipos sean compatibles. * Java posee un recolector de basuras que administra automticamente la memoria. Es el recolector el que determina cuando se puede liberar el espacio ocupado por un objeto. * Java no posee aritmtica de apuntadores, porque es una propiedad que no se necesita para programar aplicaciones. Por lo tanto Java no es un lenguaje para hacer sistemas operativos o administradores de memoria, pero s es un excelente lenguaje para programar aplicaciones. Java es flexible: Java combina flexibilidad, robustez y legibilidad gracias a una revisin de tipos durante la compilacin y durante la ejecucin. Desventajas: Hay diferentes tipos de soporte tcnico para la misma herramienta, por lo que el anlisis de la mejor opcin se dificulta. Para manejo a bajo nivel deben usarse mtodos nativos, lo que limita la portabilidad. El diseo de interfaces grficas con awt y swing no es simple o existen herramientas como el JBuilder que permiten generar interfaces grficas de manera sencilla, pero tienen un costo adicional. Deficiencia en cuanto a la velocidad, puede ser aminorada por los compiladores Just-In- Time (JIT). Un compilador JIT transforma los bytecodes de un programa o un applet en cdigo nativo de la plataforma donde se ejecuta, por lo que es ms rpido. Algunas herramientas tienen un costo adicional. El poder reducir los problemas de acceso a memoria y liberacin automtica hacen de java un lenguaje poco apropiado para desarrollar aplicaciones de base como Sistemas Operativos.

Fig. 2 Mquina Virtual Java

1.5. Ventajas y Desventajas: Ventajas: Es fcil de aprender. Es un lenguaje bien estructurado. Es mucho ms rpido que cualquier otro programa interpretado como por ejemplo Visual Basic. Java ha sido diseado de modo de eliminar las complejidades de otros lenguajes como C y C++.

Java es multiplataforma: Los programas en Java


pueden ejecutarse en cualquiera de las plataformas (Windows/95 y /NT 2000, XP, Vista, Mac, Unix, Solaris, Linux), sin necesidad de hacer cambios La compatibilidad es total: * A nivel de fuentes: El lenguaje es exactamente el mismo en todas las plataformas. * A nivel de bibliotecas: En todas las plataformas estn presentes las mismas bibliotecas estndares. * A nivel del cdigo compilado: el cdigo intermedio que genera el compilador es el mismo para todas las plataformas. Lo que cambia es el intrprete del cdigo intermedio. Java es robusto: pues no se pueden cometer estos errores: * Java siempre revisa los ndices al accesar un arreglo.

2. VISUAL BASIC.NET
2.1. Concepto: .NET es toda una nueva arquitectura tecnolgica, desarrollada por Microsoft para la creacin y distribucin del software como un servicio. Esto quiere decir, que mediante las herramientas de desarrollo

proporcionadas por esta nueva tecnologa, los programadores podrn crear aplicaciones basadas en servicios para la web. Es un lenguaje de programacin orientado a objetos que se puede considerar una evolucin de Visual Basic implementada sobre el framework .NET. Su introduccin result muy controvertida, pues debido a cambios significativos en el lenguaje VB.NET no es compatible hacia atrs con Visual Basic, cosa que caus gran divisin en la comunidad de desarrolladores de Visual Basic. La gran mayora de programadores de VB.NET utilizan el entorno de programacin Microsoft Visual Studio .Net en alguna de sus versiones (Visual Studio .NET, Visual Studio .NET 2003 o Visual Studio .NET 2005), aunque existen otras alternativas, como SharpDevelop 3 (que adems es libre).

tipo de informacin dispositivo.

desde

cualquier

tipo

de

2.3 A dnde se orienta?: .NET es netamente orientado a objetos. .NET tiene un modelo de desarrollo basado en servicios, se flexibiliza y enriquece el modo en el que hasta ahora se construan aplicaciones para Internet. La idea que subyace bajo esta tecnologa, es la de poblar Internet con un extenso nmero de aplicaciones, que basadas en servicios para la web (Web Services), formen un marco de intercambio global, gracias a que dichos servicios estn fundamentados en los estndares SOAP4 y XML5, para el intercambio de informacin. 2.4 Cmo trabaja? Un programador puede crear Web Services para que sean utilizados por sus propias aplicaciones a modo de componentes (pero de una forma mucho ms avanzada que empleando el modelo COM clsico), siguiendo una estructura de programacin ya conocida.

2.2. Beneficios: La plataforma .NET Framework, proporciona la infraestructura para crear aplicaciones y el entorno de ejecucin para las mismas. Los productos de Microsoft enfocados hacia .NET, entre los que se encuentran Windows .NET Server, como sistema operativo que incluir de forma nativa la plataforma .NET Framework; Visual Studio .NET, como herramienta integrada para el desarrollo de aplicaciones; Office .NET, etc. Servicios para .NET desarrollados por terceros fabricantes, que podrn ser utilizados por otras aplicaciones que se ejecuten en Internet. .NET podra considerarse una respuesta de Microsoft al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java de Sun Microsystems y a los diversos framework de desarrollo web basados en PHP. Su propuesta es ofrecer una manera rpida y econmica, a la vez que segura y robusta, de desarrollar aplicaciones o como la misma plataforma las denomina, soluciones permitiendo una integracin ms rpida y gil entre empresas y un acceso ms simple y universal a todo
3

Fig. 3 Esquema de funcionamiento de aplicacin web incluyendo Web Services

Sin embargo, los Web Services traen de la mano un nuevo modelo de distribucin del software; el basado en el desarrollo y publicacin de Web Services y en la

SOAP (siglas de Simple Object Access Protocol) es un protocolo estndar que define cmo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. SOAP fue creado por Microsoft, IBM. Es uno de los protocolos utilizados en los servicios Web.
5

SharpDevelop es un entorno de desarrollo integrado libre para los lenguajes de programacin C#, Visual Basic .NET. Es usado tpicamente por aquellos programadores de los citados lenguajes, que no desean o no pueden usar el entorno de desarrollo de Microsoft, el Microsoft Visual Studio.

XML, sigla en ingls de Extensible Markup Language (lenguaje de marcas ampliable), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificacin y adaptacin del SGML y permite definir la gramtica de lenguajes especficos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definicin son XHTML, SVG, MathML.

suscripcin a los mismos por parte de otras aplicaciones, potenciales usuarios de tales servicios.

Fig. 4 Interaccin de aplicaciones con Web Services publicados en Internet.

Los fabricantes de software, pueden de esta manera, dedicarse a la creacin de servicios web y a su alquiler. Nace de esta manera, la figura del proveedor de servicios web. Dado el esquema anterior, el programador puede construir sus aplicaciones a base de Web Services, reduciendo significativamente el tiempo y esfuerzo en el desarrollo. 2.4.1 .NET Framework NET Framework constituye la plataforma y elemento principal sobre el que se asienta Microsoft .NET. De cara al programador, es la pieza fundamental de todo este nuevo modelo de trabajo, ya que proporciona las herramientas y servicios que necesitar en su labor habitual de desarrollo. .NET Framework permite el desarrollo de aplicaciones a travs del uso de un conjunto de herramientas y servicios que proporciona, y que pueden agruparse en tres bloques principales: el Entorno de Ejecucin Comn o Common Language Runtime (CLR a partir de ahora); la jerarqua de clases bsicas de la plataforma o .NET Framework Base Classes; y el motor de generacin de interfaz de usuario, que permite crear interfaces para la web o para el tradicional entorno Windows, as como servicios para ambos entornos operativos. La Figura 3 muestra un diagrama con la distribucin de elementos dentro del entorno de .NET Framework.

En la base del entorno de ejecucin, se encuentra el CLR, que constituye el ncleo de .NET Framework, encargndose de la gestin del cdigo en cuanto a su carga, ejecucin, manipulacin de memoria, seguridad, etc. En el nivel intermedio, se sita la jerarqua de clases bsicas del entorno de ejecucin, que constituyen un slido API de servicios a disposicin del programador, para multitud de tareas como, gestin del sistema de ficheros, manipulacin multihebra, acceso a datos, etc. Finalmente, en el nivel superior, encontramos las clases que permiten el diseo del interfaz de usuario de nuestras aplicaciones. Si necesitamos desarrollar aplicaciones para Internet, utilizaremos ASP.NET, que nos provee de todo lo necesario para crear aplicaciones para la Red: web forms, web services, etc. Y no piense el programador tradicional de Windows, que todo en .NET Framework es programacin para Internet. La plataforma no se ha olvidado de este colectivo de programadores, que necesitan desarrollar programas para este sistema operativo, y pone a su disposicin los denominados Windows Forms, la nueva generacin de formularios, con caractersticas avanzadas y muy superiores a las del motor de generacin de formularios de VB6.

2.4.2 El CLR, Common Language Runtime El Entorno de Ejecucin Comn de Lenguajes o CLR (Common Language Runtime), representa el alma de .NET Framework y es el encargado de la ejecucin del cdigo de las aplicaciones.

Algunas de las caractersticas de este componente de la plataforma: Proporciona un desarrollo de aplicaciones ms sencillo y rpido gracias a que gran parte de las funcionalidades que tradicionalmente deba de crear el programador, vienen implementadas en el entorno de ejecucin. Administra el cdigo en tiempo de ejecucin, en todo lo referente a su carga, disposicin en memoria, recuperacin de memoria no utilizada a travs de un recolector de memoria, etc. Implementa caractersticas de gestin a bajo nivel (administracin de memoria, por ejemplo), que en ciertos lenguajes, eran labor del programador. Proporciona un sistema comn de tipos para todos los lenguajes del entorno. Gestiona la seguridad del cdigo que es ejecutado. Dispone de un diseo abierto a lenguajes y herramientas de desarrollo creadas por terceros fabricantes. Facilita enormemente la distribucin e instalacin de aplicaciones, ya que en teora, es posible instalar una aplicacin simplemente copiando los ficheros que la componen en uno de los directorios del equipo en el que se vaya a ejecutar, eliminando los temibles conflictos de versiones entre libreras, problema conocido tambin con el nombre de Infierno de las DLL o DLL Hell.

intermedio (MSIL) generando el cdigo mquina propio de la plataforma. Se aumenta as el rendimiento de la aplicacin al ser especfico para cada plataforma. Garbage collector: El CLR proporciona un sistema automtico de administracin de memoria denominado recolector de basura (garbage collector). El CLR detecta cundo el programa deja de utilizar la memoria y la libera automticamente. De esta forma el programador no tiene por que liberar la memoria de forma explcita aunque tambin sea posible hacerlo manualmente (mediante el mtodo disponse() liberamos el objeto para que el recolector de basura lo elimine de memoria). Seguridad de acceso al cdigo: Se puede especificar que una pieza de cdigo tenga permisos de lectura de archivos pero no de escritura. Es posible aplicar distintos niveles de seguridad al cdigo, de forma que se puede ejecutar cdigo procedente del Web sin tener que preocuparse si esto va a estropear el sistema. Despliegue: Por medio de los ensamblados resulta mucho ms fcil el desarrollo de aplicaciones distribuidas y el mantenimiento de las mismas. El Framework realiza esta tarea de forma automtica mejorando el rendimiento y asegurando el funcionamiento correcto de todas las aplicaciones.

Desventajas: Procesos como la recoleccin de basura de .Net o la administracin de cdigo introducen factores de sobrecarga que repercuten en la demanda de ms requisitos del sistema. El cdigo administrado proporciona una mayor velocidad de desarrollo y mayor seguridad de que el cdigo sea bueno. En contrapartida el consumo de recursos durante la ejecucin es mucho mayor, aunque con los procesadores actuales esto cada vez es menos inconveniente. El nivel de administracin del cdigo depender en gran medida del lenguaje que utilicemos para programar. Por ejemplo, mientras que Visual Basic .Net es un lenguaje totalmente administrado, C Sharp permite la administracin de cdigo de forma manual, siendo por defecto tambin un lenguaje administrado. Mientras que C++ es un lenguaje no administrado en el que se tiene un control mucho mayor del uso de la memoria que hace la aplicacin.

2.5 Ventajas y Desventajas: Ventajas: Cdigo administrado: El CLR realiza un control automtico del cdigo para que este sea seguro, es decir, controla los recursos del sistema para que la aplicacin se ejecute correctamente. Interoperabilidad multilenguaje: El cdigo puede ser escrito en cualquier lenguaje compatible con .Net ya que siempre se compila en cdigo intermedio (MSIL). Compilacin just-in-time: El compilador JIT incluido en el Framework compila el cdigo

Mantenimiento en mltiples lenguajes. Mantener un proyecto en mltiples lenguajes es costoso. Si una aplicacin est realizada en varios lenguajes se necesitan expertos en varios lenguajes para entenderla y mantenerla, aumentando los costos. .NET no es multiplataforma. La plataforma .NET slo est disponible para la familia Windows. Licencias: Es un cdigo cerrado, no hay licencias libres. La infraestructura para desarrollar en .NET representa un alto costo para las empresas. Portabilidad. Hay productos que ofrecen mucha ms portabilidad que .NET, que slo est preparada para ejecutarse sobre plataformas Microsoft (Windows).

raw sockets. PHP soporta WDDX para intercambio de datos entre lenguajes de programacin en web. Y hablando de interconexin, PHP puede utilizar objetos Java de forma transparente como objetos PHP Y la extensin de CORBA puede ser utilizada para acceder a objetos remotos. PHP tiene unas caractersticas muy tiles para el proceso de texto, desde expresiones regulares POSIX Extended Perl hasta parseador de documentos XML. 3.3 A dnde se orienta?: El gran parecido que posee PHP con los lenguajes ms comunes de programacin estructurada, como C y Perl, permiten a la mayora de los programadores crear aplicaciones complejas con una curva de aprendizaje muy corta. Tambin les permite involucrarse con aplicaciones de contenido dinmico sin tener que aprender todo un nuevo grupo de funciones. Aunque todo en su diseo est orientado a facilitar la creacin de pgina web, es posible crear aplicaciones con una interfaz grfica para el usuario, utilizando la extensin PHP-Qt o PHP-GTK. Tambin puede ser usado desde la lnea de rdenes, de la misma manera como Perl o Python pueden hacerlo, a esta versin de PHP se la llama PHP CLI (Command Line Interface). 3.4 Cmo trabaja?

3. PHP
3.1 Concepto. PHP (acrnimo de "PHP: Hypertext Preprocessor") es un lenguaje de "cdigo abierto" interpretado, de alto nivel, embebido en pginas HTML y ejecutado en el servidor. Es usado principalmente en interpretacin del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de lnea de comandos o en la creacin de otros tipos de programas incluyendo aplicaciones con interfaz grfica usando las bibliotecas Qt6 o GTK+7. Este lenguaje es gratuito y multiplataforma. Es un lenguaje de programacin interpretado, diseado originalmente para la creacin de pginas web dinmicas. 3.2 Beneficios: PHP tambin tiene soporte para comunicarse con otros servicios usando protocolos tales como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (en Windows) y muchos otros. Tambien se pueden crear
6

Qt es una biblioteca multiplataforma para desarrollar interfaces grficas de usuario. 7 GTK+ o The GIMP Toolkit es un conjunto de bibliotecas multiplataforma para desarrollar interfaces grficas de usuario (GUI), principalmente para los entornos grficos GNOME, XFCE y ROX aunque tambin se puede usar en el escritorio de Windows, MacOS y otros.

PHP se escribe dentro del cdigo HTML, lo que lo hace realmente fcil de utilizar, al igual que ocurre con el popular ASP de Microsoft, pero con algunas

ventajas como su gratuidad, independencia de plataforma, rapidez y seguridad. Es independiente de plataforma, puesto que existe un mdulo de PHP para casi cualquier servidor web. Esto hace que cualquier sistema pueda ser compatible con el lenguaje y significa una ventaja importante, ya que permite portar el sitio desarrollado en PHP de un sistema a otro sin prcticamente ningn trabajo. PHP, en el caso de estar montado sobre un servidor Linux u Unix, es ms rpido que ASP, dado que se ejecuta en un nico espacio de memoria y esto evita las comunicaciones entre componentes COM que se realizan entre todas las tecnologas implicadas en una pgina ASP. PHP tambin tiene la capacidad de ser ejecutado en la mayora 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 ms populares ya que existe en versin CGI, mdulo para Apache8. Cuando el cliente hace una peticin al servidor para que le enve una pgina web, el servidor ejecuta el intrprete de PHP. ste procesa el script solicitado que generar el contenido de manera dinmica (por ejemplo obteniendo informacin de una base de datos). El resultado es enviado por el intrprete al servidor, quien a su vez se lo enva al cliente. Mediante extensiones es tambin posible la generacin de archivos PDF, Flash, as como imgenes en diferentes formatos. Permite la conexin a diferentes tipos de servidores de bases de datos tales como MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite. Algunas de las ms importantes capacidades de PHP son: compatibilidad con las bases de datos ms comunes, como MySQL, mSQL, Oracle, Informix, y ODBC, por ejemplo. Incluye funciones para el envo de correo electrnico, upload de archivos, crear dinmicamente en el servidor imgenes en formato GIF, incluso animadas y una lista interminable de utilidades adicionales. 3.5 Ventajas y Desventajas: Ventajas: Es un lenguaje multiplataforma.

Capacidad de conexin con la mayora de los


manejadores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL. Capacidad de expandir su potencial utilizando la enorme cantidad de mdulos (llamados ext's o extensiones). Posee una amplia documentacin en su pgina oficial, entre la cual se destaca que todas las funciones del sistema estn explicadas y ejemplificadas en un nico archivo de ayuda. Es libre, por lo que se presenta como una alternativa de fcil acceso para todos. Permite las tcnicas de Programacin Orientada a Objetos. Biblioteca nativa de funciones sumamente amplia e incluida. No requiere definicin de tipos de variables. Tiene manejo de excepciones (desde PHP5). Desventajas: Si bien PHP no obliga a quien lo usa a seguir una determinada metodologa 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 tcnica de programacin y/o desarrollo que le permita escribir cdigo ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrn de diseo Modelo Vista Controlador (o MVC), que permiten separar el tratamiento y acceso a los datos, la lgica de control y la interfaz de usuario en tres componentes independientes

4. C++
4.1. Concepto: El lenguaje C++ se comenz a desarrollar en 1980. Su autor fue B. Stroustrup. Al comienzo era una extensin del lenguaje C que fue denominada C with classes. El nombre C++ es tambin de ese ao, y hace referencia al carcter del operador incremento de C (++). Ante la gran difusin y xito que iba obteniendo en el mundo de los programadores. En 1989 se form un comit ANSI (seguido algn tiempo despus por un comit ISO) para estandarizarlo a nivel americano e internacional. En la actualidad, el C++ es un lenguaje verstil, potente y general. Su xito entre los programadores

El servidor HTTP Apache es un servidor web HTTP de cdigo abierto para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la nocin de sitio virtual.

profesionales le ha llevado a ocupar el primer puesto como herramienta de desarrollo de aplicaciones. El C++ mantiene las ventajas del C en cuanto a riqueza de operadores y expresiones, flexibilidad, concisin y eficiencia. Adems, ha eliminado algunas de las dificultades y limitaciones del C original. La evolucin de C++ ha continuado con la aparicin de Java, un lenguaje creado simplificando algunas cosas de C++ y aadiendo otras, que se utiliza para realizar aplicaciones en Internet. Hay que sealar que el C++ ha influido en algunos puntos muy importantes del ANSI C, como por ejemplo en la forma de declarar las funciones, en los punteros a void, etc. En efecto, aunque el C++ es posterior al C, sus primeras versiones son anteriores al ANSI C, y algunas de las mejoras de ste fueron tomadas del C++. 4.2 Beneficios: Muchos de los lenguajes que ahora desarrollamos estn hechos en C++. Bibliotecas C/C++. Muchas de las cosas que se programan en c++ ya estn predefinidas en bibliotecas tales como math.h para el uso de sqrt, pow, iostream.h para el uso de cout y cin, etc. 4.3 A dnde se orienta?: El C++ es un lenguaje hbrido9. Posteriormente se aadieron facilidades de programacin genrica, que se sum a los otros dos paradigmas que ya estaban admitidos (programacin estructurada y la programacin orientada a objetos). Por esto se suele decir que el C++ es un lenguaje multiparadigma. El C++ es a la vez un lenguaje procedural (orientado a algoritmos) y orientado a objetos. Como lenguaje procedural se asemeja al C y es compatible con l, aunque ya se ha dicho que presenta ciertas ventajas Como lenguaje orientado a objetos se basa en una filosofa completamente diferente, que exige del programador un completo cambio de mentalidad. Las caractersticas propias de la Programacin Orientada a Objetos (Object Oriented Programming, u OOP) de C+ + son modificaciones mayores que s que cambian radicalmente su naturaleza. 4.4 Cmo trabaja?
9

Una particularidad del C++ es la posibilidad de redefinir los operadores (sobrecarga de operadores), y de poder crear nuevos tipos que se comporten como tipos fundamentales. El modo consola simula el funcionamiento de una ventana MS-DOS, trabaja en modo de texto, es decir, la ventana es una especie de tabla en la que cada casilla slo puede contener un carcter. El modo consola de Windows no permite usar grficos de alta resolucin. Pero esto no es una gran prdida, pues como veremos, ni C ni C++ incluyen manejo de grficos de alta resolucin. Esto se hace mediante libreras externas no estndar. El otro modo es el GUI, Interfaz Grfico de Usuario. Es el modo tradicional de los programas de Windows, con ventanas, mens, iconos, etc. La creacin de este tipo de programas se explica en otro curso de este mismo sitio, y requiere el conocimiento de la librera de funciones Win API32. 4.4.1. Proceso para la obtencin de un programa ejecutable. Probablemente este es el lugar ms adecuado para explicar cmo se obtiene un fichero ejecutable a partir de un programa C++. Fichero fuente y programa o cdigo fuente: Los programas C y C++ se escriben con la ayuda de un editor de textos del mismo modo que cualquier texto corriente. Los ficheros que contiene programas en C o C++ en forma de texto se conocen como ficheros fuente, y el texto del programa que contiene se conoce como programa fuente. Nosotros siempre escribiremos programas fuente y los guardaremos en ficheros fuente. Ficheros objeto, cdigo objeto y compiladores: Los programas fuente no pueden ejecutarse. Son ficheros de texto, pensados para que los comprendan los seres humanos, pero incomprensibles para los ordenadores. Para conseguir un programa ejecutable hay que seguir algunos pasos. El primero es compilar o traducir el programa fuente a su cdigo objeto equivalente. Este es el trabajo que hacen los compiladores de C y C++. Consiste en obtener un fichero equivalente a nuestro programa fuente comprensible para el ordenador, este fichero se conoce

Hibrido: Es la unin o mezcla de dos o ms caracteres que juntos forman una nueva situacin.

como fichero objeto, y su contenido como cdigo objeto. Los compiladores son programas que leen un fichero de texto que contiene el programa fuente y generan un fichero que contiene el cdigo objeto. El cdigo objeto no tiene ningn significado para los seres humanos, al menos no directamente. Adems es diferente para cada ordenador y para cada sistema operativo. Por lo tanto existen diferentes compiladores para diferentes sistemas operativos y para cada tipo de ordenador. Libreras: Junto con los compiladores de C y C++, se incluyen ciertos ficheros llamados libreras. Las libreras contienen el cdigo objeto de muchos programas que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar nmeros, realizar funciones matemticas, etc. Las libreras estn clasificadas por el tipo de trabajos que hacen, hay libreras de entrada y salida, matemticas, de manejo de memoria, de manejo de textos, etc. Una vez terminada la fase de enlazado, ya podremos ejecutar nuestro programa. Errores: Por supuesto, somos humanos, y por lo tanto nos equivocamos. Los errores de programacin pueden clasificarse en varios tipos, dependiendo de la fase en que se presenten. Errores de sintaxis: son errores en el programa fuente. Pueden deberse a palabras reservadas mal escritas, expresiones errneas o incompletas, variables que no existen, etc. Los errores de sintaxis se detectan en la fase de compilacin. El compilador, adems de generar el cdigo objeto, nos dar una lista de errores de sintaxis. De hecho nos dar slo una cosa o la otra, ya que si hay errores no es posible generar un cdigo objeto. Warnings: adems de errores, el compilador puede dar tambin avisos (warnings). Los avisos son errores, pero no lo suficientemente graves como para impedir la generacin del cdigo objeto. No obstante, es importante corregir estos avisos, ya que el compilador tiene que decidir entre varias opciones, y sus decisiones no tienen por qu coincidir con lo que nosotros pretendemos, se

basan en las directivas que los creadores del compilador decidieron durante su creacin. Errores de ejecucin: incluso despus de obtener un fichero ejecutable, es posible que se produzcan errores. En el caso de los errores de ejecucin normalmente no obtendremos mensajes de error, sino que simplemente el programa terminar bruscamente. Estos errores son ms difciles de detectar y corregir. Existen programas auxiliares para buscar estos errores, son los llamados depuradores (debuggers). Estos programas permiten detener la ejecucin de nuestros programas, inspeccionar variables y ejecutar nuestro programa paso a paso. Esto resulta til para detectar excepciones, errores sutiles, y fallos que se presentan dependiendo de circunstancias distintas. Errores de diseo: finalmente los errores ms difciles de corregir y prevenir. Si nos hemos equivocado al disear nuestro algoritmo, no habr ningn programa que nos pueda ayudar a corregir los nuestros. Contra estos errores slo cabe practicar y pensar. 3.5 Ventajas y Desventajas: Ventajas: Lenguaje de programacin orientado a objetos. Lenguaje muy didctico, gracias a este lenguaje puedes aprender muchos otros lenguajes con gran facilidad, como C#, Java, Visual Basic, Javascript, PHP, entre otros. Es muy potente en lo que se refiere a creacin de sistemas complejos, un lenguaje muy robusto. Permite elaborar aplicaciones sencillas como un "Hello World!" hasta sistemas operativos y mucho ms, todo eso dependiendo del manejo del lenguaje. Actualmente, puede compilar y ejecutar cdigo de C, ya viene con libreras para realizar esta labor. Es un lenguaje muy empleado, existen muchos tutoriales en lnea, libros, cdigos fuentes abiertos... hay material de sobra y basta para aprender lo necesario y mucho ms con este lenguaje. Existen muchos algoritmos cuyo pseudocdigo se encuentra ya desarrollado en C++, de manera que puedes tomarlo y amoldarlo a tu solucin (porque el que veas un fragmento de cdigo no asegura que sea correcto al 100%). Desventajas: Uso de DLLs (libreras dinmicas) muy complejo. Java y .Net han evolucionado estos conceptos manipulando las DLLs mediante los frameworks que

proveen. En cambio, en C++ el desarrollador debe encargarse de cargar y liberar de memoria estas libreras, y correr los riesgos por el manejo de esta memoria. Elaborar un sistema en C++ es como construir un rascacielos: tiene buen soporte y es robusto, pero si existen errores en los pisos inferiores toda la parte superior se viene abajo terriblemente. Manejo de punteros y memoria respecto a ello. Claro, esta tambin es una gran ventaja porque permite un mejor control de la memoria y una buena administracin de recursos de computadora, pero la inexperiencia de los desarrolladores o la prdida de costumbre con este tipo de variables (sobre todo cuando son dobles o triples punteros, inclusive de mayor orden) los lleva al desastre. No es recomendable para desarrollo de pginas Web. Existen muchos entornos de programacin para C++. No existen estndares para ello. De manera que puedes encontrar C++ para Unix/Linux, C++ para Windows, C++ para MacOS, y asi indistintamente. Adems, en cada SO encuentras diferentes IDEs de desarrollo, y tambin encuentras IDEs para desarrollo de aplicaciones grficas como Anjuta, Qt para Unix/Linux, Borland C++ Builder y Visual Studio C++ para Windows.

5. Conclusiones
Durante muchos aos, el objetivo principal de los programadores de computadoras fue de escribir breves piezas de cdigo que se ejecutara rpidamente. El programa necesitaba ser pequeo, debido a que la memoria era costosa y tambin necesitaba ser veloz, ya que el poder del procesamiento era costoso a la vez. En la actualidad, el tiempo de un programador cuesta ms que la mayora de las computadoras utilizadas en las empresas. Por estas razones se concluye que segn el requerimiento que tengamos para desarrollar software, se deber escoger el lenguaje de programacin especfico e idneo. En mi caso, escogera el lenguaje de programacin java, pues se aplica para todo desde aplicaciones de escritorio hasta Web con sus aplicaciones con applets. Aparte de esto no tiene ningn costo y podemos utilizarlo desde cualquier plataforma de S.O. (Sistema Operativo), lo nico que necesitaramos es instalar la IDE necesaria segn el sistema operativo.

[1] El lenguaje Java. Extrado el 9 de Abril 2009 de http://eddi.ith.mx/Curso/Contenido/java.htm [2] Java: ventajas y desventajas. Extrado el 9 de Abril 2009 de http://meetingjava.blogspot.com/2006/08/ventajas-ydesventajas-del-java.html [3] [PDF]. El lenguaje de programacin java [4] Microsoft .NET. Extrado el 9 de abril de 2009 de http://es.wikipedia.org/wiki/.NET_de_Microsoft [5] Ventajas de .Net. Extrado el 9 de abril de 2009 de http://www.desarrolloweb.com/articulos/1329.php [6] [PDF]: AUTOR: Blanco, Luis Miguel EDITORIAL: Grupo EIDOS TITULO: PROGRAMACIN EN VISUAL BASIC .NET. AO: 2002 [7] PHP. Extrado el 9 de Abril 2009 de http://es.wikipedia.org/wiki/.php [8] Qu es PHP? Extrado el 10 de Abril 2009 de http://www.desarrolloweb.com/articulos/392.php [9] C++. Extrado el 10 de Abril 2009 de http://es.wikipedia.org/wiki/C%2B%2B [10] ventajas & desventajas de c++. Extrado el 10 de Abril 2009 de http://es.answers.yahoo.com/question/index? qid=20080818183756AAG6VRL [11] Curso de C++. el 10 de Abril 2009 de http://www.conclase.net/c/curso/index.php [12] Aprenda C++ como si estuviera en primero. Extrado el 10 de Abril 2009 de http://mat21.etsii.upm.es/ayudainf/aprendainf/Cpp/manualcpp.pdf

6. Referencias

Вам также может понравиться