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

Anlisis del Uso de Python, Java y C++ en empresas como

Google y Facebook
Alex Daniel Ticona Bejarano
Escuela Profesional de Ingeniera de Sistemas
Universidad Nacional de San Agustn
Arequipa, Per
alexdanieltb0802@gmail.com

RESUMEN
La era digital y la implantacin generalizada de
las nuevas tecnologas en la sociedad han producido
cambios marcados en el uso de lenguajes de
programacin para el desarrollo de diferentes
aplicaciones web. En este artculo se presenta un
anlisis de uso de los lenguajes Python, Java y C++
en empresas como Google y Facebook. Este anlisis
se basa en la recoleccin de informacin de diferentes
fuentes. Este estudio ha mostrado que un lenguaje de
programacin no es nico para la implementacin de
una aplicacin web, por el contrario existe un
abanico de posibilidades para el desarrollo de la
aplicacin y las empresas utilizan la que sea ms
propicia.
I.

INTRODUCCION

Google y Facebook son empresas que desarrollan


aplicaciones web para servicios de mensajera, chat,
bsqueda de informacin, etc. Estas aplicaciones estn
implementadas segn los patrones, criterios y sintaxis de
los diferentes lenguajes de programacin.
Las aplicaciones Web desempean un papel muy
relevante en toda actividad empresarial e intercambio de
informacin. En las empresas, stas representan su carta
de presentacin hacia clientes potenciales. No es
suficiente con satisfacer las necesidades funcionales de
una aplicacin Web [16].
El desarrollo de aplicaciones web involucra
decisiones no triviales de diseo e implementacin que
inevitablemente influyen en todo el proceso de
desarrollo, afectando la divisin de tareas.[24] Los
problemas involucrados, como el diseo del modelo del
dominio y la construccin de la interfaz de usuario,
tienen requerimientos disjuntos que deben ser tratados
por separado.
El alcance de la aplicacin y el tipo de usuarios a los
que estar dirigida son consideraciones tan importantes
como las tecnologas elegidas para realizar la
implementacin. As como las tecnologas pueden
limitar la funcionalidad de la aplicacin, decisiones de
diseo equivocadas tambin pueden reducir su

capacidad de extensin y reusabilidad. Es por ello que el


uso de una metodologa de diseo y de tecnologas que
se adapten naturalmente a sta, son de vital importancia
para el desarrollo de aplicaciones complejas.
Existen en la actualidad tecnologas ampliamente
usadas para el desarrollo de aplicaciones web, pero
muchas de ellas obligan al desarrollador a mezclar
aspectos conceptuales y de presentacin. Esto sucede
principalmente con aquellas tecnologas no basadas en
objetos.
La eleccin de tecnologas complejas demora el
proceso e incrementa los costos, pero en ocasiones
permite adecuarse a metodologas de diseo ms
fcilmente. Tal es el caso de las tecnologas orientadas a
objetos, las cuales tienden a demorar el desarrollo en
etapas tempranas.
El tiempo de desarrollo en la actualidad es crtico,
tanto por razones de marketing como por lmites en el
presupuesto y los recursos, pero la adopcin de estas
tecnologas hace que el mantenimiento se transforme en
una actividad ms simple, la divisin en capas sea tarea
natural del desarrollo y el tiempo invertido en el diseo
facilite el trabajo necesario para el resto de las
actividades.
Las aplicaciones hipermedia han evolucionado en los
ltimos aos y se han concentrado mayormente en la
web. Las antiguas aplicaciones distribuidas en cds
dieron lugar a aplicaciones dinmicas, de constante
actualizacin e incluso personalizables, capaces de
adaptarse a los tipos de usuarios y en casos avanzados, a
cada usuario en particular.[24]
Estas caractersticas encuentran el medio ideal en la
web, ya que de otra forma sera costoso su
mantenimiento y evolucin. La complejidad del
desarrollo ocurre a diferentes niveles: dominios de
aplicacin
sofisticados
(financieros,
mdicos,
geogrficos, etc.); la necesidad de proveer acceso de
navegacin simple a grandes cantidades de datos
multimediales, y por ltimo la aparicin de nuevos
dispositivos para los cuales se deben construir interfaces
web fciles de usar.
Esta complejidad en los desarrollos de aplicaciones
slo puede ser alcanzada mediante la separacin de los
asuntos de modelizacin en forma clara y concentrada.

En este artculo se analizan los tres lenguajes de


programacin ms utilizados para el desarrollo de
aplicaciones web y de qu forma lo utilizan empresas
como Google y Facebook.
El artculo est organizado de la siguiente manera.
En la seccin III se hace referencia a la importancia de
los lenguajes de programacin en aplicaciones web, en
la seccin IV, V y VI se desarrollan el uso y sus
aplicaciones de Python, Java y C++, en la seccin VII se
hace un anlisis de uso de estos tres lenguajes en
empresas como Google y Facebook.

II.

TRABAJOS RELACIONADOS

Las tecnologas y las tcnicas para construccin de


