SlideShare una empresa de Scribd logo
1 de 11
UNIVERSIDAD DE ORIENTE
NÚCLEO MONAGAS
ESCUELA DE INGENIERÍA Y CIENCIAS APLICADAS
CURSO ESPECIAL DE GRADO
CIENCIAS DE LA COMPUTACIÓN
PHARO
Profesor: Jonathan Vásquez
Bachilleres:
Centeno G., Renny J. C.I.21.350.253
Fernández G., Ana B. C.I.21.329.313
Maturín, Abril del 2015
Índice
1. INTRODUCCIÓN .........................................................................................................3
2. MARCO TEÓRICO.........................................................................................................4
1.1 ¿Qué es Pharo?............................................................................................................4
1.2 ¿Cuáles son las ventajas de Pharo? ......................................................................4
1.3 Historia de Pharo ...................................................................................................4
1.4 Características 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 métodos ...................................6
1.6 ¿Quiénes usan Pharo? ...........................................................................................7
3. DESARROLLO .............................................................................................................8
4. CONCLUSIÓN ............................................................................................................10
5. BIBLIOGRAFÍA .........................................................................................................11
1. INTRODUCCIÓN
Los seres humanos siempre han tenido la necesidad de mejorar. A lo largo de la historia,
cada estudio y cada nuevo avance tecnológico ha surgido en base a mejorar una situación
que el ser humano consideraba un problema. Las primeras computadoras, por ejemplo,
surgieron de la necesidad de agilizar y automatizar cómputos que a los seres humanos se les
hacían muy rutinarios y extensos. La computadora, entonces, nació para llevar a cabo en
minutos o incluso segundos, procesos que el ser humano tardaba días y meses en lograr.
Por supuesto, las primeras preocupaciones se orientaban más hacia los aspectos físicos de
las computadoras. Era necesario que estos dispositivos dejaran de ocupar cuartos enteros.
Sin embargo, con el avance de las épocas, también fue necesario mejorar la parte lógica de
las computadoras, esa que es intangible y que comúnmente denominamos como software.
Es entonces como comienzan a surgir paradigmas en torno a las reglas que aceptaba lo
comunidad científica de determinado momento acerca de cómo debía realizarse la
programación y el estilo de lenguaje que debía emplearse. Esto es especialmente importante
ya que, para que puedan darse los avances tecnológicos en este ámbito, es necesario lograr
una efectiva comunicación entre el programador y la máquina. 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 específicamente a la computadora
las órdenes lógicas y que la computadora pueda entenderlas también.
En función a esto, los lenguajes de programación fueron evolucionando en base al
paradigma de programación de su época específica. Así también los paradigmas fueron
cambiando hasta llegar al que hoy en día es el más comúnmente usado: el paradigma
orientado a objetos. Fundamentados en este paradigma, se han desarrollado numerosos
lenguajes de programación. 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 características y funciones propias y que pueden tener relación con
otros objetos. Estos objetos entonces pueden representarse en códigos a través de los
lenguajes de programación 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 dinámico.
Es entonces como, buscando realizar una mejoría del lenguaje de programación Smalltalk,
surgió Pharo. Este lenguaje de programación es bastante reciente, y no es tan conocido. Sin
embargo, ya ha destacado como una excelente opción al momento de llevar a cabo alguna
investigación para desarrollar nuevos software. A pesar de que este lenguaje conserva
características de Smalltalk, llega para innovar completamente lo ya conocido de los
lenguajes de programación orientados a objetos, implementando características como la
programación en vivo.
2. MARCO TEÓRICO
1.1 ¿Qué es Pharo?
Los autores Black et al. (2010) definen a Pharo como una” implementación moderna, de
código abierto y completamente funcional del lenguaje de programación Smalltak y su
entorno. Pharo es una derivación de Squeak, una reimplementación del clásico sistema
smalltalk-80”. Por otra parte, los autores Bergel, Cassou, Ducasse y Laval (2013) indican
que Pharo es un:
Lenguaje de programación orientado a objetos, fuertemente influenciado por
Smalltak. Pharo es más que el uso de sintaxis y de un conjunto de reglas semánticas,
como lo son la mayoría de los lenguajes de programación. Pharo cuenta con un
entorno de desarrollo expandible y adaptable. Gracias a que posee numerosas
librerías 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, según Wikipedia (2015):
Muchas personas creen que el nombre de Pharo hace referencia al famoso “Pharos”
de la antigua Alejandría. “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 ¿Cuáles son las ventajas de Pharo?
Entre las ventajas que ofrece Pharo, los mismos autores Black et al. (2009) señalan
que Pharo “busca ofrecer una plataforma de código abierto y de soporte que permita el
desarrollo de software profesional, y una plataforma robusta y estable para la
investigación y desarrollo de lenguajes dinámicos y entornos de programación”. Por otra
parte, Wikipedia (2015) señala también entre las ventajas que ofrece Pharo también se
encuentra el hecho de que “ofrece un fuerte conjunto de características de la
programación en vivo como lo son la manipulación de objetos inmediata,
actualizaciones en vivo, reordenación de datos. Pharo además soporta desarrollos web
avanzados tales como Seaside y Tide”.
Por otra parte, la misma web Wikipedia (2015) señala como una de las ventajas
principales de Pharo que:
Como cualquier implementación de Smalltalk, no es obligatorio compilar todo el
código en caso de que se quiera modificar algún método. Por ejemplo, es posible
crear o editar un nuevo método 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) señalan 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 códigos
cuya contribución se ha realizado bajo la licencia MIT. El proyecto Pharo comenzó
en Marzo del 2008, como una extensión de Squeak 3.9, y la primera versión beta fue
lanzada el 31 de Julio del 2009.
Complementando un poco la información histórica, Wikipedia (2015) señala que el
desarrollo de Pharo se:
Centró en ingeniería moderna de software y técnicas de desarrollo. El proyecto Pharo
buscaba desarrollar un Smalltak moderno para las compañías y para las
investigaciones de ingeniería de software. Pharo también sirve como la plataforma de
referencia de Seaside, un marco de aplicación web que desarrolla aplicaciones web a
través de Smalltalk. Actualmente, Pharo se rige por el consorcio Pharo (para
compañías) y por la asociación 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 características que son
sólo opcionales en Squeak”. También señalan que “las interfaces han sido simplificadas
y revisadas”.
Además, estos últimos autores también señalan con respecto a los aspectos
importantes del origen de Pharo que:
Pharo no debería ser una copia del pasado Smalltak, sino una completa reinvención
de este. Pharo realmente favorecerá evoluciones y cambios incrementales. Queremos
ser capaces de experimentar con nuevas e importantes características y librerías. La
evolución significa que Pharo acepta errores, no se está buscando que sea la nueva y
perfecta solución a todos los problemas en un solo paso (aunque eso nos encantaría).
Pharo favorecerá pequeños cambios incrementales, pero multitudes de ellos. El éxito
de Pharo depende de las contribuciones de su comunidad
1.4 Características de Pharo
Con respecto a las características de Pharo, Wikipedia (2015) señala que “Pharo
posee las mismas características principales de Smalltalk”: La misma web Wikipedia
(2015) indica que estas características principales anteriormente mencionadas son:
En primer lugar, todo es un objeto, en el sentido de la programación 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 dinámicamente tipado, en contraste con los lenguajes estáticamente tipados.
La herencia es bastante sencilla. Por último, la gestión de la memoria es automática.
Como es el caso de muchos lenguajes de programación modernos, Pharo utiliza un
recolector de basura.
Una característica a resaltar, está señalada por los autores Black et al. (2009) en donde
explican que Pharo:
Es bastante portátil. Incluso su máquina virtual está completamente escrita en
Smalltalk, facilitando la depuración, el análisis y en cambio. Pharo es el vehículo para
un rango muy amplio de proyectos innovadores con respecto a aplicaciones
multimedia y plataformas educacionales diseñadas para el desarrollo de entornos
comerciales web.
Por otra parte, Bergel et al. (2013) señalan 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 sensación ú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 máquina virtual, que es la única parte del sistema que es distinta para cada sistema
operativo y procesador. Máquinas virtuales pre-compiladas están disponibles para la
mayoría de los entornos de desarrollo de computación. Otra de las partes está
constituida por los archivos fuente, que contienen los códigos 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 ejecutándose. Esta última parte contiene
dos elementos: una imagen que muestra el estado de todos los objetos en el sistema
(incluyendo clases y métodos, ya que se habla de objetos) y otro archivo que muestra
todos los cambios al código fuente del sistema.
Es importante destacar que, según los mismos autores Black et al. (2009):
Smalltalk fue diseñado 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 términos:
- Click: este es el botón más utilizado. Generalmente equivale a oprimir una vez el
botón del mouse, sin hacer ninguna configuración especial.
- Click de acción: este es el segundo botón más usado. Por lo general se usa para
mostrar un menú contextual. Esto es, un menú que ofrezca la posibilidad de realizar
distintos tipos de acción, dependiendo de lo que esté señalando 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
Según 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 mayoría de las
herramientas esenciales de Pharo, como el navegador y el espacio de trabajo”.
1.5.2 El navegador de clases. Encontrar clases y métodos
El navegador de clases, según los autores Black et al. (2009) “es una de las
herramientas clave usadas en la programación en Pharo. Hay muchos navegadores
interesantes disponibles para Pharo, pero el navegador de clases es el más básico 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é categoría se encuentra y navegar hasta dicha clase utilizando el
navegador. Una segunda forma es enviar un mensaje desde el navegador hasta la
clase, pidiéndole a la clase que se abra en el navegador.
Por otra parte, con respecto a encontrar un método Black et al.(2009) explican que:
Algunas veces se pueden adivinar los nombres de los métodos, o al menos parte del
nombre, incluso más fácilmente que el nombre de una clase. Por ejemplo, si estás
interesado en el tiempo actual, debes esperar que exista un método llamado “ahora”.
Pero ¿dónde puede estar dicho método? El buscador de métodos puede ser bastante
útil en este caso. El buscador de métodos, muestra una lista con de todos los nombres
de métodos que contengan la palabra que se está buscando. Incluso este buscador
puede ayudar a encontrar métodos según la función que cumplan los mismos.
1.6 ¿Quiénes usan Pharo?
Según las fuentes de Wikipedia (2015) hoy en día más de veinte compañías usan
Pharo para sus proyectos de desarrollo. En particular, usan:
- Seaside, para desarrollo de webs dinámicas.
- Zinc, para arquitecturas de servidor.
- Moose, para analizar datos y software de cualquier tipo de lenguajes de
programación.
- Librerías gráficas para evolucionadas interfaces de usuario.
- Roassal para visualizar datos.
La mayoría de las compañías que hoy en día usan Pharo son pequeñas o de mediano
tamaño. El proyecto Pharo es apoyado por importantes compañías como Inria o
VMWare.
3.DESARROLLO
Como quedó evidenciado en el marco teórico Pharo es un lenguaje de programación
bastante nuevo. Para respaldar esta afirmación se encuentra el hecho de que aún no
existen grandes cantidades de bibliografías al respecto de este tema, y más aún, las
existentes no están disponibles aún en español. Pharo se basa en el paradigma orientado
a objetos, tomando en cuenta a los objetos como entidades provistas de métodos y
atributos y que pueden interactuar con otros objetos. A raíz de esto se puede concluir,
por otra parte, que el lenguaje de programación Pharo entonces cuenta con todas las
características de la programación orientada a objetos. Cabe destacar con respecto a esto,
que la principal característica es la abstracción. En las bibliografías consultadas siempre
se daba la recomendación 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 cómo funciona alguna parte de su
código. Olvidando que lo maravilloso de la abstracción es saber que el código lo hace,
más no cómo lo hace.
Está demás decir que Pharo también cumple con las características de la herencia, el
polimorfismo, el principio de ocultamiento, el encapsulamiento y la recolección de
basura. Esta última característica resulta muy importante al hablar de la gestión
automática de memoria. Muchos lenguajes modernos cuentan con ella, y esta les permite
eliminar o borrar objetos que no hayan sido usados en mucho tiempo, dándole espacio a
la creación de otros objetos. Ahora bien, ya se ha dicho que Pharo es un lenguaje de
programación que se basa en el paradigma orientado a objetos, pero porque es una
derivación del clásico Smalltalk. De hecho, comenzó como sólo una extensión de otro
lenguaje de programación por el hecho de que había que resolver problemas con
licencias y derechos de autor de algunos códigos.
Ahora, ¿qué es lo que hace a Pharo especial? Teniendo en cuenta que existen muchos
otros lenguajes de programación orientados a objetos y que estos últimos, además, son
muchísimo más conocidos que Pharo. La respuesta es la cantidad de innovaciones que
Pharo trae consigo. Posee numerosas librerías y una buena cantidad de aplicaciones que
favorecen los entornos de desarrollo de software. Ya hoy en día Pharo es parte de las
cátedras de muchas universidades alrededor de todo el mundo. Y, además, a pesar de
que no son muchas las compañías que han empleado Pharo para desarrollar sus
aplicaciones, pues son poco más 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 solución global a cualquier
problema que desee resolverse, pero sí permitirá cambios favorables para la evolución
del software que, aunque sean cambios pequeños, al ser numerosos, soportarán el
desarrollo de la programación. Este lenguaje también toma ventaja, ya que el software
Pharo es un software de código abierto y está disponible en la web sin el menor costo.
Pharo es un lenguaje sencillo de usar ideal para operaciones como la visualización y
modificación de datos, la creación de métodos, la creación de redes, entre otros.
Además, cuenta con la gran ventaja que podría denominarse como una especie de
programación en vivo.
¿Qué quiere decir programación en vivo? Este término se refiere a que las
actualizaciones de Pharo ocurren en tiempo real. Eventos como la reordenación de datos
y la manipulación de objetos de forma automática también ocurren gracias a la
programación en vivo. De hecho, se dice que Pharo ha creado un nuevo paradigma. Y
esto se debe a que Pharo permite modificar algún método del código sin tener que volver
a compilar todo el código nuevamente. Esto, por supuesto, supone una gran ventaja para
los programadores ya que es un gran modo de ahorrar tiempo, y facilita la corrección de
errores en el código.
Pharo ha servido de soporte e impulso a proyectos muy innovadores de distintos
tipos. Entre estos están la investigación y desarrollo de nuevas aplicaciones de software,
aplicaciones educacionales y aplicaciones multimedia. Como cualquier lenguaje de
programación orientado a objetos, Pharo también consiste en ver un poco más allá. En
que el programador busque las formas de adaptarse a la visión de que todo es un objeto,
y no que simplemente busque apegarse a las normas de sintáxis y a las reglas semánticas
bajo las que se rige Pharo. Con respecto a las características de este lenguaje de
programación, no está demás destacar que al ser una extensión de este, Pharo heredó
todas las facultades de Smalltalk. Sin embargo, contará con algunas distinciones
respecto a algunas librerías que antes podían 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
máquina 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 quizás en Pharo se hagan distinciones respecto a
términos a que el programador de otros lenguajes está acostumbrado. Por ejemplo, en
Pharo en lugar de “llamar a un método” suele utilizarse con más 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
diseñado 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 específica y es necesario para usar Pharo. Además de esto cuenta con un
menú principal bastante útil al momento de navegar dentro del mismo Pharo. Por otra
parte, cuenta con navegadores de búsqueda especiales cuando se quiere encontrar alguna
clase dentro del código o un método en específico.
4.CONCLUSIÓN
Pharo es un lenguaje de programación innovador y bastante sencillo de usar tanto
como para programadores sin experiencia como para profesionales. Es un lenguaje de
programación que ya está protagonizando las listas de herramientas útiles para la
investigación y desarrollo de software, tal como aplicaciones multimedia o aplicaciones
educacionales. Como es un lenguaje de programación desarrollado a partir de Smalltalk,
se considera como un lenguaje de programación 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 características básicas de la programación orientada a objetos. Tal y como
lo son la abstracción, el encapsulamiento, la herencia, el principio de ocultación y la
recolección 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 métodos que deban
cumplir con una función, así el usuario no sepa exactamente como lo hace.
Además de esto, este innovador lenguaje de programación incluye una serie de
características relacionadas con la programación en vivo. Estas características permiten
reordenar datos, realizar actualizaciones y trabajar con objetos en tiempo real. Este
lenguaje de programación invita a los programadores que hagan uso de él a adaptarse a
la visión orientada a objetos. A tratar de concebir la realidad tal y como se busca
programarla en lugar de sólo limitarse a conocer los símbolos y las reglas de un lenguaje
de programación.
Es de destacar que Pharo aún no es un lenguaje muy conocido, de hecho es
relativamente nuevo en cuanto a lenguajes de programación se refiere. Pues a pesar de
ser una extensión de Smalltalk se buscó que fuera una completa reinvención de dicho
lenguaje de programación. Por ello, es natural que muchas personas desconozcan de su
existencia y de la valía de su uso. Sin embargo, aún en medio de este desconocimiento,
Pharo apunta a ser un lenguaje de programación tan adecuado para el desarrollo de
software, gracias a sus numerosas herramientas que facilitan y hacen más cómodo su
uso, que ya varias compañías están usándolo para el desarrollo de sus entornos y sus
aplicaciones. Así como también, muchas universidades alrededor del mundo le han dado
un lugar a Pharo entre sus centros de investigación y enseñanza.
5.BIBLIOGRAFÍA
- 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]

