domingo, 16 de febrero de 2014

Lenguajes de Programación



El índice Comunidad Programación TIOBE es un indicador de la popularidad de los lenguajes de programación. El índice se actualiza una vez al mes. Las calificaciones se basan en el número de ingenieros cualificados en todo el mundo, cursos y proveedores de terceros. Los motores de búsqueda populares como Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube y Baidu se utilizan para calcular las calificaciones. Observe que el índice TIOBE no es sobre el mejor lenguaje de programación o el idioma en el que la mayoría de las líneas de código se han escrito.


A continuación una breve información de 6 de los principales lenguajes de programación

C (lenguaje de programación)
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 de tipos de datos estáticos, 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.
Propiedades

•Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.
•Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias de ruptura).
•Un sistema de tipos que impide operaciones sin sentido.
•Usa un lenguaje de preprocesador, el preprocesador de C, para tareas como definir macros e incluir múltiples archivos de código fuente.
•Acceso a memoria de bajo nivel mediante el uso de punteros.
•Interrupciones al procesador con uniones.
•Un conjunto reducido de palabras clave.
•Por defecto, el paso de parámetros a una función se realiza por valor. El paso por referencia se consigue pasando explícitamente a las funciones las direcciones de memoria de dichos parámetros.
•Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de encapsulado y polimorfismo.
•Tipos de datos agregados (struct) que permiten que datos relacionados (como un empleado, que tiene un id, un nombre y un salario) se combinen y se manipulen como un todo (en una única variable "empleado").

JAVA C (lenguaje de programación)
Java es un lenguaje de programación y la primera plataforma informática creada por Sun Microsystems en 1995. Es la tecnología subyacente que permite el uso de programas punteros, como herramientas, juegos y aplicaciones de negocios. Java se ejecuta en más de 850 millones de ordenadores personales de todo el mundo y en miles de millones de dispositivos, como dispositivos móviles y aparatos de televisión.
Aplicaciones autónomas
•Todo en Java está dentro de una clase, incluyendo programas autónomos.
•El código fuente se guarda en archivos con el mismo nombre que la clase que contienen y con extensión “.java”. Una clase (class) declarada pública (public) debe seguir este convenio. En el ejemplo anterior, la clase es Hola, por lo que el código fuente debe guardarse en el fichero “Hola.java”
•El compilador genera un archivo de clase (con extensión “.class”) por cada una de las clases definidas en el archivo fuente. Una clase anónima se trata como si su nombre fuera la concatenación del nombre de la clase que la encierra, el símbolo “$”, y un número entero.
•Los programas que se ejecutan de forma independiente y autónoma, deben contener el método “main()”.
•La palabra reservada”void” indica que el método main no devuelve nada.
•El método main debe aceptar un array de objetos tipo String. Por acuerdo se referencia como ”args”, aunque puede emplearse cualquier otro identificador.
•La palabra reservada ”static” indica que el método es un método de clase, asociado a la clase en vez de una instancias de la misma. El método main debe ser estático o ’’de clase’’.
•La palabra reservada public significa que un método puede ser llamado desde otras clases, o que la clase puede ser usada por clases fuera de la jerarquía de la propia clase. Otros tipos de acceso son ”private” o ”protected”.
•La utilidad de impresión (en pantalla por ejemplo) forma parte de la biblioteca estándar de Java: la clase ‘’’System’’’ define un campo público estático llamado ‘’’out’’’. El objetoout es una instancia de ‘’’PrintStream’’’, que ofrece el método ‘’’println (String)’’’ para volcar datos en la pantalla (la salida estándar).
•Las aplicaciones autónomas se ejecutan dando al entorno de ejecución de Java el nombre de la clase cuyo método main debe invocarse. Por ejemplo, una línea de comando (en Unix o Windows) de la forma java –cp . Hola ejecutará el programa del ejemplo (previamente compilado y generado “Hola.class”). El nombre de la clase cuyo método main se llama puede especificarse también en el fichero “MANIFEST” del archivo de empaquetamiento de Java (.jar).

Entornos de funcionamiento
En dispositivos móviles y sistemas empotrados, En el navegador web, En sistemas de servidor, En aplicaciones de escritorio, Plataformas soportadas,


