lenguajes programacion

12
1. Java Java es un lenguaje de programación orientado a objetos desarrollado en 1995 por Sun Microsystems. En menos de 20 años, Java se ha convertido en unos de los lenguajes de programación más populares del mundo (nº 2 en el ranking TIOBE, nº1 en JobsTractor). Java es independiente de la plataforma, lo que significa que los programas hechos para Max OS X puede ejecutarse en Windows y Linux, y viceversa. Esta característica es una de las razones por las que Java es el lenguaje elegido en la mayoría de las aplicaciones empresariales. La demanda de ingenieros de Java es excepcionalmente alta, en Indeed.com cuenta con 62.589 puestos vacantes de Java en su base de datos. La mayoría de puestos de desarrollador senior requieren experiencia laboral de Java y/o C. 2. Lenguaje C C es uno de los lenguajes de programación más antiguos usados hoy en día. Fue desarrollado originalmente en 1972 por Dennis Ritchie en los Laboratorios Bell. C es el “abuelo” de muchos lenguajes de programación, incluyendo Java, C#, C++, Perl y JavaScript. C es potente, estable, y está disponible fácilmente en casi todas las plataformas. La primera interpretación de muchos lenguajes populares como Python y PHP están escritos en lenguaje C. Esta es la razón por la que C es uno de los primeros lenguajes que se enseñan a los estudiantes, ya que puede facilitar el aprendizaje de otros lenguajes. C se encuentra en el nº 1 en el índice TIOBE y nº 13 en JobsTractor. 3. C ++ C++ fue originalmente creado en 1983 para abordar las insuficiencias del lenguaje C. Es un lenguaje de nivel intermedio con características de programación orientada a objetos. C++ está detrás de algunas de las aplicaciones más famosas de escritorio del mundo, incluyendo la suite completa de programas de Adobe (Adobe Photoshop, Illustrator, etc.), Mozilla Firefox, Google Chromium, y Winamp. La demanda de programadores de C++ es alta permanentemente, con 29.225 vacantes de acuerdo a Indeed. También se encuentra en el nº 4 del índice TIOBE, y nº 10 en JobsTractor. 4. C# C# (pronunciado “C-Almohadilla) fue desarrollado por Microsoft en el año 2000 como una parte fundamental de su framework .NET. C# es un lenguaje de programación orientado a objetos, multi-paradigma, que combina lo mejor de C y C++. Aprender C# es imprescindible para cualquier programador que quiera desarrollar para la plataforma Microsoft (incluyendo Windows). C# se encuentra en el nº 6 del índice TIOBE, y nº 8 en JobsTractor. Existen 29.557 puestos de C# en Indeed.com.

Upload: rpala2013

Post on 21-Oct-2015

46 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Lenguajes Programacion

1. Java Java es un lenguaje de programación orientado a objetos desarrollado en 1995 por Sun Microsystems. En menos de 20 años, Java se ha convertido en unos de los lenguajes de programación más populares del mundo (nº 2 en el ranking TIOBE, nº1 en JobsTractor). Java es independiente de la plataforma, lo que significa que los programas hechos para Max OS X puede ejecutarse en Windows y Linux, y viceversa. Esta característica es una de las razones por las que Java es el lenguaje elegido en la mayoría de las aplicaciones empresariales.

La demanda de ingenieros de Java es excepcionalmente alta, en Indeed.com cuenta con 62.589 puestos vacantes de Java en su base de datos. La mayoría de puestos de desarrollador senior requieren experiencia laboral de Java y/o C.

2. Lenguaje C C es uno de los lenguajes de programación más antiguos usados hoy en día. Fue desarrollado originalmente en 1972 por Dennis Ritchie en los Laboratorios Bell. C es el “abuelo” de muchos lenguajes de programación, incluyendo Java, C#, C++, Perl y JavaScript.

C es potente, estable, y está disponible fácilmente en casi todas las plataformas. La primera interpretación de muchos lenguajes populares como Python y PHP están escritos en lenguaje C. Esta es la razón por la que C es uno de los primeros lenguajes que se enseñan a los estudiantes, ya que puede facilitar el aprendizaje de otros lenguajes.