Más contenido relacionado

Similar a trabajo pharo

investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasAnel Sosa
 
Java desde 0
Java desde 0Java desde 0
Java desde 0Saviotec
 
Plataformas para el desarrollo de aplicaciones web
Plataformas para el desarrollo de aplicaciones webPlataformas para el desarrollo de aplicaciones web
Plataformas para el desarrollo de aplicaciones webFreelance
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java prejtk1
 
Java pre
Java preJava pre
Java prejtk1
 
JavaScript
JavaScriptJavaScript
JavaScriptJomicast
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introductionMiguel Pastor
 
Unidad 3 isc j3 paquetes y librerias CB
Unidad 3 isc j3 paquetes y librerias CBUnidad 3 isc j3 paquetes y librerias CB
Unidad 3 isc j3 paquetes y librerias CBJhonatan Pat
 
Sistemas Basado En El Conocimiento Marvin Agila Edwin Cuenca
Sistemas Basado En El Conocimiento Marvin Agila   Edwin CuencaSistemas Basado En El Conocimiento Marvin Agila   Edwin Cuenca
Sistemas Basado En El Conocimiento Marvin Agila Edwin CuencaALONSO UCHIHA
 
Manual.curso.de.java.desde.cero
Manual.curso.de.java.desde.ceroManual.curso.de.java.desde.cero
Manual.curso.de.java.desde.ceroLalo Pérez
 
