Sunteți pe pagina 1din 11

UNIVERSIDAD DE ORIENTE

NCLEO MONAGAS
ESCUELA DE INGENIERA Y CIENCIAS APLICADAS
CURSO ESPECIAL DE GRADO
CIENCIAS DE LA COMPUTACIN

PHARO

Profesor: Jonathan Vsquez


Bachilleres:
Centeno G., Renny J. C.I.21.350.253
Fernndez G., Ana B. C.I.21.329.313

Maturn, Abril del 2015

ndice
1.

INTRODUCCIN.........................................................................................................3

2. MARCO TERICO.........................................................................................................4
1.1 Qu es Pharo?............................................................................................................4
1.2

Cules son las ventajas de Pharo?......................................................................4

1.3

Historia de Pharo....................................................................................................4

1.4

Caractersticas de Pharo........................................................................................5

1.5

Comenzando a usar Pharo.....................................................................................6

1.5.1

El men mundial.............................................................................................6

1.5.2

El navegador de clases. Encontrar clases y mtodos...................................6

1.6

Quines usan Pharo?............................................................................................7

3.

DESARROLLO.............................................................................................................8

4.

CONCLUSIN............................................................................................................10

5.

BIBLIOGRAFA.........................................................................................................11

1. INTRODUCCIN
Los seres humanos siempre han tenido la necesidad de mejorar. A lo largo de la historia,
cada estudio y cada nuevo avance tecnolgico ha surgido en base a mejorar una situacin
que el ser humano consideraba un problema. Las primeras computadoras, por ejemplo,
surgieron de la necesidad de agilizar y automatizar cmputos que a los seres humanos se les
hacan muy rutinarios y extensos. La computadora, entonces, naci para llevar a cabo en
minutos o incluso segundos, procesos que el ser humano tardaba das y meses en lograr. Por
supuesto, las primeras preocupaciones se orientaban ms hacia los aspectos fsicos de las
computadoras. Era necesario que estos dispositivos dejaran de ocupar cuartos enteros. Sin
embargo, con el avance de las pocas, tambin fue necesario mejorar la parte lgica de las
computadoras, esa que es intangible y que comnmente denominamos como software.
Es entonces como comienzan a surgir paradigmas en torno a las reglas que aceptaba lo
comunidad cientfica de determinado momento acerca de cmo deba realizarse la
programacin y el estilo de lenguaje que deba emplearse. Esto es especialmente importante
ya que, para que puedan darse los avances tecnolgicos en este mbito, es necesario lograr
una efectiva comunicacin entre el programador y la mquina. Esto es debido a que es
necesario que los desarrolladores cuenten con lenguajes suficientemente sencillos como
para llegar a dominarlos al punto de que puedan dictarle especficamente a la computadora
las rdenes lgicas y que la computadora pueda entenderlas tambin.
En funcin a esto, los lenguajes de programacin fueron evolucionando en base al
paradigma de programacin de su poca especfica. As tambin los paradigmas fueron
cambiando hasta llegar al que hoy en da es el ms comnmente usado: el paradigma
orientado a objetos. Fundamentados en este paradigma, se han desarrollado numerosos
lenguajes de programacin. Algunos muy conocidos como Java, C++ y Smalltalk. Este
paradigma se basa en que, la realidad est compuesta por objetos. Esos objetos son
entidades que poseen caractersticas y funciones propias y que pueden tener relacin con
otros objetos. Estos objetos entonces pueden representarse en cdigos a travs de los
lenguajes de programacin orientados a objetos.
A pesar de que estos lenguajes son bastante usados actualmente, siempre se est
buscando mejorarlos o actualizarlos para adecuarlos a los cambios en el entorno dinmico.
Es entonces como, buscando realizar una mejora del lenguaje de programacin Smalltalk,
surgi Pharo. Este lenguaje de programacin es bastante reciente, y no es tan conocido. Sin
embargo, ya ha destacado como una excelente opcin al momento de llevar a cabo alguna
investigacin para desarrollar nuevos software. A pesar de que este lenguaje conserva
caractersticas de Smalltalk, llega para innovar completamente lo ya conocido de los
lenguajes de programacin orientados a objetos, implementando caractersticas como la
programacin en vivo.