C se encuentra en el nº 1 en el índice TIOBE y nº 13 en JobsTractor.

3. C ++ C++ fue originalmente creado en 1983 para abordar las insuficiencias del lenguaje C. Es un lenguaje de nivel intermedio con características de programación orientada a objetos. C++ está detrás de algunas de las aplicaciones más famosas de escritorio del mundo, incluyendo la suite completa de programas de Adobe (Adobe Photoshop, Illustrator, etc.), Mozilla Firefox, Google Chromium, y Winamp. La demanda de programadores de C++ es alta permanentemente, con 29.225 vacantes de acuerdo a Indeed. También se encuentra en el nº 4 del índice TIOBE, y nº 10 en JobsTractor.

4. C# C# (pronunciado “C-Almohadilla) fue desarrollado por Microsoft en el año 2000 como una parte fundamental de su framework .NET. C# es un lenguaje de programación orientado a objetos, multi-paradigma, que combina lo mejor de C y C++. Aprender C# es imprescindible para cualquier programador que quiera desarrollar para la plataforma Microsoft (incluyendo Windows).

C# se encuentra en el nº 6 del índice TIOBE, y nº 8 en JobsTractor. Existen 29.557 puestos de C# en Indeed.com.

Page 2: Lenguajes Programacion

5. Objective-C Objective-C fue desarrollado en 1983 por Tom Love y Brad Cox en Apple para tratar las carencias del lenguaje C. Objetive C es el lenguaje principal utilizado en los sistemas operativos Apple OS X y iOS. El aumento de la popularidad de Macs y los dispositivos “i” de Apple (incluyendo iPad y iPhone) ha creado una enorme demanda de programadores Objective-C. Un conocimiento práctico de Objective-C le ayudará a desarrollar aplicaciones para iOS, lo que le preparará el camino para miles de trabajos en startups así como en grandes empresas tecnológicas (17.702 puestos, según Indeed). Como desarrollador Objective-C, puede también ser autónomo y crear aplicaciones iOS por su cuenta.

¡Aprenda el lenguaje Objective-C con este curso para principiantes!

Objective-C se encuentra en el nº 3 en el índice TIOBE y en JobsTractor.

6. PHP PHP (Procesador de Hipertexto) es un lenguaje de script del lado del servidor que hace funcionar a más de 244m webs en internet, incluyendo plataformas de publicación populares como WordPress, Joomla y Drupal. Creado en 1995, PHP es uno de los lenguajes más jovenes de esta lista.

PHP es relativamente fácil de aprender y puede ser fácilmente embebido dentro de páginas HTML, lo que lo ha convertido en el lenguaje de programación de propósito general en internet. La gran demanda de desarrolladores de aplicaciones web ha desembocado en un enorme exceso de puestos de PHP. Dominar PHP es a menudo el primer paso para convertirse en un desarrollador web en toda regla.

A propósito, PHP se encuentra en el nº 2 en las estadísticas mensuales de JobsTractor, y nº 5 en el índice TIOBE. Existen también 17.627 vacantes de PHP según Indeed.com.

7. Python Python fue creado en 1991 por Guido van Rossum. Este lenguaje de programación de alto nivel hace énfasis en la legibilidad y sencillez y es un lenguaje estupendo para que los principiantes empiecen su viaje en programación. Python ha disfrutado un resurgimiento en popularidad en los últimos años y ahora hace funcionar a alguna de las webs más famosas del mundo, como Instagram.com, Pinterest.com, y Rdio.com mediante su framework web asociado, Django. Google ha invertido especialmente fuerte en el desarrollo en Python en la última decada, lo que ha incrementado aún más la popularidad del lenguaje (de hecho, el fundador de Python van Rossum fue trabajador de Google de 2005 a 2012). Puede aprender fácil y rápidamente Python con este curso acelerado.

Python se encuentra el nº 9 en la lista de JobsTractor y nº 8 en el índice TIOBE. Indeed cuenta 19.553 puestos de Python online.