software han evolucionado rpidamente en los ltimos
diez aos. En el mbito de aplicaciones web han surgido
nuevas tecnologas que ahora compiten entre s. Los
arquitectos y desarrolladores de software continan
desarrollando aplicaciones con prcticas antiguas, y
otros, no conocen las alternativas y lo interesantes que
pueden ser.
El trabajo [10] est enfocado en comparar
alternativas a J2EE para la construccin de sistemas
empresariales. La capacidad de cada tecnologa ser
determinada por el nivel de soporte que brinde para la
implementacin de cada patrn de alto nivel.
Es importante darse cuenta que los patrones de
diseo J2EE recopilan un conjunto de buenas prcticas
que se han venido desarrollando en los ltimos aos
para el desarrollo de sistemas web. Aunque en la
prctica muchas aplicaciones web se construyen con una
arquitectura ad-hoc, la presencia de patrones de diseo
conduce
a
soluciones
estndares,
fcilmente
comprensibles y mantenibles por parte de los
desarrolladores[10].

III.

USO DE LENGUAJES DE PROGRAMACION


EN EL DESARROLLO WEB

Desde que Internet empez a difundirse


mundialmente, se inicia la bsqueda de mtodos o
estrategias para el aprovechamiento de las nuevas
tecnologas que de all se desprenden [10]. Como
consecuencia de esta propagacin, ingenieros de
software y desarrolladores han ido adoptando estas
nuevas tecnologas.
Las tecnologas y tcnicas para la construccin de
software han ido cambiando y mejorando en los ltimos
diez aos. En el mbito de las aplicaciones web han
surgido nuevas tecnologas que compiten entre s, dado
que tienen ventajas y desventajas de acuerdo al proyecto
que el desarrollador desea implementar y su eleccin
puede diferenciar el xito o fracaso de su proyecto [10].
Los lenguajes dinmicos, a veces tambin conocidos
como lenguajes de script, han estado y existen desde
hace mucho tiempo. Recientemente estos lenguajes han
crecido en importancia debido de diversas razones. Los
lenguajes dinmicos son lenguajes interpretados, sin

compilacin y utilizan cdigo de bytes, a diferencia de C


/ C ++ y / o Java [15].
Esto hace que el desarrollo, prueba y despliegue su
ciclo sea significativamente ms corto que otras
soluciones alternativas. Una vez que se realiza un
cambio en el cdigo de la aplicacin, este est listo para
la prueba y despliegue.
Algunos lenguajes admiten la programacin
orientada a objetos e incluyen caractersticas
comparables a lenguajes de programacin compilados.
Tambin, hay una serie de marcos y bibliotecas
disponibles para ayudar en el desarrollo de aplicaciones,
especialmente para las aplicaciones web.
Por ejemplo, existen marcos de desarrollo tales como
Rails Ruby, Python y Django para Symfony y PHP.
Estos marcos proporcionan construcciones ricas para
desarrolladores y su desarrollo ms fcil en la
aplicacin.
La mayora de los lenguajes dinmicos son intuitivos
y relativamente fciles de aprender, que ha dado lugar a
la disponibilidad de un gran nmero de programadores
con conocimientos en diversos lenguajes. Este aumento
en el tamao del grupo de expertos reduce an ms el
tiempo de salida al mercado y el costo para el nuevo
desarrollo de aplicaciones.
Adems, con el tiempo, como el uso de estas
aplicaciones crece con la organizacin, deben
comunicarse con otras aplicaciones empresariales. Estas
otras aplicaciones empresariales podran ser escritas en
Java, C / C ++ o incluso en COBOL en un entorno
heterogneo [15].

IV.

USO DE PYTHON

Python es un lenguaje de cdigo abierto y de


programacin multi-paradigma ya que cuenta con
facilidades para la programacin orientada a objetos
(POO), imperativa y funcional [3]. Fue basado en el
lenguaje ABC y se dice que fue influenciado por C,
Algol 60, entre otros.
Python es un lenguaje de programacin de propsito
general, cuya expansin y popularidad es relativamente
reciente. Este lenguaje apuesta por la simplicidad,
versatilidad y rapidez de desarrollo.
Python es un lenguaje de scripting(lenguaje de
guiones) independiente de plataforma y orientado a
objetos, preparado para realizar cualquier tipo de
programa, desde aplicaciones Windows a servidores de
red o incluso pginas web. Es un lenguaje interpretado,
lo que significa que no se necesita compilar el cdigo
fuente para poder ejecutarlo, lo que ofrece ventajas
como la rapidez de desarrollo e inconvenientes como
una menor velocidad[21].
En los ltimos aos el lenguaje se ha hecho muy
popular, gracias a varias razones como: a) La cantidad
de libreras que contiene, tipos de datos y funciones
incorporadas en el propio lenguaje, que ayudan a
realizar muchas tareas habituales sin necesidad de tener
que programarlas desde cero. b) La sencillez y
velocidad con la que se crean los programas. Un
programa en Python puede tener de 3 a 5 lneas de

cdigo menos que su equivalente en Java o C. c) La