2. MARCO TERICO
1.1 Qu es Pharo?
Los autores Black et al. (2010) definen a Pharo como una implementacin moderna, de
cdigo abierto y completamente funcional del lenguaje de programacin Smalltak y su
entorno. Pharo es una derivacin de Squeak, una reimplementacin del clsico sistema
smalltalk-80. Por otra parte, los autores Bergel, Cassou, Ducasse y Laval (2013) indican
que Pharo es un:
Lenguaje de programacin orientado a objetos, fuertemente influenciado por
Smalltak. Pharo es ms que el uso de sintaxis y de un conjunto de reglas semnticas,
como lo son la mayora de los lenguajes de programacin. Pharo cuenta con un
entorno de desarrollo expandible y adaptable. Gracias a que posee numerosas
libreras orientadas a objetos y marcos de trabajo, Pharo brilla al momento de
modelar y visualizar datos, scripting, crear redes, y muchas otras aplicaciones.
Como una curiosidad, segn Wikipedia (2015):
Muchas personas creen que el nombre de Pharo hace referencia al famoso Pharos
de la antigua Alejandra. Pharos es una palabra griega que significa faro. El logo de
Pharo muestra el dibujo de un faro dentro de una o, que es la ltima letra de dicho
nombre.
1.2 Cules son las ventajas de Pharo?
Entre las ventajas que ofrece Pharo, los mismos autores Black et al. (2009) sealan
que Pharo busca ofrecer una plataforma de cdigo abierto y de soporte que permita el
desarrollo de software profesional, y una plataforma robusta y estable para la
investigacin y desarrollo de lenguajes dinmicos y entornos de programacin. Por otra
parte, Wikipedia (2015) seala tambin entre las ventajas que ofrece Pharo tambin se
encuentra el hecho de que ofrece un fuerte conjunto de caractersticas de la
programacin en vivo como lo son la manipulacin de objetos inmediata,
actualizaciones en vivo, reordenacin de datos. Pharo adems soporta desarrollos web
avanzados tales como Seaside y Tide.
Por otra parte, la misma web Wikipedia (2015) seala como una de las ventajas
principales de Pharo que:
Como cualquier implementacin de Smalltalk, no es obligatorio compilar todo el
cdigo en caso de que se quiera modificar algn mtodo. Por ejemplo, es posible
crear o editar un nuevo mtodo dentro del depurador sin tener que reiniciar el
proceso. Algunas personas llaman a esta capacidad enfoque de editar y continuar,
opuesto al enfoque de editar, compilar y ejecutar.
1.3 Historia de Pharo
Para conocer un poco la historia de Pharo, Black et al. (2009) sealan que Pharo:
Llega para resolver una serie de problemas de licencia con Squeak. A diferencia de
versiones anteriores de Squeak, la esencia de Pharo se basa nicamente en cdigos

cuya contribucin se ha realizado bajo la licencia MIT. El proyecto Pharo comenz