8. Ruby Ruby fue desarrollado en 1995 por Yukihiro Matsumoto al combinar elementos de Perl, Lisp, y Eiffel. Es un lenguaje dinámico, orientado a objetos que hace énfasis en la simplicidad y la automatización. Ruby alimenta al framework Ruby on Rails, que se utiliza

Page 3: Lenguajes Programacion

en webs tan famosas como Yammer, Scribd, Github, Gruopon, y Shopify. Muchos estudiantes de programación principiantes encuentran a Ruby comparativamente fácil de aprender por su sintaxis simple y a su legibilidad parecida al inglés.

Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de

una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad

ejecutora de las máquinas.

En los primeros lenguajes de nivel bajo la limitación era que se orientaban a un área

específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como

lenguajes procedimentales.

Otra limitación de los lenguajes de nivel bajo es que se requiere de ciertos

conocimientos de programación para realizar las secuencias de instrucciones lógicas.

Los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un

problema de procesamiento de datos de una manera más fácil y rápida.

Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de

programación que evitaba estos inconvenientes, a costa de ceder un poco en las

ventajas. Estos lenguajes se llaman de tercera generación o de nivel alto, en

contraposición a los de bajo nivel o de nivel próximo a la máquina.

Principales lenguajes de nivel alto[editar]

VB.NET

Ada

ALGOL

BASIC

C Sharp

FORTRAN

Java

Lisp

Modula-2

Pascal

Perl

PHP

PL/1

PL/SQL

Python

Ruby

Matlab

Principales lenguajes de nivel medio[editar]

C

C++

FORTRAN[editar]

Page 4: Lenguajes Programacion

Artículo principal: Fortran

Abreviatura de Fórmula Translator (traductor de fórmulas), fue definido alrededor del

año 1954, y disponible para el público en 1957 en los Estados Unidos por la compañía

IBM.1 Es el más antiguo de los lenguajes de alto nivel, pues antes de su aparición todos

los programas se escribían en lenguaje ensamblador o en lenguaje máquina.

Es un lenguaje especializado en aplicaciones técnicas y científicas, caracterizándose por

su potencia en los cálculos matemáticos, pero estando limitado en las aplicaciones de

gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de

informes.

A lo largo de su existencia han aparecido diferentes versiones, entre las que destaca la

realizada en 1966 por ANSI (American National Standard Institute) en la que se

definieron nuevas reglas del lenguaje y se efectuó la independencia del mismo con

respecto a la "máquina", es decir, comenzó la transportabilidad del lenguaje. Esta

versión se denominó FORTRAN IV o FORTRAN 66. En 1977, apareció una nueva

versión más evolucionada que se llamó FORTRAN V o FORTRAN 77, esta versión

está reflejada en el documento «ANSI X3.9-1978: Programming Language

FORTRAN» y define dos niveles del lenguaje denominados FORTRAN 77 completo y

FORTRAN 77 básico, siendo el segundo un subconjunto del primero. Esta última

versión incluye además instrucciones para el manejo de cadenas de caracteres y de

archivos, así como otras para la utilización de técnicas de programación estructurada.

Estas características hacen que el lenguaje también sea válido para determinadas

aplicaciones de gestión.

COBOL[editar]

Artículo principal: COBOL

Es el lenguaje más usado en las aplicaciones de gestión, creado en 1960 por un comité

denominado CODASYL, patrocinado por el Departamento de Defensa de los Estados

Unidos, a fin de disponer de un lenguaje universal para aplicaciones comerciales como

expresa su nombre (COmmon Business Oriented Language).

Entre sus características se pueden citar su parecido al lenguaje natural (inglés), es auto-

documentado y tiene gran capacidad en el manejo de archivos, así como en la edición de

informes escritos. Entre sus inconvenientes están sus rígidas reglas de formatos de

escritura, la necesidad de describir todos los elementos al máximo detalle, la extensión

excesiva en sus sentencias e incluso duplicación en algunos casos, la inexistencia de

