SlideShare una empresa de Scribd logo
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 librerias
Anel Sosa
 
Java desde 0
Java desde 0Java desde 0
Java desde 0
Saviotec
 
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
Freelance
 
Introduccion a-python
Introduccion a-pythonIntroduccion a-python
Introduccion a-python
Ruben Atao Rodriguez
 
LOS C++
LOS C++LOS C++
LOS C++
Brenda Jazmin
 
Introducción a python
Introducción a pythonIntroducción a python
Introducción a python
Lidia Montañez
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java prejtk1
 
Java pre
Java preJava pre
Java prejtk1
 
JavaScript
JavaScriptJavaScript
JavaScript
Jomicast
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introduction
Miguel 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 CB
Jhonatan 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 Cuenca
ALONSO UCHIHA
 
Meteor + React
Meteor + ReactMeteor + React
Meteor + React
Alfredo Bonilla
 
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 beans
luys aranda
 
0 java y net beans
0 java y net beans0 java y net beans
0 java y net beans
Felipe Gabriel Selada
 
Java vs Python
Java vs PythonJava vs Python
Java vs Python
Madelyne Velasco
 
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

Software especializado
Software especializadoSoftware especializado
Software especializado
Renny Centeno
 
Guias
GuiasGuias
Directorios
DirectoriosDirectorios
Directorios
Renny Centeno
 
Meta buscadores
Meta buscadoresMeta buscadores
Meta buscadores
Renny Centeno
 
Buscadores
BuscadoresBuscadores
Buscadores
Renny Centeno
 
type object
type objecttype object
type object
Renny Centeno
 
programacion iterativa trabajo
programacion iterativa trabajoprogramacion iterativa trabajo
programacion iterativa trabajo
Renny Centeno
 
Trabajo poo
Trabajo poo Trabajo poo
Trabajo poo
Renny Centeno
 
programacion iterativa
programacion iterativaprogramacion iterativa
programacion iterativa
Renny Centeno
 
type object
type objecttype object
type object
Renny Centeno
 
Anotaciones
AnotacionesAnotaciones
Anotaciones
Renny Centeno
 
Pharo presentacion
Pharo presentacionPharo presentacion
Pharo presentacion
Renny Centeno
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
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

Clasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de BartonClasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de Barton
edujunes132
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
CarlosAroeira1
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
everchanging2020
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
SantosCatalinoOrozco
 
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica químicaCiclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
ycalful01
 
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdfPLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
MariaCortezRuiz
 
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
JuanChaparro49
 
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptxSistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
RobertRamos84
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
JhonatanOQuionesChoq
 
Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
michiotes33
 
Sesiones 3 y 4 Estructuras Ingenieria.pdf
Sesiones 3 y 4 Estructuras Ingenieria.pdfSesiones 3 y 4 Estructuras Ingenieria.pdf
Sesiones 3 y 4 Estructuras Ingenieria.pdf
DeyvisPalomino2
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
FRANCISCOJUSTOSIERRA
 
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA  PPTCONTROL DE MOTORES DE CORRIENTE ALTERNA  PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
LuisLobatoingaruca
 
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdfPLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
Daniel Jose Sierra Garcia
 
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptxMedicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
gabrielperedasanchez
 
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdfHITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
GROVER MORENO
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
maitecuba2006
 
Curso Basico de DIgSILENT power factorys
Curso Basico de DIgSILENT power factorysCurso Basico de DIgSILENT power factorys
Curso Basico de DIgSILENT power factorys
LuisPerezIgnacio1
 
Voladura de mineria subterránea pppt.ppt
Voladura de mineria subterránea pppt.pptVoladura de mineria subterránea pppt.ppt
Voladura de mineria subterránea pppt.ppt
AldithoPomatay2
 
Diagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdfDiagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdf
joseabachesoto
 

Último (20)

Clasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de BartonClasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de Barton
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
 
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica químicaCiclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
 
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdfPLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
 
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
 
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptxSistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
 
Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
 
Sesiones 3 y 4 Estructuras Ingenieria.pdf
Sesiones 3 y 4 Estructuras Ingenieria.pdfSesiones 3 y 4 Estructuras Ingenieria.pdf
Sesiones 3 y 4 Estructuras Ingenieria.pdf
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
 
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA  PPTCONTROL DE MOTORES DE CORRIENTE ALTERNA  PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
 
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdfPLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
 
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptxMedicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
 
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdfHITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
 
Curso Basico de DIgSILENT power factorys
Curso Basico de DIgSILENT power factorysCurso Basico de DIgSILENT power factorys
Curso Basico de DIgSILENT power factorys
 
Voladura de mineria subterránea pppt.ppt
Voladura de mineria subterránea pppt.pptVoladura de mineria subterránea pppt.ppt
Voladura de mineria subterránea pppt.ppt
 
Diagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdfDiagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".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]