0 java y net beans
0 java y net beans0 java y net beans
0 java y net beansluys aranda
 
Trabajo sandra toapanta
Trabajo sandra toapantaTrabajo sandra toapanta
Trabajo sandra toapantasandratoapanta
 
Java desde 0 pre
Java desde 0 preJava desde 0 pre
Java desde 0 prejtk1
 

Similar a trabajo pharo (20)

investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y librerias
 
Java desde 0
Java desde 0Java desde 0
Java desde 0
 
Plataformas para el desarrollo de aplicaciones web
Plataformas para el desarrollo de aplicaciones webPlataformas para el desarrollo de aplicaciones web
Plataformas para el desarrollo de aplicaciones web
 
Introduccion a-python
Introduccion a-pythonIntroduccion a-python
Introduccion a-python
 
LOS C++
LOS C++LOS C++
LOS C++
 
Introducción a python
Introducción a pythonIntroducción a python
Introducción a python
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java pre
 
Java pre
Java preJava pre
Java pre
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introduction
 
189 206
189 206189 206
189 206
 
Unidad 3 isc j3 paquetes y librerias CB
Unidad 3 isc j3 paquetes y librerias CBUnidad 3 isc j3 paquetes y librerias CB
Unidad 3 isc j3 paquetes y librerias CB
 