funciones matemáticas y, por último, su no adecuación a las técnicas de programación

estructurada.

PL/1[editar]

Artículo principal: PL/1

Fue creado a comienzos de los años 60 por IBM para ser usado en sus equipos del

sistema 360. El PL/I (Programming Language 1) se desarrolló inspirándose en los

Page 5: Lenguajes Programacion

lenguajes ALGOL, COBOL y FORTRAN, tomando las mejores características de los

anteriores y añadiendo algunas nuevas, con el objetivo de obtener un lenguaje lo más

general posible, útil para aplicaciones técnico-científicas, comerciales, de proceso de

textos, de [[bases de datos}} y de programación de sistemas.

Entre sus novedades está su gran libertad en el formato de escritura de los programas,

soportar la programación estructurada y el diseño modular. No obstante, no ha superado

a sus progenitores en sus aplicaciones específicas debido en parte a su amplitud y por

ello, al tamaño de su compilador, que hasta ahora sólo se podía instalar en grandes

equipos.

BASIC[editar]

Artículo principal: BASIC

Fue diseñado por los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth

College en 19642 con el objetivo principal de conseguir un lenguaje fácil de aprender

para los principiantes, como se indica en su nombre Beginner’s All-purpose Symbolic

Instruction Code (Código de instrucción simbólico de propósito general para

principiantes).

Entre sus principales novedades están las de ser un lenguaje interpretado y de uso

conversacional, útil para aplicaciones técnicas y de gestión. Estas características, unidas

a la popularización de las microcomputadoras y computadoras personales, ha hecho que

su utilización se haya extendido enormemente, a la vez que ha propiciado el surgimiento

de una gran diversidad de versiones que extienden y adaptan a necesidades particulares

el lenguaje original. Existen multitud de intérpretes y compiladores del lenguaje.

PASCAL[editar]

Artículo principal: PASCAL

Fue creado por el matemático suizo Niklaus Wirth en 1970, basándose en el lenguaje

AL-GOL, en cuyo diseño había participado en los años 60. Su nombre proviene del

filósofo y matemático francés del siglo xvii Blaise Pascal, que inventó la primera

máquina de tipo mecánico para sumar.

Aunque en principio la idea del diseñador era proporcionar un lenguaje adecuado para

la enseñanza de los conceptos y técnicas de programación, con el tiempo ha llegado a

ser un lenguaje ampliamente utilizado en todo tipo de aplicaciones, poseyendo grandes

facilidades para la programación de sistemas y diseño de gráficos.

Aporta los conceptos de tipo de datos, programación estructurada y diseño descendente,

entre otros, además de haberse convertido en predecesor de otros lenguajes más

modernos, como MODULA-2 y ADA.

C/C++[editar]

Artículo principal: C++

Page 6: Lenguajes Programacion

Fue creado en 1972 por Dennis Ritchie a partir del trabajo elaborado por su colega de

los laboratorios Bell Telephone, Ken Thompson. Estos habían diseñado con

anterioridad el sistema operativo UNIX, y su intención al desarrollar el lenguaje C fue

la de conseguir un lenguaje idóneo para la programación de sistemas que fuese

independiente de la máquina con el cual escribir su sistema UNIX.

Aunque fue diseñado inicialmente para la programación de sistemas, posteriormente su

uso se ha extendido a aplicaciones técnico-científicas, de bases de datos, de proceso de

textos, etc.

La utilización óptima de este lenguaje se consigue dentro de su entorno natural, que es

el sistema operativo UNIX. Entre sus características destaca el uso de programación

estructurada para resolver tareas de nivel bajo, así como la amplia librería de rutinas de

que dispone.

ADA[editar]

Artículo principal: Ada (lenguaje de programación)

Es el último intento de obtener un único lenguaje para todo tipo de aplicaciones e

incluye los últimos avances en técnicas de programación. Su diseño fue encargado por

el Departamento de Defensa de los Estados Unidos a la empresa Honeywell-Bull

después de una selección rigurosa entre varias propuestas realizadas sobre una serie de