cantidad de plataformas en las que podemos desarrollar,
como Unix, Windows, OS/2, Mac, Amiga y otros. d)
Adems, Python es gratuito e incluso para propsitos
empresariales.
El creador del lenguaje es un europeo llamado
Guido Van Rossum. Hace ya ms de una dcada que
diseo Python, ayudado y motivado por su experiencia
en la creacin de otro lenguaje llamado ABC. El
objetivo de Guido era cubrir la necesidad de un
lenguaje orientado a objetos de sencillo uso que sirviese
para tratar diversas tareas dentro de la programacin
que habitualmente se haca en Unix usando C[6].
El desarrollo de Python dur varios aos, durante
los que Guido trabaj en diversas compaas de Estados
Unidos. En el 2000 ya dispona de un producto bastante
completo y un equipo de desarrollo con el que se haba
asociado incluso en proyectos empresariales.
Actualmente Guido trabaja en Zope, una plataforma
de gestin de contenidos y servidor de aplicaciones para
el web, por supuesto, programada por completo en
Python
A. Orientacin
En el lenguaje Python se pueden crear diversas
aplicaciones, pero su uso est orientado principalmente
al desarrollo de la parte lgica dentro de la aplicacin
debido a la simpleza de su cdigo [9].
Python es el lenguaje principal de script utilizado en
Google. Hace unos aos google hizo que Python fuera el
primer lenguaje soportado por google AppEngine y
actualmente Google sigue utilizando este lenguaje en el
desarrollo de sus proyectos.
B. Caracteristicas
Phyton es un lenguaje de alto nivel ya que contiene
implcitas algunas estructuras de datos como listas,
diccionarios, conjuntos y tuplas, que permiten realizar
algunas tareas complejas en pocas lneas de cdigo [3].
Python es un lenguaje interpretado y ha
implementado toda su librera estndar en el lenguaje C,
lo que hace que sus funciones primitivas sean bastante
eficientes [3].
En este lenguaje se pueden distinguir las siguientes
caractersticas: a) Propsito general: Se pueden crear
todo tipo de programas. No es un lenguaje creado
especficamente para la web, aunque entre sus
posibilidades s se encuentra el desarrollo de pginas. b)
Multiplataforma: Hay versiones disponibles de Python
en
muchos
sistemas
informticos
distintos.
Originalmente se desarroll para Unix, aunque cualquier
sistema es compatible con el lenguaje siempre y cuando
exista un intrprete programado para l. c) Interpretado:
Quiere decir que no se debe compilar el cdigo antes de
su ejecucin. En realidad s que se realiza una
compilacin, pero esta se realiza de manera transparente
para el programador. En ciertos casos, cuando se ejecuta
por primera vez un cdigo, se producen unos bytecodes
que se guardan en el sistema y que sirven para acelerar
la compilacin implcita que realiza el intrprete cada
vez que se ejecuta el mismo cdigo. d) Interactivo:
Python dispone de un intrprete por lnea de comandos
en el que se pueden introducir sentencias. Cada

sentencia se ejecuta y produce un resultado visible, que


puede ayudarnos a entender mejor el lenguaje y probar
los resultados de la ejecucin de porciones de cdigo
rpidamente. e) Orientado a Objetos: La programacin
orientada a objetos est soportada en Python y ofrece en
muchos casos una manera sencilla de crear programas
con componentes reutilizables. f) Funciones y libreras:
Dispone de muchas funciones incorporadas en el propio
lenguaje, para el tratamiento de strings, nmeros,
archivos, etc. Adems, existen muchas libreras que
podemos importar en los programas para tratar temas
especficos como la programacin de ventanas o
sistemas en red o cosas tan interesantes como crear
archivos comprimidos en .zip. g) Sintaxis: clara
Por ltimo, destacar que Python tiene una sintaxis muy
visual, gracias a una notacin identada (con mrgenes)
de obligado cumplimiento. En muchos lenguajes, para
separar porciones de cdigo, se utilizan elementos como
las llaves o las palabras clave begin y end. Para separar
las porciones de cdigo en Python se debe tabular hacia
dentro, colocando un margen al cdigo que ira dentro
de una funcin o un bucle. Esto ayuda a que todos los
programadores adopten unas mismas notaciones y que
los programas de cualquier persona tengan un aspecto
muy similar.[22]
Python est en movimiento y en pleno desarrollo,
pero ya es una realidad y una interesante opcin para
realizar todo tipo de programas que se ejecuten en
cualquier mquina. El equipo de desarrollo est
trabajando de manera cada vez ms organizada y
cuentan con el apoyo de una comunidad que est
creciendo rpidamente.
Algunas empresas que utilizan Python son Yahoo,
Google, Walt Disney, la NASA, Red Hat, etc.[21]
Aunque la documentacin de este lenguaje se
encuentra en Ingls, poco a poco aparecen nuevas
pginas que tratan de acercar el lenguaje a los usuarios
hispanos.

V.

USO DE JAVA

Java es un lenguaje de programacin orientado a