Sistemas Basado En El Conocimiento Marvin Agila Edwin Cuenca
Sistemas Basado En El Conocimiento Marvin Agila   Edwin CuencaSistemas Basado En El Conocimiento Marvin Agila   Edwin Cuenca
Sistemas Basado En El Conocimiento Marvin Agila Edwin Cuenca
 
Meteor + React
Meteor + ReactMeteor + React
Meteor + React
 
Manual.curso.de.java.desde.cero
Manual.curso.de.java.desde.ceroManual.curso.de.java.desde.cero
Manual.curso.de.java.desde.cero
 
0 java y net beans
0 java y net beans0 java y net beans
0 java y net beans
 
0 java y net beans
0 java y net beans0 java y net beans
0 java y net beans
 
Java vs Python
Java vs PythonJava vs Python
Java vs Python
 
Trabajo sandra toapanta
Trabajo sandra toapantaTrabajo sandra toapanta
Trabajo sandra toapanta
 
Java desde 0 pre
Java desde 0 preJava desde 0 pre
Java desde 0 pre
 

Más de Renny Centeno

Más de Renny Centeno (13)

Software especializado
Software especializadoSoftware especializado
Software especializado
 
Guias
GuiasGuias
Guias
 
Directorios
DirectoriosDirectorios
Directorios
 