requerimientos del lenguaje y de haber evaluado negativamente veintitrés lenguajes

existentes. De éstos se seleccionaron como base para la creación del nuevo lenguaje el

PASCAL, el ALGOL y el PL/I. La estandarización del lenguaje se publicó en 1983 con

el nombre de ADA en honor de la considerada primera programadora de la historia

Augusta Ada Byron, condesa de Lovelace.

Entre las características del lenguaje se encuentran la compilación separada, los tipos

abstractos de datos, programación concurrente, programación estructurada, libertad de

formatos de escritura, etc., presentando como principal inconveniente su gran extensión.

Page 7: Lenguajes Programacion

Desarrollo de programas para Android De Wikipedia, la enciclopedia libre

Saltar a: navegación, búsqueda

Galaxy Nexus, teléfono recomendado por el (operating system)#Android Open Source

Project|Android Open Source Project para desarrollar programas1 parte de la serie Google

Nexus, una línea de "developer-friendly" phones

Desarrollo de Programas para Android se hace habitualmente con el lenguage de

programación Java y el conjunto de herramientas de desarrollo ( SDK, Software

Development Kit ), pero hay otras opciones disponibles. En Abril del 2011 existían más

de 200.000 aplicaciones contabilizadas para Android, con unos 3 millardos de

descargas.2 3 La plataforma Android ha crecido hasta ser una de las preferidas por los

desarrolladores para plataformas móviles. Un estudio de junio del 2011 indica que el

67% de los desarrolladores para móviles utilizaban la plataforma en el momento de la

publicación del estudio. 4

Herramientas para Desarrollo de Software[editar]

Android SDK[editar]

El SDK ( Software Development Kit ) de Android, incluye un conjunto de herramientas

de desarrollo.5 Comprende un depurador de código, biblioteca, un simulador de teléfono

basado en QEMU, documentación, ejemplos de código y tutoriales. Las plataformas de

desarrollo soportadas incluyen Linux ( cualquier distribución moderna ), Mac OS X

10.4.9 o posterior, y Windows XP o posterior. La plataforma integral de desarrollo

Page 8: Lenguajes Programacion

(IDE, Integrated Development Environment) soportada oficialmente es Eclipse junto

con el complemento ADT ( Android Development Tools plugin ), aunque también

puede utilizarse un editor de texto para escribir ficheros Java y Xml y utilizar comandos

en un terminal ( se necesitan los paquetes JDK, Java Development Kit y Apache Ant )

para crear y depurar aplicaciones. Además, pueden controlarse dispositivos Android que

estén conectados ( e.g. reiniciarlos, instalar aplicaciones en remoto).

Las Actualizaciones del SDK están coordinadas con el desarrollo general de Android.

El SDK soporta también versiones antiguas de Android, por si los programadores

necesitan instalar aplicaciones en dispositivos ya obsoletos o más antiguos. Las

herramientas de desarrollo son componentes descargables, de modo que una vez

instalada la última versión, pueden instalarse versiones anteriores y hacer pruebas de

compatibilidad.

Una aplicación Android está compuesta por un conjunto de ficheros empaquetados en

formato .apk y guardada en el directorio /data/app del sistema operativo Android ( este

directorio necesita permisos de superusuario , root, por razones de seguridad ). Un

paquete APK incluye ficheros .dex ( ejecutables Dalvik, un código intermedio

compilado ), recursos, etc.

Native Development Kit. Desarrollo Nativo[editar]

El NDK permite instalar bibliotecas escritas en C y otros lenguajes, una vez compiladas

para ARM o código x86 nativo. Los programas Java corriendo en la máquina virtual

Dalvik ( Dalvik VM ) pueden llamar a clases nativas por medio de la función

System.loadLibrary, que forma parte de las clases estándar Java en Android.

Se pueden compilar e instalar aplicaciones completas utilizando las herramientas de

desarrollo habituales. El depurador ADB proporciona un shell root en el Simulador de

Android que permite cargar y ejecutar código nativo ARM o x86. Este código puede

compilarse con GCC en un ordenador normal. La ejecución de código nativo es difícil