objetos. Con este lenguaje podemos realizar cualquier
tipo de programa. En la actualidad es un lenguaje muy
extendido y cada vez cobra ms importancia tanto en el
mbito de Internet como en la informtica en general.
Est desarrollado por la compaa Sun Microsystems
con gran dedicacin y siempre enfocado a cubrir las
necesidades tecnolgicas ms utilizadas [7].
Una de las principales caractersticas por las que
Java se ha hecho muy famoso es que es un lenguaje
independiente de la plataforma.
La independencia de plataforma es una de las
razones por las que Java es interesante para Internet, ya
que muchas personas deben tener acceso con
ordenadores
distintos.
Adems,
Java
est
desarrollndose incluso para distintos tipos de
dispositivos adems del ordenador como mviles,
agendas y en general para cualquier aplicacin de
software que se necesite en la industria.
Java es un lenguaje de programacin con el que
podemos realizar cualquier tipo de programa. En la

actualidad es un lenguaje muy extendido y cada vez


cobra ms importancia tanto en el mbito de Internet
como en la informtica en general. Est desarrollado
por la compaa Sun Microsystems con gran dedicacin
y siempre enfocado a cubrir las necesidades
tecnolgicas ms avanzadas.[19]
La independencia de plataforma es una ventaja
significativa para los desarrolladores de software, pues
antes tenan que hacer un programa para cada sistema
operativo, por ejemplo Windows, Linux, Apple, etc.
Esto se consigue porque se ha creado una Mquina de
Java para cada sistema que hace de puente entre el
sistema operativo y el programa de Java y posibilita que
este ltimo se entienda perfectamente.

Tambin hay que destacar su seguridad, desarrollar


programas que accedan ilegalmente a la memoria o
realizar troyanos (virus) es una tarea propia de titanes.
Cabe mencionar tambin su capacidad multihilo, su
robustez o lo integrado que tiene el protocolo TCP/IP,
lo que lo hace un lenguaje ideal para Internet. Pero es
su sencillez, portabilidad y seguridad lo que le han
hecho un lenguaje de gran importancia.

VI.

USO DE C++

La independencia de plataforma es una de las


razones por las que Java es interesante para Internet, ya
que muchas personas deben tener acceso con
ordenadores distintos. Pero no se queda ah, Java est
desarrollndose incluso para distintos tipos de
dispositivos adems del ordenador como mviles,
agendas y en general para cualquier cosa que requiera
esta tecnologa en la industria.

C++ es un lenguaje de programacin orientado a


objetos que se desarroll a partir de C y le agrega la
capacidad de abstraer tipos como en Smalltalk[20]. C++
pretende llevar a C a un nuevo paradigma de clases y
objetos con los que se realiza una comprensin ms
humana basndose en la construccin de objetos, con
caractersticas propias solo de ellos, agrupados en
clases.

Java fue pensado originalmente para utilizarse en


cualquier tipo de electrodomstico pero la idea fracas.
Uno de los fundadores de Sun rescat la idea para
utilizarla en el mbito de Internet y convirtieron a Java
en un lenguaje potente, seguro y universal gracias a que
lo puede utilizar todo el mundo y es gratuito. Una de los
primeros triunfos de Java fue que se integr en el
navegador Netscape y permita ejecutar programas
dentro de una pgina web, hasta entonces impensable
con el HTML[19]

C++ es un lenguaje de programacin diseado a


mediados de los aos 80 por Bjarne Stroustrup. La
intencin de su creacin fue el extender al exitoso
lenguaje de programacin C con mecanismos que
permitieran la manipulacin de objetos. En ese sentido,
desde el punto de vista de los lenguajes orientados a
objetos, el C++ es un lenguaje hbrido. Posteriormente
se aadieron facilidades de programacin genrica, que
se sum a los otros dos paradigmas que ya estaban
admitidos
(programacin
estructurada
y
la
programacin orientada a objetos). Por esto se suele
decir que el C++ es un lenguaje de programacin
multiparadigma.

Actualmente Java se utiliza en un amplio abanico de


posibilidades y casi cualquier cosa que se puede hacer
en cualquier lenguaje se puede hacer tambin en Java y
muchas veces con grandes ventajas. en Java podemos
programar pginas web dinmicas, con accesos a bases
de datos, utilizando XML, con cualquier tipo de
conexin de red entre cualquier sistema.
En general, cualquier aplicacin que se desea hacer
con acceso a travs web se puede hacer utilizando Java.
A. Orientacin
El lenguaje Java est orientado a la creacin de
aplicaciones dinmicas de alto nivel al lado del
servidor,

En la actualidad, el C++ es un lenguaje verstil,


potente y general. Su xito entre los programadores
profesionales le ha llevado a ocupar el primer puesto
como herramienta de desarrollo de aplicaciones.
El C++ mantiene las ventajas del C en cuanto a
riqueza de operadores y expresiones, flexibilidad,
concisin y eficiencia. Adems, ha eliminado algunas
de las dificultades y limitaciones del C original. La
evolucin de C++ ha continuado con la aparicin de
Java, un lenguaje creado simplificando algunas cosas de
C++ y aadiendo otras, que se utiliza para realizar
aplicaciones en Internet[20].

Google utiliza java como lenguaje principal en la


mayora de sus aplicaciones.

A. Orientacin

En Facebook se utiliza Java en aplicaciones como