Meta buscadores
Meta buscadoresMeta buscadores
Meta buscadores
 
Buscadores
BuscadoresBuscadores
Buscadores
 
type object
type objecttype object
type object
 
programacion iterativa trabajo
programacion iterativa trabajoprogramacion iterativa trabajo
programacion iterativa trabajo
 
Trabajo poo
Trabajo poo Trabajo poo
Trabajo poo
 
programacion iterativa
programacion iterativaprogramacion iterativa
programacion iterativa
 
type object
type objecttype object
type object
 
Anotaciones
AnotacionesAnotaciones
Anotaciones
 
Pharo presentacion
Pharo presentacionPharo presentacion
Pharo presentacion
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 

Último

INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Clase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxClase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxChristopherOlave2
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 

Último (20)

INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Clase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxClase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptx
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 

trabajo pharo

  • 1. UNIVERSIDAD DE ORIENTE NÚCLEO MONAGAS ESCUELA DE INGENIERÍA Y CIENCIAS APLICADAS CURSO ESPECIAL DE GRADO CIENCIAS DE LA COMPUTACIÓN PHARO Profesor: Jonathan Vásquez Bachilleres: Centeno G., Renny J. C.I.21.350.253 Fernández G., Ana B. C.I.21.329.313 Maturín, Abril del 2015
  • 2. Índice 1. INTRODUCCIÓN .........................................................................................................3 2. MARCO TEÓRICO.........................................................................................................4 1.1 ¿Qué es Pharo?............................................................................................................4 1.2 ¿Cuáles son las ventajas de Pharo? ......................................................................4 1.3 Historia de Pharo ...................................................................................................4 1.4 Características 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 métodos ...................................6 1.6 ¿Quiénes usan Pharo? ...........................................................................................7 3. DESARROLLO .............................................................................................................8 4. CONCLUSIÓN ............................................................................................................10 5. BIBLIOGRAFÍA .........................................................................................................11
  • 3. 1. INTRODUCCIÓN Los seres humanos siempre han tenido la necesidad de mejorar. A lo largo de la historia, cada estudio y cada nuevo avance tecnológico ha surgido en base a mejorar una situación que el ser humano consideraba un problema. Las primeras computadoras, por ejemplo, surgieron de la necesidad de agilizar y automatizar cómputos que a los seres humanos se les hacían muy rutinarios y extensos. La computadora, entonces, nació para llevar a cabo en minutos o incluso segundos, procesos que el ser humano tardaba días y meses en lograr. Por supuesto, las primeras preocupaciones se orientaban más hacia los aspectos físicos de las computadoras. Era necesario que estos dispositivos dejaran de ocupar cuartos enteros. Sin embargo, con el avance de las épocas, también fue necesario mejorar la parte lógica de las computadoras, esa que es intangible y que comúnmente denominamos como software. Es entonces como comienzan a surgir paradigmas en torno a las reglas que aceptaba lo comunidad científica de determinado momento acerca de cómo debía realizarse la programación y el estilo de lenguaje que debía emplearse. Esto es especialmente importante ya que, para que puedan darse los avances tecnológicos en este ámbito, es necesario lograr una efectiva comunicación entre el programador y la máquina. 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 específicamente a la computadora las órdenes lógicas y que la computadora pueda entenderlas también. En función a esto, los lenguajes de programación fueron evolucionando en base al paradigma de programación de su época específica. Así también los paradigmas fueron cambiando hasta llegar al que hoy en día es el más comúnmente usado: el paradigma orientado a objetos. Fundamentados en este paradigma, se han desarrollado numerosos lenguajes de programación. 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 características y funciones propias y que pueden tener relación con otros objetos. Estos objetos entonces pueden representarse en códigos a través de los lenguajes de programación 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 dinámico. Es entonces como, buscando realizar una mejoría del lenguaje de programación Smalltalk, surgió Pharo. Este lenguaje de programación es bastante reciente, y no es tan conocido. Sin embargo, ya ha destacado como una excelente opción al momento de llevar a cabo alguna investigación para desarrollar nuevos software. A pesar de que este lenguaje conserva características de Smalltalk, llega para innovar completamente lo ya conocido de los lenguajes de programación orientados a objetos, implementando características como la programación en vivo.
  • 4. 2. MARCO TEÓRICO 1.1 ¿Qué es Pharo? Los autores Black et al. (2010) definen a Pharo como una” implementación moderna, de código abierto y completamente funcional del lenguaje de programación Smalltak y su entorno. Pharo es una derivación de Squeak, una reimplementación del clásico sistema smalltalk-80”. Por otra parte, los autores Bergel, Cassou, Ducasse y Laval (2013) indican que Pharo es un: Lenguaje de programación orientado a objetos, fuertemente influenciado por Smalltak. Pharo es más que el uso de sintaxis y de un conjunto de reglas semánticas, como lo son la mayoría de los lenguajes de programación. Pharo cuenta con un entorno de desarrollo expandible y adaptable. Gracias a que posee numerosas librerías 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, según Wikipedia (2015): Muchas personas creen que el nombre de Pharo hace referencia al famoso “Pharos” de la antigua Alejandría. “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 ¿Cuáles son las ventajas de Pharo? Entre las ventajas que ofrece Pharo, los mismos autores Black et al. (2009) señalan que Pharo “busca ofrecer una plataforma de código abierto y de soporte que permita el desarrollo de software profesional, y una plataforma robusta y estable para la investigación y desarrollo de lenguajes dinámicos y entornos de programación”. Por otra parte, Wikipedia (2015) señala también entre las ventajas que ofrece Pharo también se encuentra el hecho de que “ofrece un fuerte conjunto de características de la programación en vivo como lo son la manipulación de objetos inmediata, actualizaciones en vivo, reordenación de datos. Pharo además soporta desarrollos web avanzados tales como Seaside y Tide”. Por otra parte, la misma web Wikipedia (2015) señala como una de las ventajas principales de Pharo que: Como cualquier implementación de Smalltalk, no es obligatorio compilar todo el código en caso de que se quiera modificar algún método. Por ejemplo, es posible crear o editar un nuevo método 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) señalan 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 códigos
  • 5. cuya contribución se ha realizado bajo la licencia MIT. El proyecto Pharo comenzó en Marzo del 2008, como una extensión de Squeak 3.9, y la primera versión beta fue lanzada el 31 de Julio del 2009. Complementando un poco la información histórica, Wikipedia (2015) señala que el desarrollo de Pharo se: Centró en ingeniería moderna de software y técnicas de desarrollo. El proyecto Pharo buscaba desarrollar un Smalltak moderno para las compañías y para las investigaciones de ingeniería de software. Pharo también sirve como la plataforma de referencia de Seaside, un marco de aplicación web que desarrolla aplicaciones web a través de Smalltalk. Actualmente, Pharo se rige por el consorcio Pharo (para compañías) y por la asociación 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 características que son sólo opcionales en Squeak”. También señalan que “las interfaces han sido simplificadas y revisadas”. Además, estos últimos autores también señalan con respecto a los aspectos importantes del origen de Pharo que: Pharo no debería ser una copia del pasado Smalltak, sino una completa reinvención de este. Pharo realmente favorecerá evoluciones y cambios incrementales. Queremos ser capaces de experimentar con nuevas e importantes características y librerías. La evolución significa que Pharo acepta errores, no se está buscando que sea la nueva y perfecta solución a todos los problemas en un solo paso (aunque eso nos encantaría). Pharo favorecerá pequeños cambios incrementales, pero multitudes de ellos. El éxito de Pharo depende de las contribuciones de su comunidad 1.4 Características de Pharo Con respecto a las características de Pharo, Wikipedia (2015) señala que “Pharo posee las mismas características principales de Smalltalk”: La misma web Wikipedia (2015) indica que estas características principales anteriormente mencionadas son: En primer lugar, todo es un objeto, en el sentido de la programación 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 dinámicamente tipado, en contraste con los lenguajes estáticamente tipados. La herencia es bastante sencilla. Por último, la gestión de la memoria es automática. Como es el caso de muchos lenguajes de programación modernos, Pharo utiliza un recolector de basura. Una característica a resaltar, está señalada por los autores Black et al. (2009) en donde explican que Pharo: Es bastante portátil. Incluso su máquina virtual está completamente escrita en Smalltalk, facilitando la depuración, el análisis y en cambio. Pharo es el vehículo para un rango muy amplio de proyectos innovadores con respecto a aplicaciones
  • 6. multimedia y plataformas educacionales diseñadas para el desarrollo de entornos comerciales web. Por otra parte, Bergel et al. (2013) señalan 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 sensación ú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 máquina virtual, que es la única parte del sistema que es distinta para cada sistema operativo y procesador. Máquinas virtuales pre-compiladas están disponibles para la mayoría de los entornos de desarrollo de computación. Otra de las partes está constituida por los archivos fuente, que contienen los códigos 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 ejecutándose. Esta última parte contiene dos elementos: una imagen que muestra el estado de todos los objetos en el sistema (incluyendo clases y métodos, ya que se habla de objetos) y otro archivo que muestra todos los cambios al código fuente del sistema. Es importante destacar que, según los mismos autores Black et al. (2009): Smalltalk fue diseñado 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 términos: - Click: este es el botón más utilizado. Generalmente equivale a oprimir una vez el botón del mouse, sin hacer ninguna configuración especial. - Click de acción: este es el segundo botón más usado. Por lo general se usa para mostrar un menú contextual. Esto es, un menú que ofrezca la posibilidad de realizar distintos tipos de acción, dependiendo de lo que esté señalando 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 Según 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 mayoría de las herramientas esenciales de Pharo, como el navegador y el espacio de trabajo”. 1.5.2 El navegador de clases. Encontrar clases y métodos El navegador de clases, según los autores Black et al. (2009) “es una de las herramientas clave usadas en la programación en Pharo. Hay muchos navegadores interesantes disponibles para Pharo, pero el navegador de clases es el más básico que puede encontrarse”.
  • 7. Estos mismos autores, manifiestan que: Existen distintas formas de encontrar una clase en Pharo. La primera forma, es saber (o suponer) en qué categoría se encuentra y navegar hasta dicha clase utilizando el navegador. Una segunda forma es enviar un mensaje desde el navegador hasta la clase, pidiéndole a la clase que se abra en el navegador. Por otra parte, con respecto a encontrar un método Black et al.(2009) explican que: Algunas veces se pueden adivinar los nombres de los métodos, o al menos parte del nombre, incluso más fácilmente que el nombre de una clase. Por ejemplo, si estás interesado en el tiempo actual, debes esperar que exista un método llamado “ahora”. Pero ¿dónde puede estar dicho método? El buscador de métodos puede ser bastante útil en este caso. El buscador de métodos, muestra una lista con de todos los nombres de métodos que contengan la palabra que se está buscando. Incluso este buscador puede ayudar a encontrar métodos según la función que cumplan los mismos. 1.6 ¿Quiénes usan Pharo? Según las fuentes de Wikipedia (2015) hoy en día más de veinte compañías usan Pharo para sus proyectos de desarrollo. En particular, usan: - Seaside, para desarrollo de webs dinámicas. - Zinc, para arquitecturas de servidor. - Moose, para analizar datos y software de cualquier tipo de lenguajes de programación. - Librerías gráficas para evolucionadas interfaces de usuario. - Roassal para visualizar datos. La mayoría de las compañías que hoy en día usan Pharo son pequeñas o de mediano tamaño. El proyecto Pharo es apoyado por importantes compañías como Inria o VMWare.
  • 8. 3.DESARROLLO Como quedó evidenciado en el marco teórico Pharo es un lenguaje de programación bastante nuevo. Para respaldar esta afirmación se encuentra el hecho de que aún no existen grandes cantidades de bibliografías al respecto de este tema, y más aún, las existentes no están disponibles aún en español. Pharo se basa en el paradigma orientado a objetos, tomando en cuenta a los objetos como entidades provistas de métodos y atributos y que pueden interactuar con otros objetos. A raíz de esto se puede concluir, por otra parte, que el lenguaje de programación Pharo entonces cuenta con todas las características de la programación orientada a objetos. Cabe destacar con respecto a esto, que la principal característica es la abstracción. En las bibliografías consultadas siempre se daba la recomendación 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 cómo funciona alguna parte de su código. Olvidando que lo maravilloso de la abstracción es saber que el código lo hace, más no cómo lo hace. Está demás decir que Pharo también cumple con las características de la herencia, el polimorfismo, el principio de ocultamiento, el encapsulamiento y la recolección de basura. Esta última característica resulta muy importante al hablar de la gestión automática de memoria. Muchos lenguajes modernos cuentan con ella, y esta les permite eliminar o borrar objetos que no hayan sido usados en mucho tiempo, dándole espacio a la creación de otros objetos. Ahora bien, ya se ha dicho que Pharo es un lenguaje de programación que se basa en el paradigma orientado a objetos, pero porque es una derivación del clásico Smalltalk. De hecho, comenzó como sólo una extensión de otro lenguaje de programación por el hecho de que había que resolver problemas con licencias y derechos de autor de algunos códigos. Ahora, ¿qué es lo que hace a Pharo especial? Teniendo en cuenta que existen muchos otros lenguajes de programación orientados a objetos y que estos últimos, además, son muchísimo más conocidos que Pharo. La respuesta es la cantidad de innovaciones que Pharo trae consigo. Posee numerosas librerías y una buena cantidad de aplicaciones que favorecen los entornos de desarrollo de software. Ya hoy en día Pharo es parte de las cátedras de muchas universidades alrededor de todo el mundo. Y, además, a pesar de que no son muchas las compañías que han empleado Pharo para desarrollar sus aplicaciones, pues son poco más 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 solución global a cualquier problema que desee resolverse, pero sí permitirá cambios favorables para la evolución del software que, aunque sean cambios pequeños, al ser numerosos, soportarán el desarrollo de la programación. Este lenguaje también toma ventaja, ya que el software Pharo es un software de código abierto y está disponible en la web sin el menor costo. Pharo es un lenguaje sencillo de usar ideal para operaciones como la visualización y modificación de datos, la creación de métodos, la creación de redes, entre otros.
  • 9. Además, cuenta con la gran ventaja que podría denominarse como una especie de programación en vivo. ¿Qué quiere decir programación en vivo? Este término se refiere a que las actualizaciones de Pharo ocurren en tiempo real. Eventos como la reordenación de datos y la manipulación de objetos de forma automática también ocurren gracias a la programación en vivo. De hecho, se dice que Pharo ha creado un nuevo paradigma. Y esto se debe a que Pharo permite modificar algún método del código sin tener que volver a compilar todo el código nuevamente. Esto, por supuesto, supone una gran ventaja para los programadores ya que es un gran modo de ahorrar tiempo, y facilita la corrección de errores en el código. Pharo ha servido de soporte e impulso a proyectos muy innovadores de distintos tipos. Entre estos están la investigación y desarrollo de nuevas aplicaciones de software, aplicaciones educacionales y aplicaciones multimedia. Como cualquier lenguaje de programación orientado a objetos, Pharo también consiste en ver un poco más allá. En que el programador busque las formas de adaptarse a la visión de que todo es un objeto, y no que simplemente busque apegarse a las normas de sintáxis y a las reglas semánticas bajo las que se rige Pharo. Con respecto a las características de este lenguaje de programación, no está demás destacar que al ser una extensión de este, Pharo heredó todas las facultades de Smalltalk. Sin embargo, contará con algunas distinciones respecto a algunas librerías que antes podían 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 máquina 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 quizás en Pharo se hagan distinciones respecto a términos a que el programador de otros lenguajes está acostumbrado. Por ejemplo, en Pharo en lugar de “llamar a un método” suele utilizarse con más 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 diseñado 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 específica y es necesario para usar Pharo. Además de esto cuenta con un menú principal bastante útil al momento de navegar dentro del mismo Pharo. Por otra parte, cuenta con navegadores de búsqueda especiales cuando se quiere encontrar alguna clase dentro del código o un método en específico.
  • 10. 4.CONCLUSIÓN Pharo es un lenguaje de programación innovador y bastante sencillo de usar tanto como para programadores sin experiencia como para profesionales. Es un lenguaje de programación que ya está protagonizando las listas de herramientas útiles para la investigación y desarrollo de software, tal como aplicaciones multimedia o aplicaciones educacionales. Como es un lenguaje de programación desarrollado a partir de Smalltalk, se considera como un lenguaje de programación 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 características básicas de la programación orientada a objetos. Tal y como lo son la abstracción, el encapsulamiento, la herencia, el principio de ocultación y la recolección 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 métodos que deban cumplir con una función, así el usuario no sepa exactamente como lo hace. Además de esto, este innovador lenguaje de programación incluye una serie de características relacionadas con la programación en vivo. Estas características permiten reordenar datos, realizar actualizaciones y trabajar con objetos en tiempo real. Este lenguaje de programación invita a los programadores que hagan uso de él a adaptarse a la visión orientada a objetos. A tratar de concebir la realidad tal y como se busca programarla en lugar de sólo limitarse a conocer los símbolos y las reglas de un lenguaje de programación. Es de destacar que Pharo aún no es un lenguaje muy conocido, de hecho es relativamente nuevo en cuanto a lenguajes de programación se refiere. Pues a pesar de ser una extensión de Smalltalk se buscó que fuera una completa reinvención de dicho lenguaje de programación. Por ello, es natural que muchas personas desconozcan de su existencia y de la valía de su uso. Sin embargo, aún en medio de este desconocimiento, Pharo apunta a ser un lenguaje de programación tan adecuado para el desarrollo de software, gracias a sus numerosas herramientas que facilitan y hacen más cómodo su uso, que ya varias compañías están usándolo para el desarrollo de sus entornos y sus aplicaciones. Así como también, muchas universidades alrededor del mundo le han dado un lugar a Pharo entre sus centros de investigación y enseñanza.
  • 11. 5.BIBLIOGRAFÍA - 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]