porque Android utiliza una biblioteca de C propia (libc, llamada Bionic). Se accede al

dispositivo gráfico como un framebuffer disponible en /dev/graphics/fb0. La biblioteca

gráfica que utiliza Android para controlar el acceso a este dispositivo se llama Skia

Graphics Library (SGL), disponible con licencia de código abierto. Skia tiene

implementaciones en win32 y Unix, permitiendo el desarrollo cruzado de aplicaciones,

y es el motor de gráficos que soporta al navegador web Google Chrome.

Android Open Accessory Development Kit[editar]

La plataforma de Android 3.1 ( portado también a Android 2.3.4 ) introduce soporte

para Android Open Accesory, que permite interactuar a dipositivos USB externos (

accesorios USB Android ) interactuar con el dispositivo en un modo especial llamado

"accessory". Cuando un dispositivo Android está en modo "accessory" el dispositivo

externo actúa como hub usb ( proporciona alimentación y ennumera los dispositivos ) y

el dispositivo Android actúa como dispositivo USB. Los accesorios Android USB están

diseñados específicamente para conectarse a dispositivos Android y utilizan un

protocolo simple ( Android accessory protocol ) que les permite detectar dispositivos

Android que soportan modo "accessory".

Page 9: Lenguajes Programacion

App Inventor para Android[editar]

Google anunció en julio de 2010 la disponibilidad de App Inventor para Android, que es

un entorno de desarrollo visual Web, para programadores noveles, basado en la

biblioteca Open Blocks Java, del MIT. Este entorno proporciona acceso a funciones

GPS, acelerómetro y datos de orientación, funciones de teléfono, mensajes de texto,

conversión habla a texto, datos de contacto, almacenamiento permanente, y servicios

Web, incluyendo inicialmente Amazon y Twitter. Hal Abelson, director de proyecto en

el MIT, dijo: "Sólo hemos podido hacerlo porque la arquitectura Android es tan

abierta". Después de un año de desarrollo, la herramienta de edición de bloques se ha

utilizado para enseñanza a principiantes en ciencias de computación en Harvard, MIT,

Wellesley, y en la Universidad de San Francisco, donde el profesor David Wolber,

desarrolló un curso de introducción a la ciencia de los ordenadores y un libro de

enseñanza para estudiantes que no estudian computación, basado en App Inventor para

Android.

HyperNext Android Creator[editar]

HyperNext Android Creator (HAC) es un sistema de desarrollo de programas dirigido a

programadores que empiezan, permitiéndoles crear sus propias aplicaciones sin

necesitar conocimientos de Java y del SDK de Android. Está basado en HyperCard, que

gestiona el software como una pila de tarjetas en la que sólo una de ellas es visible en un

momento dado y por tanto encaja bien en aplicaciones para teléfonos móviles, con una

sola ventana disponible a la vez. El lenguaje principal de desallollo se llama

simplemente HyperNext y está relacionado con el lenguaje de HyperCards HyperTalk.

HyperNext es un intérprete de un lenguaje similar al Inglés y tiene muchas funciones

para crear aplicaciones Android. Soporta un subconjunto creciente del SDK de Android

incluyendo sus propias vesiones de controles gráficos de interfaz de usuario ( GUIs ) y

ejecuta autómaticamente su propio servicio, de forma que las aplicaciones pueden

continuar ejecutándose y procesando información, sin estar en el frontal del usuario.

El proyecto Simple[editar]

El objetivo de Simple es ser un lenguaje fácil de aprender para la plataforma Android.

Simple es un dialecto de BASIC para Android. Sirve tanto para programadores

profesionales como aficionados permitiendo escribir rápidamente aplicaciones que

utilizan los componentes de Android.

Parecido a Visual Basic 6 de Microsoft, los programas Simple consisten en definiciones

de formularios ( que contienen componentes ) y código ( con la lógica del programa ).

La interacción entre ellos se hace por médio de eventos lanzados por los componentes.

La lógica del programa consiste en gestores de eventos, que ejecutan código