Objective-C. (Lenguaje de programación)
Es un lenguaje de programación orientado a objetos y basado en mensajes, altamente dinámico. Este lenguaje consiste en un pequeño número de incrementos a ANSI C, y está caracterizado por su aplazamiento a muchas decisiones hasta que se cumple el tiempo de corrida del programa creado, soportando envíos dinámicos, escritura y carga dinámica.
Objective-C es, cómo C++, un lenguaje orientado a objetos que desciende de C. Esta descendencia hace que Objective-C sea compatible hacia atrás, haciendo esto que mucha de la sintaxis y características de C estén presentes en Objective-C:
Sentencias de control de flujo (if, for, while...)
Tipos de datos fundamentales, estructuras y punteros.
Conversiones implícitas y explícitas entre tipos.
El ámbito de las variables: Global, estáticas o locales.
Las funciones y su sintaxis.
Las directivas del preprocesador (añadiendo Objective-C las suyas, así como las llamadas directivas del compilador).
¿Y entonces en qué se diferencian C++ y Objective-C? Pues en muchísimas cosas, empezando por lo obvio: las influencias procedentes de las ideas de Smalltalk, lo cual hace de Objective-C un lenguaje muy limpio, pequeño y por ende, mucho más rápido y fácil de aprender que C++. Aun así, Objective-C es mucho menos usado que C++ (hablando en general, en el mundo Mac OS X no es así); esto puede ser porque, a diferencia de otros lenguajes de las GCC, Objective-C no ha sido estandarizado por ningún organismo internacional, sino que fue NeXSTEP, y ahora Apple con Mac OS X, quienes han contribuido a crear este lenguaje. De echo, NeXSTEP cedió su implementación de Objective-C a las GCC, por lo que se puede programar en Objective-C tanto en Linux como en Windows, claro está, que el número de librerías es limitado y sólo están las básicas (aunque se pueden acceder a las librerías C y C++ desde Objactive-C).


C++ (Lenguaje de programación)
es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.
Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.

Caracteristicas del lenguaje C++
Las principales características del Lenguaje C son:
1.-Tiene un conjunto completo de instrucciones de control.
2.-Permite la agrupación de instrucciones.
3.-Incluye el concepto de puntero (variable que contiene la dirección de otra variable).
4.-Los argumentos de las funciones se transfieren por su valor.
5.- E/S no forma parte del lenguaje, sino que se proporciona a través de una biblioteca de funciones.
Permite la separación de un programa en módulos que admiten compilación independiente.
Originalmente el Lenguaje C estuvo muy ligado al sistema operativo UNIX como se había mencionado antes que, en su mayor parte, está escrito en C. Más adelante se comenzó a utilizar en otros sistemas operativos para programar editores, compiladores, etc. Aunque se le conoce como un lenguaje de programación de sistemas, no se adapta mal al resto de aplicaciones. De hecho, hoy en día un alto porcentaje de software para ordenadores personales está escrito en Lenguaje C. Por ejemplo, el sistema operativo MS-DOS.

C# (Lenguaje de programación)
Es un lenguaje de programación simple pero eficaz, diseñado para escribir aplicaciones empresariales.
El lenguaje C# es una evolución de los lenguajes C y C++. Utiliza muchas de las características de C++ en las áreas de instrucciones, expresiones y operadores.
C# presenta considerables mejoras e innovaciones en áreas como seguridad de tipos, control de versiones, eventos y recolección de elementos no utilizados (liberación de memoria).
C# proporciona acceso a los tipos de API más comunes: .NET Framework, COM, Automatización y estilo C. Asimismo, admite el modo unsafe, en el que se pueden utilizar punteros para manipular memoria que no se encuentra bajo el control del recolector de elementos no utilizados.


PHP (Lenguaje de programación)
Es un lenguaje de programación de uso general de código del lado del servidor originalmente diseñado para el desarrollo webde contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera la página Web resultante. PHP ha evolucionado por lo que ahora incluye también una interfaz de línea de comandos que puede ser usada en aplicaciones gráficas independientes. Puede ser usado en la mayoría de los servidores web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo.
Características
•Orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una base de datos.
•Es considerado un lenguaje fácil de aprender, ya que en su desarrollo se simplificaron distintas especificaciones, como es el caso de la definición de las variables primitivas, ejemplo que se hace evidente en el uso de php arrays.
•El código fuente escrito en PHP es invisible al navegador web 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 módulos (llamados ext's o extensiones).
•Posee una amplia documentación en su sitio web oficial, 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. Incluso aplicaciones como Zend framework, empresa que desarrolla PHP, están totalmente desarrolladas mediante esta metodología.
•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, aún haciéndolo, el programador puede aplicar en su trabajo cualquier técnica de programación o de 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 (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.
•Debido a su flexibilidad ha tenido una gran acogida como lenguaje base para las aplicaciones WEB de manejo de contenido, y es su uso principal.


Referencias Bibliograficas

La computación… Cada vez más cerca!