juegos, noticias u otras actividades, adems cualquier
usuario es libre de cargar su aplicacin en Java y poder
ser utilizada por cualquier usuario de Facebook.

Este lenguaje est orientado a desarrollar la parte


lgica de la aplicacin web, principalmente el back-end
de la aplicacin. Por ejemplo, google lo utiliza en los
algoritmos que contienen los motores de bsqueda.

B. Caracteristicas

C ++ es el lenguaje principal de desarrollo utilizado


por muchos de los proyectos de cdigo abierto de
Google. Al programar cada archivo en C ++ se sabe que
el lenguaje tiene muchas caractersticas de gran alcance,
pero este poder trae consigo la complejidad, que a su vez
puede hacer que el cdigo sea ms propenso a
bugs(errores) y ms difcil de leer y mantener [11].

Java es un lenguaje simple, muy distribuido


alrededor del mundo, es interpretado, solido, seguro de
arquitectura neutral portable y de alto desempeo [11].
El xito de Java reside en varias de sus
caractersticas. Java es un lenguaje sencillo, o todo lo
sencillo que puede ser un lenguaje orientado a objetos,
eliminando la mayor parte de los problemas de C++[7].

El estilo tambin conocido como la legibilidad, son


las convenciones que rigen el cdigo de C ++ al
momento de implementar una aplicacin. El trmino

estilo es un poco inapropiado, ya que estos convenios


cubren mucho ms que el formato del archivo fuente.

ms visitado a nivel mundial tal como muestra el


ranking web internacional.

Una forma de mantener la base de cdigo manejable


es mediante la aplicacin de la consistencia. Es muy
importante que cualquier programador pueda ver el
cdigo del otro y poder entenderlo rpidamente.

La bsqueda fue el origen de Google y sigue siendo


el foco de todo lo que hace en la actualidad. Se dedica
ms cantidad de tiempo de desarrollo a la bsqueda que
a ningn otro producto debido a que siempre se puede
ayudar a que los usuarios encuentren mejor lo que
buscan, con mayor rapidez, cuando y donde lo
necesiten.

Mantener un estilo uniforme y siguiendo las


convenciones significa que podemos utilizar con mayor
facilidad "los patrones" para inferir qu smbolos son
diferentes y que invariantes son ciertas acerca de
ellos. Estos patrones requeridos comunes hacen el
cdigo ms fcil de entender.
En algunos casos puede haber buenas razones para
cambiar ciertas reglas de estilo, pero, no obstante,
mantener las cosas tal como son con el fin de preservar
la coherencia.
B. Caracteristicas
Se suele decir que es un lenguaje hbrido, ya que
permite la programacin estructurada.
. A travs de los patrones de clase y de funciones, los
templates, el lenguaje apoya el desarrollo de clases
genricas con parmetros de tipo y de tamao. Este
recurso es la base de la Biblioteca de Patrones Estndar,
STL, que contiene una gran cantidad de patrones de
clase contenedor, como mapas, conjuntos, pilas y colas,
y una amplia variedad de algoritmos que pueden
especializarse para tipos de datos provistos por el
usuario. STL es parte del estndar C++.
C ++ es un gran lenguaje con muchas caractersticas
avanzadas. En algunos casos se limita, o incluso
prohbe, el uso de ciertas caractersticas para mantener el
cdigo simple y evitar los varios errores y problemas
comunes que estas caractersticas pueden causar[11].

VII. GOOGLE
Google
es
una
empresa
multinacional
norteamericana especializada en productos y servicios
relacionados con Internet, software, dispositivos
electrnicos y otras tecnologas[25].
El principal producto de Google es el motor de
bsqueda de contenido en Internet del mismo nombre,
aunque ofrece tambin otros servicios como un servicio
de correo electrnico llamado Gmail, sus servicios de
mapas Google Maps y Google Earth, el sitio web de
vdeos YouTube y otras utilidades web como Google
Libros o Google Noticias, Google Chrome y la red
social Google+.
Por otra parte, lidera el desarrollo del sistema
operativo basado en Linux, Android, orientado a
telfonos
inteligentes,
tabletas,
televisores
y
automviles. Actualmente est trabajando en un
proyecto de gafas de realidad aumentada, las Google
Glass, en un servicio de fibra ptica; el Google Fiber y
en vehculos autnomos [25].
Con ms de un milln de servidores y centros de
datos presentes en todo el mundo, Google es capaz de
procesar ms de 1000 millones de peticiones de
bsqueda diarias y su motor de bsqueda es el sitio web

La mayora de los ingresos de Google proceden de la