dependiendo del evento.

El proyecto Simple no tiene mucha actividad. La última actualización de código se

realizó en agosto de 2009. Existe un producto comercial parecido llamado

Basic4android, inspirado en Visual Basic 6 y Microsoft Visual Studio. Este proyecto si

tiene actividad y hay una comunidad sólida de programadores.

Page 10: Lenguajes Programacion

Appcelerator Titanium[editar]

Appcelerator Titanium es una plataforma para desarrollar aplicaciones móviles y de

escritorio utilizando tecnologías web. Appcelerator Titanium está desarrollado por

Appcelerator Inc. y fue lanzado en diciembre del 2008. En junio de 2009 se añadió

soporte para el desarrollo de aplicaciones móviles para Android e iPhone

Appcelerator Titanium utiliza el entorno de programación Eclipse y está basado en

JavaScript

Es gratuito, aunque requiere registro. Dada su gratuidad, sus amplias posibilidades por

abarcar varias plataformas con un mismo código de programación y la sencillez del

lenguaje JavaScript, está ganando en popularidad entre los programadores.

Existen muchos vídeos en Youtube en los que se enseñan los primeros pasos en este

entorno de programación.

El Concurso de Desarrollo Android[editar]

El Concurso de Desarrollo Android (ADC Android Developer Challenge ) fue una

competición a la aplicación más innovadora para Android. Google ofreció premios por

valor de 10 millones de dólares, distribuidos en dos fases ADC 1 y ADC 2. ADC 1

aceptaba subscripciones entre el 2 de enero y el 14 de abril de 2008. Las 50 aplicaciones

más prometedoras, seleccionadas el 12 de mayo del 2008, recibieron 25.000 dólares

para soporte a su desarrollo. A principios de septiembre diez equipos recibieron 275.000

dólares, y otros diez, 100.000 dólares. ADC II empezó el 27 de mayo de 2009. La

primera ronda concluyó el 6 de octubre. Los ganadores, 200 aplicaciones, se publicaron

el 5 de noviembre. La votación de la segunda ronda empezó ese mismo día y acabó el

25 de noviembre. Google publicó los ganadores el 30, con SweetDreams, What the

Doodle!? y WaveSecure como los ganadores totales del concurso...

Firmware de Comunidad[editar]

Hay una comunidad de apoyo al código abierto que construye y comparte firmware

basado en Android con modificaciones y funciones adicionales, por ejemplo, soporte

para audio FLAC y la capacidad de guardar aplicaciones en la tarjeta microSD.

Normalmente, esto implica acceso como superusuario al dispositivo ("rooting").

"Rooting" permite al superusuario acceder al sistema operativo con un control completo

del teléfono. Para utilizar firmwares modificados hay que desbloquear el cargador de

arranque del dispositivo. Solamente hacer "rooting" no permite grabar un firmware

propio. Los firmwares modificados permiten la utilización de teléfonos antiguos con

aplicaciones disponibles en dispositivos recientes.

Los paquetes de firmware se actualizan con frecuencia, incorporan funciones a Android

que no se distribuyen oficialmente dentro del firmware autorizado por un operador, y

suelen tener menos limitaciones. Como ejemplo están CyanogenMod y OMFGB.

El 24 de septiembre de 2009, Google envió una carta solicitando el cese de estas

actividades a Cyanogen, mencionando problemas con la redistribución de aplicaciones

Page 11: Lenguajes Programacion

Google con código cerrado en el firmware modificado. Aunque la mayor parte del S.O.

Android es código abierto, los teléfonos incorporan código propietario de Google para

aplicaciones como Android Market y navegación GPS. Google ha declarado que estas

aplicaciones sólo pueden distribuirse a través de canales de distribución aprobados con

su correspondiente licencia. Cyanogen ha cumplido los deseos de Google y continúa

distribuyendo sus modificaciones sin código propietario, proporcionando un método

para copiar las aplicaciones con licencia Google durante la instalación y recuperarlas al

finalizar la misma.

Estándares de Java[editar]