en Marzo del 2008, como una extensin de Squeak 3.9, y la primera versin beta fue
lanzada el 31 de Julio del 2009.
Complementando un poco la informacin histrica, Wikipedia (2015) seala que el
desarrollo de Pharo se:
Centr en ingeniera moderna de software y tcnicas de desarrollo. El proyecto Pharo
buscaba desarrollar un Smalltak moderno para las compaas y para las
investigaciones de ingeniera de software. Pharo tambin sirve como la plataforma de
referencia de Seaside, un marco de aplicacin web que desarrolla aplicaciones web a
travs de Smalltalk. Actualmente, Pharo se rige por el consorcio Pharo (para
compaas) y por la asociacin Pharo (para usuarios).
Los mismos autores Black et al. (2009) explican que Pharo no utiliza muchos de los
paquetes de datos de Squeak. Sin embargo, incluye numerosas caractersticas que son
slo opcionales en Squeak. Tambin sealan que las interfaces han sido simplificadas
y revisadas.
Adems, estos ltimos autores tambin sealan con respecto a los aspectos
importantes del origen de Pharo que:
Pharo no debera ser una copia del pasado Smalltak, sino una completa reinvencin
de este. Pharo realmente favorecer evoluciones y cambios incrementales. Queremos
ser capaces de experimentar con nuevas e importantes caractersticas y libreras. La
evolucin significa que Pharo acepta errores, no se est buscando que sea la nueva y
perfecta solucin a todos los problemas en un solo paso (aunque eso nos encantara).
Pharo favorecer pequeos cambios incrementales, pero multitudes de ellos. El xito
de Pharo depende de las contribuciones de su comunidad
1.4 Caractersticas de Pharo
Con respecto a las caractersticas de Pharo, Wikipedia (2015) seala que Pharo
posee las mismas caractersticas principales de Smalltalk: La misma web Wikipedia
(2015) indica que estas caractersticas principales anteriormente mencionadas son:
En primer lugar, todo es un objeto, en el sentido de la programacin orientada a
objetos. En segundo lugar, Pharo es reflexivo. Es decir, un programa puede modificar
sus propiedades y comportamientos internos en el tiempo. Por otra parte, Pharo es un
lenguaje dinmicamente tipado, en contraste con los lenguajes estticamente tipados.
La herencia es bastante sencilla. Por ltimo, la gestin de la memoria es automtica.
Como es el caso de muchos lenguajes de programacin modernos, Pharo utiliza un
recolector de basura.
Una caracterstica a resaltar, est sealada por los autores Black et al. (2009) en donde
explican que Pharo:
Es bastante porttil. Incluso su mquina virtual est completamente escrita en
Smalltalk, facilitando la depuracin, el anlisis y en cambio. Pharo es el vehculo para
un rango muy amplio de proyectos innovadores con respecto a aplicaciones

multimedia y plataformas educacionales diseadas para el desarrollo de entornos


comerciales web.
Por otra parte, Bergel et al. (2013) sealan que:
La sintaxis tan simple y el modelo de objeto maleable de Pharo son bastante
apreciados. Programadores con o sin experiencia disfrutan del paradigma que se basa
en que todo es un objeto. La simplicidad y expresividad de Pharo, as como los
entornos de desarrollo en vivo, brindan a los programadores una sensacin nica.
1.5 Comenzando a usar Pharo
Para poder hacer uso de Pharo, el usuario deber descargar tres partes que constan de
cuatro archivos cada una. Los autores Black et al. (2009) distinguen estas partes como:
La mquina virtual, que es la nica parte del sistema que es distinta para cada sistema
operativo y procesador. Mquinas virtuales pre-compiladas estn disponibles para la
mayora de los entornos de desarrollo de computacin. Otra de las partes est
constituida por los archivos fuente, que contienen los cdigos fuente de las partes de
Pharo que no cambian con frecuencia. Y una imagen actual del sistema, que muestra
una captura de pantalla del sistema Pharo ejecutndose. Esta ltima parte contiene
dos elementos: una imagen que muestra el estado de todos los objetos en el sistema
(incluyendo clases y mtodos, ya que se habla de objetos) y otro archivo que muestra
todos los cambios al cdigo fuente del sistema.
Es importante destacar que, segn los mismos autores Black et al. (2009):
Smalltalk fue diseado para ser trabajado con un mouse de tres botones. Estos tres
botones, sin embargo pueden ser representados por configuraciones en el teclado, por
lo que se usan los siguientes trminos:
-

Click: este es el botn ms utilizado. Generalmente equivale a oprimir una vez el


