home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / DATABASE / XCLAS20P.ZIP / LEE.ME next >
Encoding:
Text File  |  1993-04-04  |  5.6 KB  |  141 lines

  1.  
  2.  
  3. XCLASS 2.01
  4. (c) Carlos Ruiz Ruiz, 1993
  5.  
  6.  
  7. XCLASS 2.01 es un programa de dominio público y por tanto queda
  8. expresamente prohibida su venta o cualquier otro medio de compensación 
  9. económica excluyendo aquellos necesarios para su distribución.
  10.  
  11. XCLASS 2.0 se distribuirá sin alterar ninguno de sus ficheros e 
  12. incluyendo siempre todos los siguientes:
  13.    LEE.ME       (Este fichero)
  14.    XCLASS.DOC   (Manual de referencia)
  15.    XCLASS.LIB   (Librería para Clipper 5.01)
  16.    XCLASS.CH    (Fichero de cabecera)
  17.  
  18. XCLASS 2.01 no es SHAREWARE. Cualquier usuario tiene derecho a su plena
  19. utilización, siendo de éste cualquier responsabilidad debida a un 
  20. incorrecto funcionamiento de una aplicación.
  21.  
  22. XCLASS PROFESIONAL es OTRO producto que sí es comercial y que no debe ser
  23. confundido con XCLASS 2.01, que es de dominio público.
  24.  
  25.  
  26. CARACTERISTICAS DE XCLASS
  27. =========================
  28. -Soporte de herencia múltiple y simple.
  29. -Soporte de métodos constructores.
  30. -Creación de clases en tiempo de ejecución.
  31. -Asociación de mensajes con métodos (funciones) o Code Blocks.
  32. -Mensajes virtuales.
  33. -Compatibilidad con el Debugger
  34. -Código eficiente y compacto.
  35. -Posibilidad de redefinición y borrado de mensajes y variables en
  36. clases derivadas.
  37. -Método rápido de acceso a los mensajes-padre.
  38. -Compatibilidad con una amplia variedad de sintaxis, especialmente con
  39. SuperClass 1.2
  40. -GRABACION y LECTURA en DISCO de cualquier OBJETO
  41. -Modularidad en el diseñó. Sólo se linkan aquellos módulos que son 
  42. realmente utilizados.
  43.  
  44.  
  45. ¿POR QUE XCLASS?
  46. ================
  47.    Son evidentes, y no las voy a comentar aquí, las ventajas de la 
  48.    programación orientada al objeto.
  49.  
  50.    Cuando apareció Clipper 5.00 comenzamos a ver las posibilidades que 
  51.    éste sistema ofrecía. Sin embargo nos dejó con la miel en la boca al 
  52.    no soportar la creación de clases.
  53.  
  54.    Pronto este problema comenzó a ser resuelto con librerías externas 
  55.    que fueron apareciendo. La más popular, por ser de dominio público, 
  56.    fué oClip. Dentro de las comerciales se destacaron Class(y) y 
  57.    SuperClass.
  58.  
  59.    En España aparecieron Dialog y, posteriormente, Objects, ambas de 
  60.    Antonio Linares.
  61.  
  62.    Siempre se le achacó el mismo problema a la OOP en Clipper:LENTITUD.
  63.    Este es agravaba al utilizar llamadas a métodos-padre (ver 
  64.    xclass.doc).
  65.  
  66.    La idea de XCLASS me vino mientras efectuaba pruebas de velocidad 
  67.    entre varios gestores de clases. El sistema de oClip y Dialog era el 
  68.    más rápido para las llamadas a funciones, el de oClip lo era también 
  69.    como acceso a variables. Sin embargo oClip y Dialog tenían, sobre 
  70.    todo el primero, algún bug a la hora de heredar. SuperClass poseía 
  71.    la sintaxis más completa y unos métodos rápidos de llamadas a 
  72.    métodos-padre. OopClip, una librería de Antonio Rojo, ofrecía una 
  73.    sintaxis muy completa pero era quizás la más lenta.
  74.  
  75.    Bien, ¿sería posible utilizar el método de oClip en las llamadas a 
  76.    funciones y el sistema de SuperClass en la herencia al mismo tiempo? 
  77.    Me puse manos a la obra y resultó que era perfectamente posible. 
  78.    Todo esto fué aderezado con otras aportaciones mías. He aquí los 
  79.    resultados de mis pruebas de velocidad:
  80.    (386/33 Bucles de 100.000 acciones y tiempos en segundos)
  81.  
  82.                 GETS            SETS          FUNCION    Parent:Funcion
  83.  
  84. CLIPPER         N/A     (array) 3,05            8,38           N/A
  85.  
  86. oClip           7,61            7,83           12,44           122,85
  87.  
  88. SUPERCLASS 1.2  7,37            7,72           38,59           186,34
  89.                                         BLOCK  22,53    qSuper: 45,41
  90.                                                         Rename: 53,64
  91.  
  92. OBJECTS         8,06            9,88           51,55           182,05
  93.                  (Hidden) 394,28
  94.  
  95. XCLASS 2.0      7,52            7,55           14,32           112,04
  96.                                        QSuper:  38,50
  97.                                Rename:  29,20
  98.  
  99. Son resultados "puros", restándoles el tiempo que tardaba el bucle en 
  100. sí en ejecutarse. En el caso de llamada a métodos padre redefinidos he
  101. probado varios sistemas con las librerías que lo permiten.
  102.  
  103. La ocupación en memoria y el tamaño del .EXE son también menores en 
  104. casi todos los casos.
  105.  
  106.    Otro detalle que me parecía casi indispensable era el poder 
  107.    especificar métodos constructores. Particularmente porque no es muy 
  108.    limpia la sintaxis típica de oVent := Window():New( 3, 4, 5, 6 )
  109.  
  110.    Quizás la característica más potente sea la posibilidad de grabar y 
  111.    leer en disco cualquier objetos. Esto abre la puerta a nuevas 
  112.    estructuras de datos, como los árboles, que podrán ser manejados 
  113.    fácilmente.
  114.  
  115.  
  116. VERSIONES
  117. =========
  118. 2.01: se corrige un bug por el que si el mensaje número 30 correspondía a
  119.   un BLOCK, se ejecutaba el 20
  120.  
  121. XCLASS PROFESIONAL
  122. ==================
  123.    XCLASS PROFESIONAL se encuentra aún en fase de desarrollo. Salvo las dos
  124.    primeras caracerísticas, el resto aún no está implementado y no se hará
  125.    si no se consiguen unas prestaciones aceptables.
  126.  
  127.      -Variables Protegidas.
  128.      -Métodos de acceso a variables (SETs y GETs).
  129.      -Mayor compatibilidad con otros gestores de clases.
  130.      -Mayor velocidad en definición de clases.
  131.      -Sistema de lectura y grabación de objetos más potente. Será posible
  132.    leer objetos de clases no inicializadas y, aún en estudio, grabar y leer
  133.    las clases estándar en Clipper.
  134.      -Librería de clases orientada a gestión de datos, de ficheros y listados.
  135.    Estas prometen ser muy interesantes.
  136.  
  137.  
  138. Es posible contactar con el autor a través de FIDONET, dirección:
  139. 2:345/602.5
  140.  
  141.