publicidad relevante, rentable y cuantificable que ofrece
a los anunciantes. Para colocar publicidad en Google se
debe usar Adsense participacin que no solo es
gratuita sino que google paga los Clics o las impresiones
de los anuncios que se muestren en sus sitios Web.
El objetivo de Google es que los anuncios que
aparecen en sus sitios no solo resulten tiles para los
anunciantes sino que tambin sean un medio de
informacin valioso para los usuarios, de manera que
todos obtengan un beneficio.
Cientos de miles de anunciantes utilizan Google
AdWords y otros servicios de Google como, por
ejemplo, la publicidad en mviles y la publicidad de
display en la Red de Display de Google o mediante la
tecnologa de DoubleClick. Varios centenares de miles
de editores asociados, tanto grandes como pequeos, se
benefician del uso de herramientas como Google
AdSense para obtener ingresos por su contenido. Los
tcnicos de marketing pueden utilizar herramientas de
medicin, tales como Google Analytics para analizar sus
campaas y para que estas resulten ms eficaces y ms
rentables.
Los principales productos y servicios de google son:
a) Buscador de Google, b) Google Grupos, c) Google
Noticias, d) Blogger, e) Google Libros, f) Gmail, g)
Google Maps, h) Google Earth, i) Hangouts, j) Google
Drive, K) Picasa, l) Google Calendar, m) YouTube, n)
Google Chrome ) Google Plus, o) Google Play, p)
Google Translate y q) Google History.

VIII. FACEBOOK
Facebook es un sitio web de redes sociales lanzada
en 2004 y fue fundado por Mark Zuckerberg, estudiante
de la Universidad de Harvard. Inicialmente, el acceso a
Facebook se limitaba solamente a los estudiantes de la
Universidad de Harvard, y rpidamente se expandi
tambin para muchas universidades. A mediados de
2007, Facebook cre sus versiones en Espaol, en
Francs y en Alemn, traducido por usuarios
voluntarios, para expandirse en diferentes pases, y en
2012, Facebook alcanz los 1000 millones de
usuarios[26].
Facebook es gratuito para los usuarios y genera
ingresos por la publicidad expuesta, incluyendo los
banners y los grupos patrocinados. Los usuarios pueden
registrarse a travs de su correo electrnico y pueden
hacerlo como celebridades, msicos o grupos de msica,
negocios o empresas, o personas individuales. Pueden
crear perfiles que contienen fotos, listas de intereses
personales e informacin privada o no, y pueden realizar

un intercambio de mensajes privados y pblicos entre s


y en los grupos de amigos.
La visualizacin de los datos detallados de los
miembros est restringida a los miembros de la misma
red, a los amigos confirmados, o puede ser libre para
cualquier persona.
Facebook tiene varias herramientas, como el muro,
actualmente se denomina 'Biografa', que es un espacio
en la pgina del perfil del usuario que permite tanto al
usuario como a los amigos de ste tanto escribir
mensajes como colocar fotografas, vdeos y links en l.
Es visible para cualquier persona que tenga permiso para
ver el perfil completo, y los diferentes mensajes en el
muro aparecen separados.

Las aplicaciones web utilizan los lenguajes de


programacin
en
diferentes
partes
de
su
implementacin por ejemplo Facebook utiliza
mayormente PHP para el desarrollo del front-end (parte
visible de la aplicacin, es ejecutada por el navegador
web) y utiliza C++ para el desarrollo del back-end (se
desarrolla en el lado del servidor para la conexin con
el almacenamiento de datos).
En la siguiente tabla (ver tabla 1) podemos ver las
diferentes aplicaciones que y los lenguajes que se
utilizan para su desarrollo.
A. Aplicaciones en Google

Existe otro apartado en 'Inicio' denominado 'ltimas


noticias' donde aparecen mensajes y diferentes acciones
de todos sus amigos.

Google es una empresa muy grande, y tambin da a


sus ingenieros un alto grado de libertad en la eleccin
de sus herramientas o lenguajes para el desarrrolo de
sus aplicaciones.

Facebook tambin tiene otras aplicaciones con


diversos temas, y eventos, donde se puede invitar a
todos los amigos a un evento o una actividad en
particular. Tambin existe un Facebook especial para los
telfonos mviles, los telfonos inteligentes o
smartphones y las tablets, que facilitan la visualizacin y
la accesibilidad de los usuarios. Para estos dispositivos
mviles y tambin para ordenadores, Facebook tambin
tiene un servicio de mensajera instantnea o chat para
hablar en tiempo real con todos los amigos conectados.

La mayora de software de bajo nivel del lado


servidor est escrito en C ++. El rendimiento es de vital
importancia cuando se opera cientos de miles de
servidores y optimizacin de cdigo puede resultar en
el ahorro de millones de dlares. En casos
extremadamente raros, algunas partes crticas del
cdigo estn escritas en asembler.

Existe una opcin, denominada 'Me gusta', que sirve


para valorar cada contenido de la red social por el
usuario en un momento determinado.
Tambin existen los grupos de Facebook. Con
el buscador de Facebook se puede explorar grupos sobre
todo tipo de temas, es tan sencillo como introducir
palabras clave de posibles grupos y en los resultados
aparecern de manera diferenciada los grupos que
coinciden con los resultados.
Por otra parte, Facebook es un lugar muy
visual donde las fotos tienen mucho peso. Comentar las
cosas que has hecho (eventos en los que has estado, una
buena compra en una tienda, quedadas con amigos, etc.)
y acompaar estos relatos de fotos es la actividad por
excelencia que los usuarios realizan en Facebook.
Aquellas fotos que quieras destacar adems de una
manera ms permanente se pueden organizar en la
coleccin personal de lbumes de fotos que se expondr
en la biografa.
Por ltimo hay que mencionar tambin las
aplicaciones Facebook las cuales son pequeos
programas de terceros que, de manera parecida a las
extensiones de un navegador, amplan la funcionalidad
estndar de Facebook.
Existe una cantidad casi infinita de aplicaciones para
todo tipo de propsitos: utilidades, juegos, noticias,
msica, y, por otra parte, existen aplicaciones
normales como Spotify que se instalan como
cualquier otra en el ordenador, pero que son capaces de
integrarse con Facebook.