botn del mouse, sin hacer ninguna configuracin especial.
Click de accin: este es el segundo botn ms usado. Por lo general se usa para
mostrar un men contextual. Esto es, un men que ofrezca la posibilidad de realizar
distintos tipos de accin, dependiendo de lo que est sealando el mouse.
Meta-click: activa una matriz de identificaciones que realiza operaciones en el objeto
que est en la pantalla.
1.5.1

El men mundial

Segn los autores Black et al. (2009) este men muestra formas simples de acceder
a muchas de las herramientas que Pharo ofrece. Se pueden apreciar la mayora de las
herramientas esenciales de Pharo, como el navegador y el espacio de trabajo.
1.5.2

El navegador de clases. Encontrar clases y mtodos

El navegador de clases, segn los autores Black et al. (2009) es una de las
herramientas clave usadas en la programacin en Pharo. Hay muchos navegadores
interesantes disponibles para Pharo, pero el navegador de clases es el ms bsico que
puede encontrarse.

Estos mismos autores, manifiestan que:


Existen distintas formas de encontrar una clase en Pharo. La primera forma, es saber
(o suponer) en qu categora se encuentra y navegar hasta dicha clase utilizando el
navegador. Una segunda forma es enviar un mensaje desde el navegador hasta la
clase, pidindole a la clase que se abra en el navegador.
Por otra parte, con respecto a encontrar un mtodo Black et al.(2009) explican que:
Algunas veces se pueden adivinar los nombres de los mtodos, o al menos parte del
nombre, incluso ms fcilmente que el nombre de una clase. Por ejemplo, si ests
interesado en el tiempo actual, debes esperar que exista un mtodo llamado ahora.
Pero dnde puede estar dicho mtodo? El buscador de mtodos puede ser bastante
til en este caso. El buscador de mtodos, muestra una lista con de todos los nombres
de mtodos que contengan la palabra que se est buscando. Incluso este buscador
puede ayudar a encontrar mtodos segn la funcin que cumplan los mismos.
1.6 Quines usan Pharo?
Segn las fuentes de Wikipedia (2015) hoy en da ms de veinte compaas usan
Pharo para sus proyectos de desarrollo. En particular, usan:
- Seaside, para desarrollo de webs dinmicas.
- Zinc, para arquitecturas de servidor.
- Moose, para analizar datos y software de cualquier tipo de lenguajes de
programacin.
- Libreras grficas para evolucionadas interfaces de usuario.
- Roassal para visualizar datos.
La mayora de las compaas que hoy en da usan Pharo son pequeas o de mediano
tamao. El proyecto Pharo es apoyado por importantes compaas como Inria o
VMWare.