Android no utiliza los estándares establecidos de Java, i.e. Java SE y ME, lo cual es un

problema para el desarrollo. Esto impide la compatibilidad entre aplicaciones Java

escritas para otras plataformas. Android sólo utiliza la sintáxis y la semántica de Java,

pero no incorpora en su totalidad las bibliotecas de clases de Java y APIs ( Application

Programming Interface ) que acompañan a Java SE o ME. Sin embargo, hay diversas

herramientas en el mercado de empresas como Myriad Group y UpOnTek que dan un

servicio de conversión entre J2ME y Android.

Fragmentación[editar]

Este artículo o sección se encuentra desactualizado.

Es posible que la información suministrada en él haya cambiado o sea insuficiente.

Los desarrolladores informaron de la dificultad de mantener aplicaciones para versiones

diferentes de Android, debido a problemas de compatibilidad entre la versión 1.5 y 1.6,

especialmente, por diferencias de resolución entre los distintos teléfonos Android.

Estos problemas se hicieron latentes durante el concurso ADC2. Posteriormente, el

rápido aumento de modelos de teléfono basados en Android con diferentes capacidades

de hardware complicaban el desarrollo de aplicaciones para todos lo modelos de

teléfonos Android.

Sin embargo, la situación parece haber mejorado. Google informó en Julio de 2011 que

el 95% de los teléfonos android en servicio eran variantes de la plataforma 2.1 o más

recientes. Aproximadamente el 60% eran versiones 2.2 o más recientes. Un año antes,

Google informó que el 83% de los teléfonos utilizaban, las versiones 2.x, las actuales en

ese momento, con un 17% todavía con 1.5 y 1.6. Además, las versiones de Android para

tabletas y teléfonos se han unificado en la plataforma 4.0.

Historia[editar]

La Open Handset Alliance, liderada por Google, es la creadora de Android. Los

primeros informes de desarrollo de aplicaciones para la plataforma Android eran

confusos. Entre los temas expuestos se incluían errores, falta de documentación,

infraestructura de control de calidad inadecuada, inexistencia de un sistema de

seguimiento de problemas (Google anunció un sistema de seguimiento de incidencias el

Page 12: Lenguajes Programacion

18 de enero de 2008). En diciembre del 2007, Adam MacBeth, fundador de MergeLab

mobile, expresó "No hay funcionalidad, está mal documentada o no funciona... desde

luego no está lista para el lanzamiento". A pesar de todo, las aplicaciones dirigidas a

Android empezaron a la semana siguiente de su aparición. La primera aplicación

publicada fue el juego de la serpiente. El Teléfono de Desarrollo Android es un

dispositivo con el SIM y el hardware desbloqueados, orientado a desarrolladores

avanzados. Así como pueden usarse dispositivos de consumo normales para probar y

utilizar aplicaciones, algunos programadores prefieren dispositivos desbloqueados y sin

contrato.

El 12 de noviembre de 2007 se lanzó una versión de prueba de Android SDK. El 15 de

julio de 2008, El equipo del Concurso de Desarrollo Android envió accidentalmente un

correo electrónico a todos los participantes anunciando una nueva versión de SDK en el

área restringida de descargas. El correo debía dirigirse únicamente a los ganadores de la

primera ronda. El hecho de que Google proporcionara una nueva versión de SDK a unos

desarrolladores y no a otros, mediante un acuerdo privado, originó un gran descontento

en la comunidad de desarrolladores de Android.

El 19 de agosto apareció la versión Beta de Android 0.9 SDK. Proporcionaba una API

mejorada extendida, mejoras en la herramientas y un diseño actualizado de la pantalla

principal. Hay instrucciones detalladas de actualización para aquellos que todavía

utilicen versiones anteriores. Android 1.0 SDK ( versión 1) aparece el 23 de septiembre

del 2008. Según las notas de la versión, incluía fundamentalmente correcciones de

errores, aunque incorporaba pequeñas novedades. Incluso incluía varios cambios en el

API sobre la versión 0.9. Desde esa fecha, se han distribuido múltiples versiones.