Java se utiliza ampliamente para el cdigo del lado del


servidor de nivel superior: la interfaz de usuario
consumidor frente, por ejemplo. Como en cualquier
lugar, si usted est trabajando en la interfaz de usuario
de Google, JavaScript es una necesidad.
Python es el lenguaje de facto de herramientas de
infraestructura interna. Es muy flexible, y hace que sea
fcil crear archivos de datos que son a su cdigo
Python. Por ejemplo, el sistema de acumulacin de
Google est escrito en Python. Mondrian (sistema de
revisin de cdigo) es, tambin.
Python ha sido cada vez ms popular para la
escritura de web servers, as, la mayora de proyectos
grandes (Gmail, Maps, Google+, etc.) estn
desarrollados en Java.
Los proyectos ms destacados en Google que
utilizan Python son Google Code, Google App Engine,
Protobufs, el formato de intercambio de datos de
Google, y el caso de xito ms notable: YouTube.
YouTube ya utilizaba Python antes de ser adquirido por
Google. Es el ejemplo ms grande de uso de Google. En
los inicios usaban Apache + mod_python + MySQL, y
poco a poco fueron encontrando problemas de escalado.
En la mayor parte de las veces esos problemas se
solucionaban eliminando el cdigo de Python y
cambindolo por rutinas en C.
Java (y una gran cantidad de bibliotecas incluyendo
servlets, Guice y guayaba ) se utiliza con frecuencia para
la lgica de la aplicacin.
C ++ generalmente desarrolla la parte de back-end ,

IX.

ANALISIS DE USO

B. Aplicaciones en Facebook

Inicialmente Facebook se desarroll en PHP y


JavaScript [5] ya que en ese tiempo las pginas web eran
de tipo esttico y no exista mucha interaccin entre el
servidor que contena la pgina web y el cliente que
visualizaba la pgina desde su navegador web.
Como el trfico de la red se han reducido, el recurso
de demandas de muchas operaciones en el sitio web (es
decir, bsqueda, seleccin de anuncios y la entrega, el
registro de eventos) han presentado los requisitos
tcnicos drsticamente fuera del alcance de la
compaa.
En la implementacin de estos servicios, varios
lenguajes de programacin han sido seleccionados para
optimizar la combinacin correcta de rendimiento,
facilidad y velocidad de desarrollo, la disponibilidad de
existir bibliotecas, etc [15].
En general, la ingeniera en el desarrollo de
servicios est orientada hacia la eleccin de las mejores
herramientas e implementaciones disponibles sobre la
estandarizacin de cualquier lenguaje de programacin.

permitirn hacer actividades que quizs ahora parecen


imposibles o remotas. Se visualiza un mejor futuro con
un gran desarrollo por las ventajas que da el usar este
tipo de tecnologa, cada vez encontraremos ms sistemas
que se apoyan de la infraestructura existente con
Internet, aunque, por la contraparte, tambin habrn ms
amenazas por el aumento de la cultura hacker y los
cada vez ms complejos virus que aprovechan cualquier
hueco de seguridad.
Queda para los desarrolladores de sistemas,
administradores y fabricantes de software de servidor, el
reto de desarrollar esquemas donde la informacin fluya
con mayor facilidad independiente de la plataforma o la
aplicacin, encontrar formas mejores y ms seguras de
desarrollo de aplicaciones web, que permitan que
podamos ver sistemas ms complejos a los actualmente
conocidos, que con seguridad y de forma rpida
resuelvan los problemas cotidianos y acerquen los
servicios a los usuarios.
Es un mundo cercano y con esperanza, donde la
tecnologa se acerca a la sociedad, en especial a los que
menos han podido aprovecharla y disfrutarla.

Actualmente Facebook utiliza el lenguaje Java para


la conexin con el servidor y la base de datos y C++
para la lgica de algunas herramientas como el chat,
adems su propio lenguaje de programacin para sus
aplicaciones web llamado Hacker [1].
REFERENCIAS
X.

CONCLUSIONES

En este artculo se ha presentado la utilidad de los