3.DESARROLLO
Como qued evidenciado en el marco terico Pharo es un lenguaje de programacin
bastante nuevo. Para respaldar esta afirmacin se encuentra el hecho de que an no
existen grandes cantidades de bibliografas al respecto de este tema, y ms an, las
existentes no estn disponibles an en espaol. Pharo se basa en el paradigma orientado
a objetos, tomando en cuenta a los objetos como entidades provistas de mtodos y
atributos y que pueden interactuar con otros objetos. A raz de esto se puede concluir,
por otra parte, que el lenguaje de programacin Pharo entonces cuenta con todas las
caractersticas de la programacin orientada a objetos. Cabe destacar con respecto a esto,
que la principal caracterstica es la abstraccin. En las bibliografas consultadas siempre
se daba la recomendacin al programador (tuviera experiencia o no) de que tratara de no
tomarle tanta importancia a las cosas. Muchas veces los programadores tienden a
sentirse confundidos porque no entienden exactamente cmo funciona alguna parte de su
cdigo. Olvidando que lo maravilloso de la abstraccin es saber que el cdigo lo hace,
ms no cmo lo hace.
Est dems decir que Pharo tambin cumple con las caractersticas de la herencia, el
polimorfismo, el principio de ocultamiento, el encapsulamiento y la recoleccin de
basura. Esta ltima caracterstica resulta muy importante al hablar de la gestin
automtica de memoria. Muchos lenguajes modernos cuentan con ella, y esta les permite
eliminar o borrar objetos que no hayan sido usados en mucho tiempo, dndole espacio a
la creacin de otros objetos. Ahora bien, ya se ha dicho que Pharo es un lenguaje de
programacin que se basa en el paradigma orientado a objetos, pero porque es una
derivacin del clsico Smalltalk. De hecho, comenz como slo una extensin de otro
lenguaje de programacin por el hecho de que haba que resolver problemas con
licencias y derechos de autor de algunos cdigos.
Ahora, qu es lo que hace a Pharo especial? Teniendo en cuenta que existen muchos
otros lenguajes de programacin orientados a objetos y que estos ltimos, adems, son
muchsimo ms conocidos que Pharo. La respuesta es la cantidad de innovaciones que
Pharo trae consigo. Posee numerosas libreras y una buena cantidad de aplicaciones que
favorecen los entornos de desarrollo de software. Ya hoy en da Pharo es parte de las
ctedras de muchas universidades alrededor de todo el mundo. Y, adems, a pesar de que
no son muchas las compaas que han empleado Pharo para desarrollar sus aplicaciones,
pues son poco ms de veinte empresas, Pharo ha cumplido con las expectativas de los
desarrolladores y los programadores.
Pharo no busca distinguirse como el lenguaje perfecto, ya que tal cosa no existe.
Como sus mismos creadores mencionaron, Pharo no es una solucin global a cualquier
problema que desee resolverse, pero s permitir cambios favorables para la evolucin
del software que, aunque sean cambios pequeos, al ser numerosos, soportarn el
desarrollo de la programacin. Este lenguaje tambin toma ventaja, ya que el software
Pharo es un software de cdigo abierto y est disponible en la web sin el menor costo.
Pharo es un lenguaje sencillo de usar ideal para operaciones como la visualizacin y
modificacin de datos, la creacin de mtodos, la creacin de redes, entre otros.

Adems, cuenta con la gran ventaja que podra denominarse como una especie de
programacin en vivo.
Qu quiere decir programacin en vivo? Este trmino se refiere a que las
actualizaciones de Pharo ocurren en tiempo real. Eventos como la reordenacin de datos
y la manipulacin de objetos de forma automtica tambin ocurren gracias a la
programacin en vivo. De hecho, se dice que Pharo ha creado un nuevo paradigma. Y
esto se debe a que Pharo permite modificar algn mtodo del cdigo sin tener que volver
a compilar todo el cdigo nuevamente. Esto, por supuesto, supone una gran ventaja para
los programadores ya que es un gran modo de ahorrar tiempo, y facilita la correccin de
errores en el cdigo.
Pharo ha servido de soporte e impulso a proyectos muy innovadores de distintos
tipos. Entre estos estn la investigacin y desarrollo de nuevas aplicaciones de software,
aplicaciones educacionales y aplicaciones multimedia. Como cualquier lenguaje de
programacin orientado a objetos, Pharo tambin consiste en ver un poco ms all. En
que el programador busque las formas de adaptarse a la visin de que todo es un objeto,
y no que simplemente busque apegarse a las normas de sintxis y a las reglas semnticas
bajo las que se rige Pharo. Con respecto a las caractersticas de este lenguaje de
programacin, no est dems destacar que al ser una extensin de este, Pharo hered
todas las facultades de Smalltalk. Sin embargo, contar con algunas distinciones
respecto a algunas libreras que antes podan ser opcionales, entre otros detalles no tan
importantes.
Si se habla de Pharo como software para programar en este mismo lenguaje, se debe
destacar que la persona que desee comenzar Pharo puede hacerlo cuando desee.
Simplemente necesita de acceso a internet para descargar los tres componentes
fundamentales para usar Pharo. Estos son, como se mencion anteriormente, una
mquina virtual, archivos fuente y una imagen del sistema. De esta manera, el
programador podr usar Pharo para comenzar a desarrollar proyectos de software de
manera sencilla gracias a las numerosas herramientas que ofrece Pharo para facilitar la
tarea de programar. Cabe destacar que quizs en Pharo se hagan distinciones respecto a
trminos a que el programador de otros lenguajes est acostumbrado. Por ejemplo, en
Pharo en lugar de llamar a un mtodo suele utilizarse con ms frecuencia la frase
enviar un mensaje
Como ya se ha mencionado Pharo cuenta con numerosas herramientas que hacen
bastante agradable la experiencia de programar. Por ejemplo, incluso aunque fue
diseado para trabajar con un mouse de tres botones, permite hacer configuraciones en
el teclado para que quien posea un mouse con menos botones puedan trabajar sin
problemas. Esto es importante puesto que cada uno de esos tres botones tiene su
funcionalidad especfica y es necesario para usar Pharo. Adems de esto cuenta con un
men principal bastante til al momento de navegar dentro del mismo Pharo. Por otra
parte, cuenta con navegadores de bsqueda especiales cuando se quiere encontrar alguna
clase dentro del cdigo o un mtodo en especfico.

