Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Captulo I
|ntmd,_,-
I .2
en Java
|.I0 Prueba de una aplicacin en Java
Ian
general
HL/P
|.6
I.I4 Conclusin
lenguajes de programacin
Introduccin
Bienvenido a java: el lenguaje de programacin de computadoras ms utilizado en el mundo. Usted ya
esta familiarizado con las poderosas tareas que realizan las computadoras. Mediante este libro de texto,
usted escribir instrucciones para ordenar alas computadoras que ralicen esos tipos de tareas. El sqware
desqware.
las computadoras tipo tableta) habilitados parajava. De acuerdo con un estudio realizado poreMarlteter,
el nmero de usuarios mvils de Internet llegar acerca de 134 millones para 2013.' Otros studies han
proyectado ventas de telefonos inteligentes que sobrepasa a las ventas de computadoras personales en
201 12 y ventas de tabletas que representarn cerca del 20% de todas las ventas de computadoras personalas para 2015.3 Para20l4, se esperaqueel mercado de las aplicaciones de telemos inteligente exceda los
$40 mil rnillones,' lo cual generar oportunidades importantes para la programacin de aplicaciones
mviles.
Ediciorus deam' SE, EE] .ME
java ha evolucionado con tanta rapidez que esta novena edicin de Cmo programar en java -basada
en ava Standard Edition 6 (java SE 6') con mdulos opcionales sobre las nuevas caracteristicas dejava
SE 7 -se public slo 15 aos dsputfs de la primera edicin. java se utiliza en un espectro tan amplio
de aplicaciones. que cuenta con otras dos ediciones. java Enterprise Edition (java EE) est orientada
hacia el desarrollo de aplimcions de red distribuidas, de gran mmla, y aplicaciones basadada en Web.
una _ pene r1d . con/a rt-I c e/171 380/more sua rtphones_than_desktop_pc s_by_201_'l . ho _
wm .forrester _ con/ER/Press/Relea se/O, 1169 . 134-0 .O0. ht||`I .
nk i x-I
ll6-l23.
|.|
Introduccin
dientes (que no estaban conectadas en red). En la actualidad, las aplicaciones se pueden acribir con
miras a comunicarse entre computadoras en todo el mundo por medio de Internet y Web. Ms adelante
en ste libro hablaremos sobre cmo crmr dichas aplicaciones basadas en Web con java.
java Micro Eiition (Java ME) est orientada hacia el desarrollo de aplicaciones para pequeos
Cllspositivns con memoria restringida, como los telfonos inteligenta Blltcrty. El sstcrna opetalvo
Android de Google -que se utiliza en muchos telefonos inteligentes, tabletas (pequeas computadoras
gotas y mviles con pantallas tctilm), lectora electrnicos y otros dispositivos- utilim una versin
personalizada de java que no se basa en java ME.
crgrrtacidrrerr la indurtkybt irrtritigcrr
ms son tiempos emocionante en el campo de la computacin. Muchas de hsempresas ms influyen-
nes y exitosas de las ltimas dos dcadas son compaias de tecnologa, como Apple, IBM, Hewlett
Pacltard. Dell, Intel, Motorola, Cisco, Microsoft, Google,Ama:r.on, Faoeboolt,Twitter, Groupon, Foursquare, Yal1oo!,eBay y muchas ms; queson rentes de empleo importantes para hs personas que estudian
las computadoras tambin se utilizan mucho en kt investigacin acadmica e industrial. La gura 1.1
provee unos cuantos ejemplos de las increbles formas en que se utilizan las computadoras, tanto en
la invstigacin como en la industria.
Internet
Proyecto
Genoma
I-lurnarro
ElProyeceoGenomaHumanosefundpomidentifrcnryana1izarlosms
de 20,000 genes en elADN humano. El proyecto utiliz programas de
computadora panrarralizar datos genticos complejos. dener-mirrarlaa
seurerrciasde los miles de rnillona de poresde bases qumims que componen
I-ig. I.I I Unos cuantos usos para las computadoras (parte I de 3).
Captulo I
computadoraseenfm
GPS
calorlaladirtaocia haciatardasaelineoonbaseenlairoraenquelasealli
del satice yse recibi. La ubimcin decada satlite yla disomcia hacia ada
ElSiseernadea1ertaA.MBER(DesaparecidosmAmerit:a:$iscunade
'Iiansmisin de Respuesta a Emergencias) se utiliaa para buscar nios
secuestrados. Lasautoridades notitarn tanto a lasdirsotas dc TV y radio
Robots
para tareasdiarias (porejemplo. inspiradora Rootnbade illobot), deenneeenitniento (como la mascotas robdtim), combate militar, explotacin
enlapromdidsrddeloceano. manufactunyotrasm.En20lM.elootarnun.1smardanndelaNASAamnnolrumm-qtreulimbammdogajava-en
lord hsuper-deparrrqrrender-sobrelalrisnoriadelaguaenelplar-reta.
Nombre
Descripcin
Une Laptop Por Nio (OLPC) ofrece lapoops eoonrniois, habilitadas para
(OLPC)
Innemer yde bajo oonsumo de energia para los nios pobres en nodo el
en slo un da en Norteamrica yel Reino Unido (news .cnet.eon/830113 772_3-103965 93- 52 _ MJI1 'tag-|Inco'I ;trt)l Losjuqursoeialfrerr linea,
que perrniuen a usueriosde nodo elmundo eornpetir-entre s. esuin creciendo con rapidez. Zyup-creadordc juegos en lina populares. como
nda su vida. Las mp:-rmmputdomc ya pueden realizar miier de billoms de nsn-uoeiona por segundo!
Dicho de otra Forma, una oomputadora de mil billones de instmociou-es por segundo puede realizar en
un segundo ms de 100,000 clculos para cada una de or rabitanter delphneml Y estos lmi tes superiores stn aumentando oon rapidez!
Captulo I
Las computadoras procesan datos bajo el control de conjuntos de instrucciones conocidas como
que se ejecutan en una computadora se la denomina software. En ste libro aprender la metodologa
de programacin clave de la actualidad que mejora la productividad del programador, con lo cual se
reducen lcs costos de desarrollo del software: programacin orimrada la objetos.
Una computadora consiste en varios dispositivos conocidos como lnrdwate (teclado, pantalla, ra-
tn, dkcos duros, memoria, unidades de DVD y unidades de procesamiento). los costos de las computadoras Inn diirnrnuido en forma especmcuhr, debido a los rapidos desarrollos en las tecnologias de
hardware y software. Las computadoras que ocupaban grandes habitaciones y que costaban millones
dedlares hacealgunasclcadas, ahora pueden colocarse en las superficies de chipsde silicio ms pequeos
que ima ua, y con tm costo de quiz unos cuantos dlaiu cada uno. Aunque suene irnico, el silicio
es uno de los materiales ms abundantes en el planeta (es uno de los ingredientes de El arena comn).
la tecnologa de los chips de silicio ha vuelto tan econmica a la tecnologa de la computacin que hay
ms de mil millones de computadoras de uso general Funcionando a nivel mundial, y se espera que esta
cifra se dupliqueen los prximos aos.
inteligentes, sistemas de seguridad en el hogar, telfonos celulares y telfonos inteligentes, robots, intersecciones de trfico inteligentes (collision avoidance systems), controles de videojuegos y mas. La gran
mayora de los microprocesadores que se producen cada ao estan incrustados en dispositivos que no
son computadoras de propsito generalf
Lo' de Moore
Es probable que cada ao, espere pagar por lo menos un poco ms por la mayora de los productos y
servicios. En el caso de los campos de las computadoras y las comunicaciones se ha dado lo opumto, en
special con relacin a los costos del hardware que da soporte a estas tecnologas. Los costos del hardware
han disminuido con rapidez. durante varias dcadas. Cada uno o dos aos, las capacidads de las computadoras se dsrplirarr aproximadamente sin que el precio se incremente. Esta notable observacin seconoceen el ambito comn como la Leyde Moore, y debe su nombre ala persona que identific sta tenden-
cia: Gordon Moore, corndador de Intel, uno de los principales fabricantes de procesadores para las
computadoras y los sistemas incrustados de la actualidad. la Ley de Moore y hs observacons relacionadas son especialmente ciertas en cuanto a la cantidad de memoria que tienen las computadoras para los
tecnologia mejore con tanta rapida y los costos dismin uyan de una manera tan drstica. Dicha mejora
fenomenal est fomentando sin duda la Revocddn de :lr infrrnacin.
l.3
jerarqua de datos
Los elementos de datos que procesan lascomputadoras forman una jerarquiade dato-aque se vuelve cada
va ms grande y compleja en mtructura, a medida que progrmamos primero a bits, luego a caracters,
despus a campos y asi en lo sucesivo. La gura 1.2 ilustra una porcin de lajerarqufa de datos. La figura
wm .eetl nes. con/electroni es-blogs/*I ndustr"laI-control -des'|gn`I 'l ne- b'I og/402?479/
Rea-nen-program 1 n-C?pa9eNulber-1.
Judy
Negro
Tn
Azul
Indy
Verde
Ir! s
Naranja
Randy
Rojo
Vcfl
3 I-I 0 Y
A-d1vo
Hltw
Campo
OUIOOOW 01001010
S11 `Iy
Cfttcl' Lhitdt J
Bit
L2 I jerarqua de datns.
Nivei
Dtstiipin
Bts
Eldancnnodcdauosmispequcoenunaoompumdon pucdcnaunirdvalor
odvalor 1.h0c|nmmm dcdimsxlcdmmna l'|it(abrv'Bc6ndc
'dgim binario": un dgim que puede uum.i.r uno de dos valorcs). Esnmablc
Esnediooopualaspcsonastmhujarmndamscrnclfonnamdcbajoniwcldelos
bi. En cambio. pmum Inbajax mn gmdedmmks (0-9), ktm (A-Z ya-1) y
:fnhlanea`ak:(por ejemplo, $,@. 95, 8. ', (, ). -, +,", ?y}. Losdlgms, lens:
ysimbolos especiales se conocen como cnrlctntel. El amianto dcuncluude
la oompumdom cscl conjunto dc nodos los qu: scutilinn para mcribirprogmmzi
yrepvescnurcknzulnosdedanoalasoomputadozassloprocunnlos 1ylos0,
por lo que dmnjunm dcamctua de una mmputadom lqarenmu a ada uno
algunnscamcmerescspecalucomunes.
Captulo l
Nivel
Descripcin
Campoo
Archivos
Unlehivoaungmpode|egsuoereIacionodoe.[Na'a:Diehoenformamds
Fneral, un chivo mneiene danos atbiuariosen fonnanos arbitrarias. En algunos
sinunasopu-uivos,unard1voaevemnslommomusawmakdrQ;eeanlquer
olnimcindeesosby'nes1unaml1ivn,eomocuanslose olpnizanlosdaoosen
Unidad logica
Descripcin
lhisllsl
deentrsda
dinpoliiivoldeennadaylaponeadrposidndehsouasunichdesparaquepueda
prooesarsn-.1.amsyor|1a.reedehinnna::i6n se inuoduceanavsdeloa eeclados,
pantallas nietilesyraeones. La informacin eembin puedeiouodudrse de mlwlus
oems formas, como hablar con su oolnpumdom, digiializarimner y
de
o un controlador de juegos.
Llnidsd igica
Descripcin
[hidad
Esta seccinde 'embarque' coma nfonmein que ya ha sido procesada por lacompu-
rsalidn
mdomylamlomenlosdifermmsdipneivtldendgpomquesedisponible
Esta seccin de aimacrr deacoeso rpido, pero con relativa baja capacidad, retiene
La informacin que se introduce a naves de la unidad de entrada, para que este
disponibledemana inmediata y se pueda proccsarcuando su necesario. La unidad
y lgica (ALU)
divisin.'l`mbin contiene los tnecanismosde drdsin que permiten a la computadora hacer cosas como, por ejemplo, comparar dos elementos de la unidad de
de procesamiento
(CPU)
deatielaunidaddememotiahasraciermsdispositivosdesalida. Muchasdelsscomputadotas actuales contienen mltiples CPU y, por lo tanto, pueden rmlharmucbas
Hmacenamienln
seenndario
I0
Capitulo I
Lenguajes mquina
2.
Lenguajes ensarnbhdores
3.
Cualquier computadora puede entender de manera drectaslo su propio lenguaje mquina, elcual
se define segn su diseo de hardware. Por lo general, los lenguaja mquina consisten en cadenas de
nmeros (que nalmente se reducen a los 1 y 0) que instruyen a las computadoras para rmlizar sus operaciones ms elementalu, una a la va. Los lenguajes mquina son
de la
(es decir,
un lenguaje mquina en particular puede usarse slo en un tipo de computadora). Dichos lenguajes son
diciles de comprender para los bumarros. Por ejemplo, he aqui la seccin de uno de los primeros programas en lenguaje mquina, el cual suma el pago de las horas extras al sueldo base y almacena el resultado
en el sueldo bmro:
i-1300042 7 74
+1400 5934 19
+ 12002740 27
La programacin en lenguaje mquina era demasiado lenta y tediosa para la mayora de los programadores. En vez. de utilizar las mdenas de nmeros que hs computadoras podan entender de manera
directa, los programadores empezaron a utilizar abreviaturas del ingl para representar las operaciones
elementalm. Estas abreviaturas formaron la base de los lenguajes ensambladores. Se daarrollaron programar traductores conocidos como utsambladores para convertir los primeros programas en lenguaje
ensamblador a lenguaje mquina, a la velocidad de la computadora. La siguiente seccin de un programa en lenguaje ensamblador tambin suma el pago de las horas extras al sueldo base y almacena el resultado en el sueldo bruto:
'load
add
store
suel dobase
suel doextra
suel dobruto
Aunque ste cdigo 3 ms claro para los humanos. hs computadoras no lo pueden entender sino hasta
quese traduce en lenguaje mquina.
Eluso delascomputadoras se increment rpidarnentecon la llegada de los lenguajscnsambladorts,
pero los programadores an requeran de muchas instrucciones para llevara cabo incluso hasta hs tareas
ms simplm. Para agilizar el procwo de programacin se dmarrollaron los lenguajes de alto nivel, en
donde podan escribirse instrucciones individuales para rmlizar tareas importantes. Los programas traductores. denominados compilatlores, convienen programas en lenguaje de alto nivel a lenguaje mqui-
na. Los lenguajes de alto nivel permiten a los programadores escribir instrucciones que son muy similares
al ingls comn, y contienen la notacin matemtica comn. Un programa de nmina escrito en un
lenguaje de alto nivel podra conte ner una instruccin como la siguiente:
sue'IdoBruto = sueldoase + sueldolxtra
Desde el punto de vista del programador, los lenguajes de alto nivel son mucho ms recomendables
que los lenguajes mquina o ensambhdor. java es, por mucho, el lenguaje de alto nivel ms utilizado.
|.6
II
forma en que trabajan los intrpretes en la seccin 1.9. en donde aprender que java utiliza una astuta
mezcla de compilacin e interpretacin, optimizada con base en el rendimiento, para ejecutar los pro-
gramas. Los ejercidos 7.35-7.37 (en la Seccin especial: Cree su propia computadora) le guiarn a
travs del proceso de creacin de un programa intrprete.
en forma ms precisa -como veremos en el capitulo 3- las clase: de las que provienen los objetos,
son en esencia componentes de software reurilizables. Existen objetos de fecha, objetos de hora, objetos de audio, objetos de video, objetos de automviles, objetos de personas, etctera. Casi cualquier
mstan tivo se puede reprmen tar de manera razonable como un objeto de software en trminos de sus
arriban: (como el nombre, color y tamao) y mmporramimms (por ejemplo, calcular, moverse y comtulimrse). Los desarrolladores de software han dmcubierto que al usar una metodologia de diseo
paraque usted pueda hacer sm? Bueno, anne; de que pueda conducir un auto, alguien tiene que uarla.
Por lo general, un auto empieza en forma de dibujos de ingeniera, similares a los plano: de construccin
que dscriben eldiseo de unacasa. Estos dibujos de ingenierfaincluyen ddiseo del pedal del acelerador.
El pedal ocuka los complejos mecanismos que se encargan de que el auto aumente su velocidad, de igual
forma que el pedal del teno oculta los mecanismos que disminuyen la velocidad del auto y el volante
oculta los mecanismos que hacen que el auto de vuelta. Esto permite que las personas con poco o nada
de conocimiento acerca de cmo iimcionan los motors, los enos y los mcmnismos de la direccin
es posible conducir los dibujos de ingeniera de un auto. Antes de poder conducir un auto, ste debe
mrurrurrr a partir de los dibujos de ingeniera que lo dmcriben. Un auto completo tendr un pe
dal acelerador verdadero para hacer que aumente su velocidad, pero an as no es suficiente; el auto
no acelerar por su propia cuenta (esperernos que as seal), asl que el conductor debe oprimir el pedal
del acelerador para aumentar la velocidad del auto.
Mtodos] :laser
Ahora vamos a utilizar nuestro ejemplo del auto para introducir algunos conceptos clave de la programacin orientada a objetos. Para realizar una tara en una aplicacin se requiere un mtodo, el
cual aloja las instrucciones del programa que se encargan de ralizar sus tareas. El mtodo oculta al
usuario stas tareas, dela misma lorma que el pedal del acelerador de un auto oculta al conductor los
mecanismos para hacer que el auto vaya ms rapido. En java, creamos una unidad de programa llamada clase para alojar el conjunto de mtodos que rmiizan las taras de ma clase. Por ejemplo, una
Captulo I
dase que representa a urta cuenta bancaria podria contener un mtodo para depositar dinero en una
cuenta, otro para rerirary un tercero para roficirarel saldo actual. Una clase es similar en concepto a
los dibujos de ingeniera de un auto, que contienen el diseo de un pedal acelerador, volante de di-
reccin, etctera.
twancianuenro
As como alguien tiene que cortrrmir un num a partir de sus dibujos de ingenieria para que otra persona
lo pueda conducir despus, tambin es necesario crear un m de unaclase para que un programa pueda
realizar las tareas definidas por los mtodos de Ga chse. Al proceso de hacer esto se le denomina infrarr-
dases existentes para crear nuevas clases y programas, alrorr-amos tiempo y esrerno. La reutilizacin
tambin nos ayuda a crm: sistemas mas conabla y efectivos, debido a que con 'eCuencia las clas y
bs componentes eristentes pasan por un extenso proceso de prueba, depuracin y optimizacin del
riaenrpea. De la misma rnaneraen quela nocin depieza: inzerramlriabkr fue crucial para la Revolucin
Industrial, las clases reutilizahles son cruciales para la revolucin de software incitada por la tecnologa
de objetos.
saje se implementa como llamarla a mtodo, para indicar a un mtodo del objeto que rmlice su tara.
Por ejemplo, un programa podra llamar al mtodo depositar de un objeto cuenta de banco especlco
sus proprbr atributos. Por ejemplo, cada uno sube cunta gasolina hay en su tanque, pero no cuanta hay
en los tanque de otros autos.
De manera similar, un objeto tiene atributos que lleva consigo a medida que se utiliza en un pro-
grama. Estos au-ibutos se especifican como parte de la clase del objeto. Por ejemplo, un objeto cuenta
bancaria tiene un atributo :chia que representa la cantidad de dinero en h cuenta. Cada objeto cuenta bancaria conoce el saldo de la Cuenta que reprmenta, pero rra los saldos de las tiras cuentas en el
I3
Eruapnlanurrto
las class enmpsttlnn (envuelven) los atributos y mtodos en objetos; los atributos y mtodos de un
cbjeto estn muy relacionados entre sl. Los objetos se pueden comunicar entre sl, pero por lo general
no se les permite saber cmo estan implementados otros objetos; los detall de implemerttacin stan
ocultos dentro de los mismos objetos. Este ocultamiento de informacin, como veremos mas adelante,
G crucial para la buena ingeniera de software.
Here'm1'a
Es posible crm: una nueva clase de objetos con rapidez y de manera conveniente mediante la herencia:
la nueva clase absorbe las caracteristicas de una clase existente, con ia posibilidad de personalizarlas
y agregar aracrer1'stit'as nicas propias. En rrumtra analoga del auto, sin duda un objeto de la clase
convertible er un objeto de la chse ms genera! llamada automvil pero, de manera ms erpecica, el
techo puede ponerse o quitarse.
mas? Tal va, al igualque muchos prograrnadores,slo entender su computadora y empezar a escribir.
Quizs este mtodo funcione para pequeos programas (como los que presentarnos en los primeros captulos del libro), pero qu tal si le pidieran crmr un sistema de software para controlar miles de cajeros
automaticos para un banco importante? O si le piden que
con un equipo de 1,000 desarrolladores de software para crear el nuevo sistema de control de trfico areo en Estados Unidos? Para proyecms tan grande y complejos, no es conveniente tan slo sentarse y empezara escribir programas.
Para crear las mejores soluciones, debe seguir un proceso de anlisis detallado para determinar los
requerimientos de su proyecto (denir qu!se supone que debe hacer el sistema) y dmarrollar un diseo
que los satisfaga (decidir oimo debe hacerlo el sistema). Lo ideal serla pasar por este proceso y revisar el
diseo con cuidado (ademas de pedir a otros profutionales desoftware que lo revisen) antes de escribir
cualquier cdigo. Si este proceso implica analizar y disear su sistema desde un punto de vista orientado
aobjetos, se denomina proceso de anlisis y diseo orientado a objetos (ADOO]. Los lenguajm como
java son orientados a objetos. La programacin en un lenguaje de este tipo, conocida como prognntacin orientada tt objetos (POD), le permite implementar un diseo orientado aobjetos como un sistema tncional.
para modelar sistemas orientados a objetos. Prmenramos nuatros primeros diagramas de UML en los
captulos 3 y 4; despus los utilizamos en nuestro anlisis ms detallado de la programacin orientada a
objetos en el captulo ll. En nustro ejemplo prctico apcirmaide ingeniera de software del ATM en los
I.7
Sistemas operativos
Los sistemas operativos son sistemas de software que se encargan de hacer ms conveniente el uso de
hs computadoras para los usuarios, dsarrolladors de aplimciona y administradora de sistemas. Los
sistemas operativos proveen servicios que permiten acada aplicacin ejecutarse en forma segura, eficien-
Captuio I
te y conrurrmte (es decir, en paralelo) con otras aplicaciones. El software que contiene los componentes
bsicos del sistema operativo se denomina lteenel. Los smemas operativos de escritorio populares son:
Linux, Wndows 7 y Mac OS X. Los sistemas operativos mviles populares que se utilizan en telfonos inteligentts y tabletas son: Android de Google, BlackBerry OS y Apple iOS (para sus dispositivos
muy popular en la epoca en que, para interactuar con l, los usuarios tecleaban comandos. Windowrs
tom prestados muchos conceptos (como los iconos, mens y ventanas) que se hicieron populares
gracias a los primeros sistemas operativos Apple Macintosh, desarrollados en un principio por Xerox
PARC. Windows 7 es el sistema operativo ms recien te de Microsoft; algunas de sus ciracterlsticas son;
mejoras en la interfaz de usuario, un arranque mas veloz, un mayor grado de renarniento en cuanto a
hs m.racterlstitas de seguridad, soporte para pantalla tctil y multitctil, y otras ms. Windows es un
sistema operativo propietario; esta bajo el control exclusivo de una compaa. Windows es por mucho
el sistema operativo ms utilizado en el mundo.
individuos y compaias unen sus esfuerzos para desarrollar, man tener y evolucionar el software a cambio del derecho de usarlo para sus propios fines, por lo general sin costo. Por lo general el cdigo fuente abierto es escudriado por una audiencia mucho mayor que la del software propietario, de modo
que casi siempre los errors se eliminan con ms rapidez. El cdigo iente abierto tambin fomenta
una mayor innovacin. Sun abri el cdigo de su implementacin del Kit de desarrollo de Java y de
mu-Chas de sus tecnologas de java relacionadas.
Algunas organizaciones en la comunidad de cdigo fuente abierto son: la fundacin Eclipse (el
Entorno integrado de desarrollo Eclipse ayuda a los programadores de java a desarrollar software
de manera convenien te), la fundacin Mozilla (creadores del navegador Web Firefox), la fundacin de
software Apache (creadores del servidor Web Apache que se utiliza para desarrollar aplicaciones basadas en Web) y SourceForge (quien proporciona las herramientas para administrar proyectos de cdigo fuente abierto; tiene ms de 260,000 de estos proyectos en dsarrollo). Las rapidas mejoras en la
computacin y las comunicaciones, la reduccin en costos yel software de cdigo fuente abierto han
logrado que sea mucho ms fcil y econmico crm: un negocio basado en software en la actualidad
de lo que era hace unas cuantas dcadas. Facebook es un gran ejemplo de ello; este sitio se inici desde
un dormitorio universitario y se Cre con software de Odigo fuente abicrtof
El kernel de Linux es el ncleo del sistema operativo de cdigo iente abierto ms popular y lleno
de funcionalidadu, que se distribuye en forma gratuita. Es daarrollado por un equipo de voluntarios
organizados de manera informal; es popular en servidors, computadoras personales y sistemas incrustados. A diferenciado los sistemas operativos propietarios como Windows de Microsoft y Mac OSXdeApple,
el cdigo fuente de Linux (el cdigo del programa) est disponible al pblico para que lo exarninen y
modifiquen; adems se puede descargar e instalar sin costo. Como resultado, los usuarios del sistema
operativo se benefician; de una comunidad de desarrolladores que depuran y mejoran el kernel de
deveopers.faceboolncon/opensource/.
1.7
Sistemas operativos
IS
maneta continua, de la ausencia de cuotas y restricciones de licencias, y de la habilidad de poder personalizar por completo el sistema operativo para cumplir necesidades mpecms.
En 199], Linus Torvalds, un estudiante de 21 aos en H Universidad de Helsinlti en Finlandia,
empat a dcsarrolhr el kernel de Linux oomo un pasatiempo (El nombre Linux se deriva de "Linus" y
UNIX: un sistema operativo desarrollado por los Laboratorios Bell en 1969). Torvalds quera mejorar
el diseo de lt/linint, un sistema operativo amdtnioo crudo por el profuor Andrew Tanenbaum de la
Vrije Universiteit en Amsterdam. El cdigo fuente de Minix estaba disponible al pblico para que los
profesora pudieran demostrar los conceptos basicos de la implementacin de sistemas operativos a sus
atudiantes.
Torvalds liber la primera versin de Linux en 1991. La respuesta favorable condujo a la creacin de
unaoornunidad que ha continuado con el desarrollo y soporte de Linux. Los desarrolladora descargaron,
probaron y modificaron elcdigo de Linux; dupus enviaron correcciones deerrores y retroalimentacin
aTorvalds, quien revis esa informacin y aplic las mejoras al cdigo.
La liberacin de Linux en 1994 integr muchas caractersticas que se encontraban por lo general en
un sistema operativo maduro, con lo cual Linux se convirti en una alternativa viable con respecto a
UNIX. las compaas de sistemas emprsarialm oomo IBM y Oracle se interesaron cada vez ms en Li-
nux, a medida que ste se vo Iva mas estable yse extenda a nuevas plataformas.
Son varhs cuestiona -el poder de mercado de Microsoft, el pequeo nmero de aplimcionu Linux
amigables para los usuarios y hi diversidad de distribuciones de Linux, tales como Red Hat Linux, Ubuntu Linux y muchas m:ls- las que han impedido que se popularioe el uso de Linux en las oomputadoras
de escritorio. Sin embargo, este sistema operativo se ha vuelto muy popular en servidores y stemas incrustados, oomo los telfonos inteligentes basados en Android de
Android
Android _el sistema operativo para dispositivos mvil@ y tellbnos inteligents, cuyo crecimiento ha
sido el ms rapido hasta ahora_ est basado en el kernel de Linux y en java. Los programadores aperimentados de java no tienen problemas para entrar y participar en el desarrollo de aplicaciones pa.raAndroid. Un beneficio de desarrollar este tipo de aplicaciones es el grado de apertura de la plataforma. El
sistema operativo es gratuito y de
fuente abierto.
El sistema operativo Android fue desarrollado por Android, Inc., compaa que adquiri Google en
2005. En 2007 se form la Alianza para los dispositivos mviles abiermf" (O HA) -un consorcio de
34 compaas en un principio, yde 79 para el ao 2010-, paracontinuar con eldesarrollo de Android.
Al mes de diciembre de 20 l 0, se activaban ms de 300,000 telfonos inteligentes con Android a diariol'
Ahora los telfonos Android se venden mas que los iPhone. El sistema operativo Android se utiliza en
varios telfonos inteligentes (Motorola Droid, HTC .EVOTM 4G, Samsung VibrantTM y muchos ms),
dispositivos lectores electrnicos (como el Noble Nookm de Barnes and Noble), computadoras tipo
tableta (Dell Strealt, Samsung Galaxy Tab y otras mis), quioscos con pantallas tctiles dentro de las tiendas, autos, robots y reproductores multimedia.
Los telfonos inteligenta Android tienen h lncionalidad de un telfono mvil, cliente de Internet
(para navegar en Web y comunicarse a travs de Internet), reproductor de MP3, oonsoladejuegos, cama-
radigital y dems, todo envuelto en dispositivos porttiles conparmzllar mubirdrriks a todo color -stas
pantallas le permiten controlar el dkpositivo con ademaru: en los que se requieren uno o varios toques
simultneos. Puede dmcargar aplicaciones de manera directa a su dispositivo Android. a travs del Android Market yde otros mercados de aplicaciones. Al mes de diciembre de 2010 haba cerca de 200,000
aplitacionts en el Android Market de Google.
wwu.pc|Iag.con/ar1:'lc'Ie2/03817.23?-l-076.00.asp.
IG
Captulo I
bs cuales pertenecen a nusrro nuevo libro, An.dro1`d_f`r Prgmmmm-:An App-Driven Approach. Dcspus
de que aprenda Java, descubrir que no es tan complicado empezar a desarrollar y ejecutar aplicaciones
Android. Puede colocar sus aplimciones en el Android Market en lnea (own .market.andro'Id. col) y, si
se vuelven populares, tal vu. hasta pueda iniciar su propio negocio. Slo recuerde: Facebook, Microsoft
e I
Fortmn
cios) fue dmnollado afnales dela dcada de 1950 por fabrimnmde compuesdoras.
el gobierno esndounidens: yusuarios de computado de la industria. con baseen
un lenguaje desarrollado por Grace Hopper. un ocial de la Marina de Estados Unidos
yciendfco
Pascal
Ada
L8 Lenguajes de programacin
Lenguajede
programacin
C++
Descripcin
C++, una utensin tk C, fue denrrollado por Bjame Srroustrupa principios dela
dcada de 1980 en los Iaboraeorios Bell. C++ proporciona varias raracseris-ticas que
'pulen' al
Objecr.ivoC es un
dela decada de l980ydespues fueadquirido porla empresa Next, que asu vezfue
comprada por
sisaerna operativo Mac OS X ytodos los dispotivos operados porel OS (como los
dispositivos iPod. iP|\onee iPad).
Visual Basic
C++ (basado en C++) yCI (basado en C++ yjava; desarrollado para insegrarlnternet
y Web en las aplimciones de computadora).
PHP
todos los principales sistemas operativos UNIX, Lirunt. Mae ywindows. PHP tarnbin
soporta muchas bases de datos, mmo MySQL.
Python
Ruby on Rails
Sala
de
I1
la
Captulo I
desarrollo de las computadoras personales. Los microprocesadores estn teniendo un profundo irnpacto en los dispositivos electrnicos inteligentes para uso domstico. Al reconocer esto, Sun Microsystems patrocin en 1991 un proyecto interno de investigacin corporativa dirigido por james
Gosling, que result en un lenguaje de programacin orientado a objetos y basado en C++, al que
Sun llam java.
Un objetivo dave de java m poder escribir programas que se ejecuten en una gran variedad de siste-
mas computacionales y dispositivos controlados por computadora. A esto se le conoce algunas veces
como mcribir una vez, ejecutar en
parte.
La popularidad del servido Web se intensific en 1993; en ese entonces Sun vio el potencial de usar
]ava para agregar mrrtemde dinmico, como interactividad y animaciones, alas pginas Web. java gener la atencin de la comunidad de negocios debido al fenomenal inters en Web. En la actualidad,
java se utiliza para dsarrollar aplicacions empresarials a gran escala, para mejorar la rncionalidacl de
los servidores Web (las computadoras que proporcionan el contenido que vemos en nuestros exploracbrs Web), para proporcionar aplicaciones para los dispositivos de uso domstico (como telfonos
celulares, telfonos inteligentes, receptores de televisin por Internet y mu cho ms) y para muchos otros
propsitos. En 2009, Oracle adquiri Sun Microsystems. En la conferencia ]avaOne 2010, Oracle
anunci que el 97% de todas ias computadoras de escritorio, tres mil millones de dispositivos porttiles
y 80 milions de dispositivos de televisin ejecutan java. En la actualidad hay cerca de 9 milions
de desarrolladores de java, en comparacin con los 4.5 millones en 2005. ' Ahora java es el lenguaje de
desarrollo de software m utilizado en todo el mundo.
bliotecas de clases de java, que tambin se conocen como API (Inter-Faces de programacin de
aplicaciones) de java.
.,___
'
Jrrugiomrelrrnriruirnmderrepregrrmer,yaqrrerrrardrtrrr_ymms'orrrrnerrrarde
nsarremaridadorapamrndsnar-mrrmde. Eimomrarnirnduaelnkmpo
derermodelsrrpmgrurmsx.
Tip de portabilidad LI
Amgrre er mdtdcil esrrir pmgrrenuu portable: (programar que se prredr
en
Ld madres tipos r`nr'nm.r Jr mrprmrdonsr) rrrrua que en la :sugera dr los orrru bngrnjer
depmgrauadn, fo:rdr_'jr|mtr`ar mas lssmmpiladerrr, r.rl/Ivfyilarcranrprrtarrasprrednr
ocasionar que sea drlcignar kponadad Elrrslple Indra de esotiirprvgmnrcr en
farsa nogrnmrtrita hptalidsd.
Ahora explicaremos los pasos tipicos utilizados para crear y ejecutar una aplicacin en java, me-
diante el uso de un entorno de desarrollo (el cual se ilustra en las figuras 1.6-1.10). Por lo general. los
programas en java pasan a trav de cinco Pisa: edicin, compilacin, carga, verificacin y ejecucin.
Hablaremos sobre estos conceptos en elcontertro del Kit de desarrollo de java SE (JDK). Puede descargar
I9
dounoads/'I ndex _ html. Lea la .tensin Ama de ernprar este lbropara rmgurarrede configurar su compu-
mdam en rnu: apropiada para mmpilar y g'e-usar programas en wz. Tal vez tambin dmee visitar el
centro para principiantes dejava (New to java Center) de Oracle en:
wm .orac'Ie.cc|n/technetwork/top'l cs/newtojava/overvi eu/1 ndex . hun`I
[Nom este sitio Web proporciona las instrucciones de instalacin para Windows, Linux y Mac OS X.
Si no utiliza uno de emos sistemas operativos, consulte la documentacin del entorno de java de su sisuema o pregunte a su instructor cmo puede realizar estas tareas con base en el sistema operativo de su
mmputadora. Si encuentra un problema con te o cualquier otro vnculo mencionado en este libro,
visite el sirio vmw.de^i tel . com/books/j htp9/ para consulta: la fe de erratas y notifiquenos su problema
_
ha : dcn
`-
um,
FJ progamasecrea en un
ditory Se 'almacena en cisco.
__
er un rdwocuyo nombre
en-nina con . java.
yeditar programas, y depurador-es para localizar stores lgicos: errores que provocan que los programas se ejecuten en forma incorrecta. Los IDE populares son Eclipse (ww.ec`| 'pse.org) y NetBeans
(wuw.netbeans.org).
20
Captulo I
_.,
-*-`_f.r/
trmma con
_ C1
ass
es de los programas que interactan con sta. Si se implementa la misma VM en muchas plataformas
mmputacionals, las aplimcions que ejecute se podrn utilizar en todas mas phtaformas. La IVM es
unadelas mquinas virtualesms utilizadas en laactualidad. la plataforma NETde Microsoft utilizauna
de java en la que se compihron los cdigos de bytes sin necesidad de volver a compilar elcdigo fuente.
I.aIVM se invoca mediante el comando java. Porejemplo, paraejecutar una aplimein en java llamada
B1 enverrl do, debe escribir el comando
java Bienvenido
en una ventanade comandos para invocar la]VM,que asu ver inicia los pasos necesarios paraejecutar la
aplicacin. Esto comienza la fase 3.
E123: Ginger rrprgrnma en memoria
En la fase 3, HIVM coloca el programa en memoria para ejecutarlo; a esto se le conoce como cargar
(figura 1.8). El cargador de clases roma los archivos .class que contienen los cdigos de bytes del
programa y los transfiere a la memoria principaL El cargador de chses tambin carga cualquiera de los
archivos .class que su programa utilice, y que sem proporcionados por java: Puede cargar los archivos .cass desde un disco ensusistemao atravs de una red (como la desu universidad local ola red
de la empresa, o incluso desde Internet).
Mernonh
principal
mi 1; cup
mdnrdrdansn
r
p
.-.
n
El cargador de clases
lee los archivos .dass
que contienen cdigos
de bytes del disco
yoolota esos cdigos
de bytes en la memona.
2I
Mernoria
,j
nriwl
me 4: ve-nacion
"
.-
El velcacbr de codigo
de bytes torirrna que
su 5.- James
En la fase 5, la_[VM ejecuta hs cdigos de bytm del programa, realizando as las acciones
porel mismo (figura 1.10). En las primeras versiones dejava, la]VM era tanslo un intrpretede cdigos
& byte de java. Esto hacia que k mayora de los programas se ejecutaran con lentitud, ya que la IVM
tenia que interpretar y ejecutar un cdigo de byte a h vez. Algunas arquitecturas de computadoras mo-
{_]IT). En me procmo, la]VM analiza los cdigos de bytes a medida que se interpretan, en busm de
punto: carisma: partesde los cdigos de bytesque seejecutan con frecuencia. Par-aestas partes, un compilador
a tiempo (]'I'l"') (conocido como compilador Hotpot de java) traduce los cdigos de byts
al lenguaje mquina correspondiente a la computadora. Cuando la]`VM encuentra estas partes compila-
lkrncria
, .
F 5' E"'"
;s'_j_|rr-g_|vt9
`
Pf"P"
I'
'
'
Eara q'eo.|rareIprograma.laJVM
22
Captulo I
das de nuevo, se ejecuta el cdigo en lenguaje mquina, que es ms rpido. Por ende, los programas en
java en rulidad pasan por do: fases de compilacin: una en la cual el cdigo fuente se traduce acdigo de
bytes (para tener portabilidad a travs de las ]VM en distintas plataformas computacionales) y otra en la
que, durante la ejecucin, los cdigos de bytes se traducen en lenguaje mquina para la computadora
intentar una divisin entre cero (una operacin ilegal para la aritmtica con nmeros enteros en java).
Esto hara que el programa dejava imprimiera un mensaje de error. Si esto ocurre, tendra que regrmar a
la liise de edicin, hacer las correcciones necesarias y proseguir con las fases restantes de nuevo, paradeterminar que las correocioms hayan resuelto el(los) prol)lema(s)
la mayora de los programas en
java reciben o producen datos. Cuando decimos que un programa muestra un mensaje, por lo general
queremos decir que aparece en la pantalla de su computadora. Los mensajts y otros datos pueden enviar-
se a otros dispositivos, como los discos y las impresoras, o incluso a una red para transmitirlos a otras
computadorasl.
cajero automtico, o ATM (por ejemplo, retirar dinero, rmlizar depsitos y verilicar los saldos de hs
cuentas). Aprender acreat esta aplicacin en el ejemplo prctico qodmmlotientado aobjetos que se incluye en los captulos 12 y 13. Para los nes de estaseccin vamos a suponer que est utilimndo Microsoft
Windows."
En los siguiente pasos, ejecutar la aplicacin y realimr varias transaccionm. Los elementos y la
mcionalidad que podemos ver en esta aplicacin son tipicos de lo que aprender a programar en este
bro [Nam utilizamos firen tes para diferenciar las caractersticas que se ven en una pantalla (por ejemplo. el Sinbolo del sistema) y los elementos que no se relacionan de manera directa con una pantalla.
Nuestra convencin es enfatizar las caractersticas de la pantalla como los ttulos ymens (por ejemplo,
el men Archivo) en una iente I-Iolvetlce sana-aodfen semi-negritas, y enfatizar los elementos que no
son de la pantalla, como los nombra de archivo o los datos de entrada (como Nombl'ePrograma. j ava)
en una rente Lucida sans-ser f. Como tal vez ya se haya dado cuenta, la ocurrencia de definicin de
cada trmino en el texto se establece en
En las figuras en esta seccin, resaltamos en una pantalla gris claro la entrada del usuario requerida por cada paso y sealamos las partes importantes de la
ll
En mm. de*lte1.co||/books/jI1tp9/. oeoernos una versin en Linux de esta prueba. Tambin oeoernos vnculos a videos
quele ayudarn a empaar a
con varios entornos de duarrollo integrados populars (IDE), como el Kit de desarmllo
de java SE 6 parawindows, el SKI) de Eclipse paraWindows, NetBeans, jGRASP. Drjava, Blue] y rJ editor de te:tto'l`stPad
para Windmn.
23
aplicacin. Para aumentar la visibilidad de estas caractersticas, modicamos el color de fondo de las
ventanas del Sknbolo del sistema a blanco y el color de las letras a negroi. sta m una versin simple
que consiste de texto solamente. Ms adelante en el libro, aprender las tcnicas para redisear este
Revisa su
La la seccin Antes de empezar este libro para confirmar que haya
instalado java de manera apropiada en su computadora, y copiado los ejemplos del libro en
su disco duro.
2.
cionar Inicio | Todos los pogramss [Accesorios linbolo del sistema. Par-ammbiar aldirectnro
de la aplicacin del ATM, escriba cd C:\ej| emp'los\cap01\ATH y despus oprima Intro (gura
1.11). .EJ comando cdse utiliza para cambiar de direcmrio.
'
'
I || I|
:\cd c:\eX-iIB1ss\th0L\A1N
:\ex@'l es\ch01\ATH
:J
3. genere la
IMM Escriba el comando java Ejempovract-coA11| y oprima
Intro (figura 1.12). Recuerde que el comando java, seguido del nombre del archivo _ c1 ass de
la aplicacin (en este caso, Ej empl OP racti COATM), ejecuta El aplimcin. Si mpecitamos la
extensin _ c'I ass al usar el comando java se produce un error [Notre los comandos en javason
Exception 'In thread mai n" java . 'Iang .NOC1 assDefFoundError : Ej e|np1oP racti coATM",
entoncs su sistema tiene un problema con CLASSPATH. Consulte la seccin Antm de ernpaar
este libro paraobtener instrucciones acerca de cmo corregir este problema.
fe
.-.lilll
:\cd C:\exq`les\d'|01\ATM
El
:\n-p1s\h01\A11-ijava Acuostudy
_]
Fig. I.I 2 | Uso del comando java para ejecutar la aplicacin del ATM.
4. Ertra un minero de camu. Cuando la aplicacin se ejecuta por primera vez, muestra
el mensaje |B'ienven1do|" y le pide un nmero de cuenta. Escriba 12345 en el indicador
"Escri ba su nunero de cuentan" (gura 1.13) y oprima bum.
24
Captulo I
lcolel
-J
___.- cone
__
___
E___
I HI
j
countntrdrer: 12345
'rf-
an menu: ~
- vien ly baunee
- uritbdran cash
- Deposit funds
- Exit
er a choice:
Iig. I. I 4 [ El usuario escribe un nmero NIPvlido yaparece el men principal de la aplicacin del HTM.
6. Revia decido de la camera. Seleccione la opcin 1, "Ver mi Saldo del men del ATM (frgura 1.15). Acontinuacinlaaplicacinmostrardosnrneros: Sa`I do disp-on1b`le(S1 ,000.00)
7. krenno de la cuenta. Seleccione h opcin 2, Reti rar efectivo", del men de h aplicacin. A continuacin aparecer (figura 1.16) una listade montos en dhres (por ejemplo: 20,
40, 60, 100 y 200). Tambin tendr laoportunidad de cancelar la transaccin y regresar al men
principal. Retire $100 seleccionando la opcin 4. La aplicacin mostrar el mensaje "Tone su
efectivo ahora"y regresar-al men principal. [Nora.- por desgracia, esta aplimin slo .timula
elcomportamiento de un verdadero ATM, por lo cual no dispensa efectivo en realidadl.
25
-ice:
almce Information:
- Avaabie balance:
- Total balance:
.|g|r|
LIL
ss
ln Ienu:
- view Iy baance
- irithdrarr cash
3 - Degosit funda
' EX!!
er a cho-ice:
Fig. I.I 5 I La aplicacin del HTM muestra la informacin del saldo de la cuenta del usuario.
1:1:
'tlvdrar`| Menu'
- szo
- sw
3 5 -
$60
S100
S200
_
Cance i:ransac1:1on
-|n|II|
_]
'_'
lia
Q a wthkna Dount: 4
Please take your cash now.
in new:
- View Iy halnce
- irithdraw cash
3 - Degosit funds
- Exit
er a choice:
_v_|
de retiro.
9. .lalim la trnnman. Para naliur su smin actual en el ATM, seleccione la opcin 4,
"Sa'I1r" del men principal (gura 1.18.) El ATM saldr del sistema y mostrar un mensaje
de
al usuario. A ooncinuarzin, la aplimcn regrsar a su indicador original, pidiendo el nmero de cuenca delsiguienre usuario.
10. Salga de fa qlicain defA?|:_y cierre la ventosa Slrrlioio doi alalnma. La mayora de las
aplicaciones cuentan con unaopciu para salir y regresar al directorio del Srrbolo del tlthlna
Captulo I
nter a
1ce:
L 1
f
:c'|i;1:rim 5900,00
- Total balance:
S1.1D0.00
_|
sin genu:
- View uy baiance
- nthdren cash
`G__"_-1' - Degosit 'Funds
- Exit
nter a choice:
'
rvter 1 c
.*_'
1ce:
mm
Llu
=l="=!
.slo se termina la smin del usuario actual con el ATM, no roda laaplicacin completa. Para
salir realmente dela aplicacin del ATM, haga clic en el botn de cerrar (x) en la esquina superior derecha de la ventana Slfrbolo del slthoma. A1 cerrar la ventana, la aplicacin termina
su ejecucin.
(sitio para compartir videos), FaceBook (red social), Twitter (microblogs), Groupon (comercio social),
Foursquare (reportes o check-ins mvils), Salmforce (software de negocios quese ofrececomo servicios
en lnea), Craigslist (listados gratuitos de anuncios clasificados), Flickr (sido para compartir fotos), Second Life (un mundo virtual), Skype (telefona por Internet) y Wikipedia (una enciclopedia en linea
gratuita).
Google
B1 1996, los candidatos a un doctorado en ciencias computacionales de Stanford, Larry Page y Sergey
Brin, empezaron acolaborar en un nuevo motor de bsqueda. En 1997 le cambiaron el nombre a Goo-
gle con base en el trmino matemtico grol(en ingls, googol), una cantidad representada por el nmero uno seguido de 100 ceros (o l0""): un nmero de un tamao asombroso. La habilidad de
Google para devolver resultados de bsquedas con extrema prechin le ayud aconvertirsecon rapidez
en el motor de bsqueda ms utilizado, ademas deser uno de los sitios Web ms populares en el mundo.
l.||
21
Google contina siendo un innovador en hs tecnologas de bsqueda. Por ejemplo, Google Goggles
5 una fascinante aplicacin mvil (disponible en Android e iPi1one) que permite al usuario rmlirar una
bsqueda, con la novedad de que utiliza una fotograa en vez de tuto. Usted slo tiene que tomar fo-
mgraas de puntos de referencia, libros (cubiertas o cdigos de barras), logotipos, arte o etiquetas de
botellas de vino, y Google Gcggles escanm la fotograa para devolver los resultados de la bsqueda.
'Tambin puede tornar una forograa de texto (por ejemplo, el men de un restaurante o un anuncio)
yGoogle Gogles lo traducirpor usted.
fue ww. housingnaps .con, que combina al instante los listados de bienes races proporcionados por
\nvu.craigs1lst.org con las capacidad@ de generacin de mapas de Guage Maps para ofrecer mapas
que muestren las ubicaciones de los apartamentos en renta dentro de cierta rea.
fuentede serviciosWeb
Cmo se utiizan
Google Maps
Servicios de mapas
Redee sochler
Four-square
Linkedln
YouTube
Bsquedas de video
Microblop
Grnupon
Comercio social
Netirt
Renta de pelculas
eBay
Subas-las en Ineernet
Wikipedia
Enciclopedia colaborativa
PayPal
55*
Lascfm
Amazon eCommerce
Salesforoecorn
sm
M icrosofr Bing
Bsqueda
Flickr
(hmparr fotografias
Zillow
Yahoo South
Bsqueda
Wmtberllug
Clima
Fig. l.I 9 | Algunos servicios Web populares [mu _ programnabl eweb. con/api s/
di rec tory/`l '?sort-mashu ps).
Ajax
Aiaxes una de las tecnologas de software mas importantes de Web 2.0, ya que ayuda a las aplicaciones
basadas en Internet a funcionar como las aplicaciones de meritorio; una tarea dicil, dado que dichas
28
Capitulo I
aplicaciones sufren de retrasos en la transmisin, a medida que los datos se intercambian entre su computadora y las computadoras servidores en Internet. Mediante el uso de Ajax, las aplicaciones como
Google Maps han logrado un desempeo excelente, adems de que su aparienciavisual se asemeja a las
aplicaciones de escritorio. Aunque no hablaremos sobre la programacin pura con Ajax en este libro
(que es bastante compleja), en el captulo 30 le mostraremos cmo crear aplicaciones habiii tadas para
Ajax mediante el uso de los componentes dejavaServer Faces (ISP) habilitados para Ajax.
/bhconer reciclar
Durante los ltimos aos se ha producido un aumento considerableen el nmero de aplicaciones sociales en Web. An y cuando la industria de la computacin ya alcanz la madura, estos sitios fireron
capaces de tener un xito fenomenal en un periodo de tiempo relativamente corto. La Figura 1.20 analza unas cuantas de las aplicaciones sociales que estn generando un impacto.
jack Dorsey, Evan Williams e Isaac Bit Stone lrndaron Twitteren 2006:
todo desde lacornpola de podcasts, Odeo. Twitter revolucion los rricmbgr.
Usted puede seguir los rweets de amigos, artistas, negocios, representantes del
gobierno (incluso el ncsidenre de Estados Unidos, quien tiene 6.3 millones
de seguidores), etctera, 0 seguir rweeu del terna para darseguimiento a
noticias, tendencias y mucho ms. Al momento dc escribiresre libro,
Compaia
Foursquare
Ducripcin
Pou square --creada en 2009 por Dennis Cmwley y Nnveen Selvedunties una nplimdn pam tmln: reportan (oeclr-im) mviles, la cul! le pennine
yyaareutamnmsdernillonesdettsrrarioseneodoelmundo.
Skype
Skypeaunproducno desoftwztequelepeuninemelizarlhmadaidevozyde
vidtn (Ia mayoria son gratuitas): travs de luntmct, medianee el uso de una
nemologa lhmath WIP (Wamba IP; IP se refiere: "Protocolo delnaernef).
I I2 Tecnologas de software
la gum 1.21 muem-auna lktade palabras de moda que escucharen laoomunidad de clsarmlio de
software. Creamos Centros de Recursos sobre h mayora de esuus temas, y hay muchos por vemt
Tecnologa
Descripcin
Snftwateigii
Elthnuollodgildesownreesunooujunwdemenodologlasquetmmnde
implementatsoftwste con ms rapidez y menosrecuntrs quelas metodologas
eneeriores. Visiee losstiosdeAgileAlliance(vrrru.ag11ee11ienee .of~g] yAgile
Nlaniferm (rrurr.agHerlanIfesm.org). Tambien puede visimrel sitio en espaol
mmege-sps1n.eon.
Refaemtmddn
Iallflcustiznridnimplita tefonnularelcdgopamlncerlomsdamydl
Es muy utilizado en
Patrones
de diseo
rCapitulo
I
.
Introduccin
a las computadoras y a java
Tecnologa
Descripcin
LAMP
MySQLuunsisuumdeadminisu1ddndebesesdedaeosdeo6digoreneeebierto.
PHPeedlengtnjede'xa1mdasdemmandosddlsdosavidordeodigarmte
bierno mspopular-pe.r:eldessnoliodespiio|cionetW`eb. IAMPesunser6nin'ro
fuemseabierm quellsilnmuehosduanolideres en iaucecindenplicaciones Web: se reeren Linux, Apmise, MySQL y
I-1Pllllfnrmneom0nnIe'icio(PenS)pmveeunap|atafommdeompum
oomo un
eervido(SaS)
Computacin
en la nube
aver-tirenhatdwaxedealrnaoetmmiennodegmn escala-cuyocosnodemmpra,
mantenimiento yasegummienm puede seroondemble, :dems de que no
desarrollo de
software (SDK)
Por ejemplo, uned usar el Kit dedesannlio dejan (IDK) pum crear yejeeumr
aplicaciones dejava.
Wrsin
Alfa
Descripcin
Eistftwamaaizpdmuavemndeunptoducmodesuwnmmyodesanollo
anseezicuerrtrearsvo. Poriogenerallsversionesalfatienenmucbosenureeson
inoompletasyereI1|esxinsebemnaunpt:|ueonmodedmrmlheknen
pe.nqueeve|enlsnuevnseunmerfsdees,pemobemerreuoelimumdnbmis
ptonoo posi|sle,etc-Enero.
Versin
Descripcin
Besa
II
posneriordelproode denuro|Io,u.ns\'e2quesehaoon'egido|a|s|ayorhdelos
Engmas1.losesdempnnEbemddndenenmdassusonnaviiesmu5ol-
paraliberacin
Mnutin
(Release
Candidata)
udee,oonlocualseIograrmeneomodepruebadiversodsofrwareseutili:a
en distinocs sistemas, con resrricnionesvadablm ypara muchos fina diferentes.
Cualquier- er-rorqueapareamsecorrigegen un momenm dado,eI producen
oalseliberaalpblirn engeneral. Aoserrudmlasmmpallasdesofrware
libresdeermresylisnosparaquelaoomunidadlos
Elsowarequesedmnollamednneummeeodoporlogroeralnotiene
nrmeroadeversidn (por ejemplo, la bsquedadeGoogleo GmaiI).Eree
mware, que se aloja en la nube (no se nsnrla en su mmpumdom), evoluciona
demanera constante de modo que los usuarios siempre dispongan dela versin
ms rceir.-noe.
Blqgmbfx
CNET
nerrs.cnet.ooa
Compurser Wodd
Enpdget
eWeelr
rrrrmelreek. con
Fast Company
Fortune
Infowodd
rrrrrr.1nforror1d . con
Mashable
rssshsl e. een
PCWodd
SD Tunes
urrrrr.sdc1nes. con
Slashdot
s'I ashdo1:.orq/
nar-ser Technology
Technolog Review
Teehmmch
teehcruneh . con
Wired
32
Capitulo I
I . I 4 Conclusin
En este capitulo analizamos el hardware y software de computadora, los lenguajes de programacin y los
sistemas operativos. Vimos las generalidades de un entorno tpico dc desarrollo de programas de java y
probamos una aplicacin de Java. Introclujirnos los fundamentos de la tecnologa de objetos. Aprendi
acerca de algunos de los emocionantes y nuevos acontecimientos en cl campo de las computadoras.Tambin analzamos cierta termino logia clave del desarrollo de software.
En el capitulo 2 crear sus primeras aplimciones dcjava. Podr ver cmo a que los programas muestran mensajes en la pantalla y obtienen informacin del usuario mediante el teclado para procesarla.
Utilizar los tipos de datos primitivos y los operadores artmticos de java en clculos que emplean los
operadores de igualdad y relacionales de Iava para escribir instrucciones simples de roma de decisiones.