lenguajes Python, Java y C++ en las aplicaciones web de
las empresas Gooogle y Fscebook.
La eleccin de un lenguaje de programacin para el
desarrollo de una aplicacin web es un factor importante
en el xito o fracaso, ya que se escoge el lenguaje de
acuerdo a los requerimientos y la facilidad en el
mantenimiento de la aplicacin.
Python, Java y C++ son los lenguajes de
programacin ms utilizados por los desarrolladores de
aplicaciones web, porque estos lenguajes son utilizados
y estudiados por alumnos y profesionales mundialmente.
(ver grfico 1 y 2)
La tecnologa para el desarrollo de aplicaciones a
travs de sistemas web ha evolucionado al punto de
volverse no solo un simple sistema de informacin, sino
que ahora se pueden desarrollar aplicaciones complejas
que cumplen con todas las necesidades que se le
presenten y que cumplen con requerimientos de
seguridad, rapidez y facilidad de uso.
Actualmente ya existen bastantes ejemplos de
aplicaciones web complejas, tales como las aplicaciones
de Google: Gmail. YouTube, Google Maps, Facebook,
las instituciones bancarias, algunas dependencias
gubernamentales y la infinidad de tiendas que cuentan
con una infraestructura muy desarrollada de aplicaciones
y servicios a travs de la web.
Las tecnologas emergentes abren una nueva ventana
de posibilidades an por explorar y explotar, que

[1] David Kirkpatrick, Facebook's plan to hook up the


world The Companys boy-wonder CEO wants to
take social networking out of the dorm room and
make it a platform for new businesses.Fortune
[2] Yusef Hassan & Francisco J. Martn Fernndez &
Ghzala Iazza, Diseo Web Centrado en el Usuario:
Usabilidad y Arquitectura de la Informacin.
[3] El lenguaje de programacin Python/The
programming anguage Python, Ciencias Holgun,
Revista trimestral, Ao XX, abril-junio 2014
Ciencias Holgun ISSN 1027-2127 1.
[4] E. Peis; E. Herrera-Viedma; Y. Hassan y J. C.
Herrera, Anlisis de la web semntica: estado
actual y requisitos futuros.
[5] El efecto Facebook, David Kirkpatrick. Traduccion
de Mar Vidal Gestion 2000 (Barcelona, 2011).
[6] V. Frittelli, D. Serrano, R. Teicher, F. Steffolani, M.
Tartabini, J. Fernndez, G. Bett, Uso de Python
como Lenguaje Inicial en Asignaturas de
Programacin.
[7] Laid Kahloul, Samir Bourekkache, Okba Kazar
LINFI
Laboratory,
E-Learning
Java
Programming on Facebook!!! Big Ambitions and
Important
Challenges
Computer
Science
Department,
Biskra
University,
Algeria
International Arab Journal of e-Technology, Vol. 3,
No. 3, January 2014 171.
[8] Adrian Fernandez, Emilio Insfran, Silvia Abraho,
Evaluacin de Usabilidad para Aplicaciones Web
Grupo Investigacin ISSI, Departamento de
Sistemas Informticos y Computacin, Universidad
Politcnica de Valencia, Camino de Vera, s/n,
46022, Valencia, Spain {afernandez, einsfran,
sabrahao}@dsic.upv.es
[9] Cmo usa Google Python?
http://brigomp.blogspot.com/2011/06/como-usagoogle-python.html
[10]Oscar Mauricio Morales Franco, Anlisis de la
adecuacin de lenguajes de programacin Web a un

desarrollo basado en patrones de diseo J2EE de


alto nivelJ.
[11]Guia estilo de uso de C++ en Google.http://googlestyleguide.googlecode.com/svn/trunk/cppguide.htm
l
[12]Guia estilo de uso de Java en Google
http://google.github.io/styleguide/javaguide.html
[13]Guia estilo de uso de Python en Google
http://google.github.io/styleguide/pyguide.html
[14]Oracle Tuxedo: An Enterprise Platform for
Dynamic Languajes
[15]Thrift: Scalable Cross-Language Services
Implementation Mark Slee, Aditya Agarwal and
Marc Kwiatkowski. Facebook, 156 University Ave,
Palo Alto, CA
[16]Evaluacin de Usabilidad para Aplicaciones Web
Adrian Fernandez, Emilio Insfran, Silvia Abraho
[17]Ciberlenguaje y principios de retrica clsica.
Redes sociales: el caso Facebook Inmaculada
Berlanga1 Estrella Martnez2
[18]C++ and the Perils of Double-Checked Locking
Scott Meyers and Andrei Alexandrescu September
2004
[19]Qu es Java
http://www.desarrolloweb.com/articulos/497.php
[20]INTRODUCCIN A C++ QUE ES?
https://blanchardspace.wordpress.com/2013/05/06/i
ntroduccion-a-c-que-es/
[21]Qu es Python . Lenguaje de programacin de
propsito general, orientado a objetos, que tambin
puede utilizarse para el desarrollo web.
http://www.desarrolloweb.com/articulos/1325.php
[22]Pagina principal de Python https://www.python.org/
[23]www.python.org/community/users.html
[24]Construyendo aplicaciones web con una
metodologa de diseo orientada a objetos Daro
Andrs Silva* Brbara Mercerat*
[25]Informacion sobre la empresa Google
https://es.wikipedia.org/wiki/Google
[26]Informacion sobre la empresa Facebook
https://es.wikipedia.org/wiki/Facebook
[27]

Grafico 01. Lenguajes de programacion mas


utilizados en concursos de programacion
ANEXOS
Tabla 01. Analisis de uso.

Grafico 02. Lenguajes de programacion preferidos


por estudiantes

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