4.CONCLUSIN
Pharo es un lenguaje de programacin innovador y bastante sencillo de usar tanto
como para programadores sin experiencia como para profesionales. Es un lenguaje de
programacin que ya est protagonizando las listas de herramientas tiles para la
investigacin y desarrollo de software, tal como aplicaciones multimedia o aplicaciones
educacionales. Como es un lenguaje de programacin desarrollado a partir de Smalltalk,
se considera como un lenguaje de programacin orientado a objetos. Pharo brinda las
posibilidades de que los programadores usuarios disfruten de las ventajas del paradigma
que se refiere a que todo es un objeto. Por otra parte, Pharo permite al programador
contar con las caractersticas bsicas de la programacin orientada a objetos. Tal y como
lo son la abstraccin, el encapsulamiento, la herencia, el principio de ocultacin y la
recoleccin de basura. Esto le permite ser bastante eficiente al momento de gestionar la
memoria del sistema y al momento en el que el usuario defina mtodos que deban
cumplir con una funcin, as el usuario no sepa exactamente como lo hace.
Adems de esto, este innovador lenguaje de programacin incluye una serie de
caractersticas relacionadas con la programacin en vivo. Estas caractersticas permiten
reordenar datos, realizar actualizaciones y trabajar con objetos en tiempo real. Este
lenguaje de programacin invita a los programadores que hagan uso de l a adaptarse a
la visin orientada a objetos. A tratar de concebir la realidad tal y como se busca
programarla en lugar de slo limitarse a conocer los smbolos y las reglas de un lenguaje
de programacin.
Es de destacar que Pharo an no es un lenguaje muy conocido, de hecho es
relativamente nuevo en cuanto a lenguajes de programacin se refiere. Pues a pesar de
ser una extensin de Smalltalk se busc que fuera una completa reinvencin de dicho
lenguaje de programacin. Por ello, es natural que muchas personas desconozcan de su
existencia y de la vala de su uso. Sin embargo, an en medio de este desconocimiento,
Pharo apunta a ser un lenguaje de programacin tan adecuado para el desarrollo de
software, gracias a sus numerosas herramientas que facilitan y hacen ms cmodo su
uso, que ya varias compaas estn usndolo para el desarrollo de sus entornos y sus
aplicaciones. As como tambin, muchas universidades alrededor del mundo le han dado
un lugar a Pharo entre sus centros de investigacin y enseanza.

5.BIBLIOGRAFA
-

BERGEL, Alexandre; et al. Deep into Pharo. Suiza: Square Bracket Associates,
2013.
BLACK, Andrew; et al. Pharo by example. Suiza: Square Bracket Associates,
2009.
Wikipedia. Pharo. 2015. http://en.wikipedia.org/wiki/Pharo [Consulta: Lunes, 06
de abril del 2015. 13:00]

S-ar putea să vă placă și