Historias
Slashboxes
Comentarios

Login Barrapunto

Login

[ Crear nueva cuenta ]

Generador de aplicaciones libre

editada por fernand0 el 23 de Diciembre 2005, 11:16h   Printer-friendly   Email story
desde el dept. carta-a-los-reyes-magos-programadores
pobrecito hablador nos cuenta: «Como arquitecto/desarrollador con experiencia y ambición estoy cansado de hacer centenas de veces lo mismo, trabajo para una organizacion grande y quiero resolver mis problemas con un meta-lenguaje, cuyo interprete (que estoy dispuesto a hacer) resuelva ni mas ni menos que el 80% del problema (código que no quiero volver a escribir). Y el 20% restante lo voy a escribir como hasta ahora. Ese 80% sale "mágicamente" de: diccionario de datos, vistas, criterios de búsqueda, perfiles de acceso/permisos y la definicion de la BD. A eso "péguele" un "style", algunos cálculos y en "segundos" se implementan aplicaciones comerciales ($!). La pregunta: ¿Existen lenguajes de definicion de estas cosas amigables?, ¿hay herramientas "libres" para hacer algo así?, No un "framework", algo mas. ¿Por qué no encuentro ninguna? ¿No es muy pero muy interesante la idea? De hecho es posible, y hay comunidades de usuarios que pagan muy caro cada licencia de uso. Algunas ideas para no arrancar de cero? Espero vuestros comentarios.»

Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Pues mira que...

    (Puntos:3, Interesante)
    por reidrac (5014) el Viernes, 23 Diciembre de 2005, 11:37h (#664681)
    ( http://www.usebox.net/jjm/ | Última bitácora: Viernes, 02 Enero de 2004, 14:20h )

    Te aseguro que llevo este año que acaba pensando en hacer un metaprograma (¿se llaman así? ¿programas para generar programas?) que me haga unos módulos de administración para un framework web que voy usando. Pero no me pongo :D.

    Lo que me tira muy para atrás es la complejidad del problema... que te puede llevar un buen tiempo de implementar, para resolver un problema que tienes ahora para aproximadamente YA (digo lo de aprox. porque puede ser para ayer y todo).

    Desde luego es una solución que puede suponerte mucho ahorro de trabajo, pero creo que es a largo plazo. Por ahora la satisfacción rápida de trabajar un par de días para un cliente y sacar ese proyecto adelante me parece que gana a trabajar un par de semanas (o más) para ahorrarme trabajo después.

    Igual por eso no encuentras lo que buscas.

    Un saludo.

    --


    Free the Mallocs!
  • ¿Humano2?

    (Puntos:1, Informativo)
    por pobrecito hablador el Viernes, 23 Diciembre de 2005, 12:32h (#664718)
    ¿Algo como humano2?

    http://www.humano2.org [humano2.org]

    Tienes información más "comercial" de soluciones desarrolladas en humano2 en http://www.humano2.com [humano2.com], pero el enlace que creo que te interesa a ti es el primero.

    Si lo pruebas, cuéntanos que tal (al menos a mí, a mi correo).

    --
    Ancor Gonzalez Sosa
    ancorgs en banot (con un punto aqui) net

  • Cuanto más general, más complejo.

    (Puntos:3, Inspirado)
    por Ariel (7358) el Viernes, 23 Diciembre de 2005, 12:45h (#664733)
    ( http://milugar.net/ | Última bitácora: Domingo, 04 Febrero de 2007, 11:43h )

    Y cuanto más complejo más posibilidades de no llegar a nada.

    Mi consejo sería que pienses en los caso de uso, es decir, tres o cuatro problemas en los que se pueda aplicar tu programa para crear una solución. Si consigues algo que funcione con esos casos, puedes refactorizar y contemplar más opciones.

    Ser demasiado ambicioso en las primeras fases del diseño puede hacer que te pierdas en un mar de complejidad, sobre todo si no tienes MUY claros los límites de tu programa.

    --
    ¿Qué es GHiPBaC [milugar.net]?
  • Una buna combinación

    (Puntos:1, Informativo)
    por pobrecito hablador el Viernes, 23 Diciembre de 2005, 13:16h (#664764)
    Creo que haciendo una buena combinación de Monodevelop + Glade (ya hay algo hecho sobre eso) + Monouml y unos cuantos asistentes mas y todo bien conjuntado... se podría obtener algo interesante...
  • Yo conozco...

    (Puntos:2)
    por Papipo (10510) el Viernes, 23 Diciembre de 2005, 13:24h (#664768)
    MetaL [meta-language.net], sirve para generar PHP, Java y Perl desde un meta-lenguaje XML.

    Personalmente, opino que querer hacer todo con lo mismo, significa hacer que todo sea igual de difícil, como es el caso de los CMS y todo aquello que se abstrae "demasiado" o es de muy alto nivel.
  • Yo no haria un lenguage

    (Puntos:2, Interesante)
    por Pupeno (22431) el Viernes, 23 Diciembre de 2005, 13:35h (#664771)
    Usaria uno que ya exista y que tenga un buen soporte de meta-programming: Lisp. Probaria tambien con Haskell (no probe su soporte de metaprogramming todabia).
  • JAG: Java Application Generator

    (Puntos:4, Informativo)
    por supertorpe (15972) el Viernes, 23 Diciembre de 2005, 13:53h (#664786)
    Traduzco rápidamente del sitio web de JAG: [sourceforge.net]

    JAG es una aplicación que genera aplicaciones completas J2EE. Su propósito es aliviar gran parte del trabajo repetitivo de la creación de aplicaciones.
    Genera proyectos completos (es más que un generador de código).

    Características:

    - Las aplicaciones generadas se construyen con Apache Ant y tienen una estructura de directorios organizada y flexible.
    - Plantillas de aplicación: te dan el control para seleccionar la arquitectura de aplicación más adecuada.
    - Las distintas arquitecturas de aplicación se derivan de las mejores prácticas observadas en la industria. Las últimas plantillas de aplicación:
    - Fuerza la separación de la presentación utilizando interfaces para habilitar la mayor flexibilidad de despliegue
    - EJB e Hibernate
    - Patrones J2EE (Session Façade, Service Locator, Business Delegate, Fast Lane Reader and Value Objects)
    - Un nivel de servicios empotrables (ServiceLocator o Spring)
    - Un nivel de negocio/persistencia: EJB2/3 or Hibernate 2/3
    - Un nivel de presentación que aprovecha las ventajas de las últimas características de Struts, como clientes declarativos, validaciones, JSPs modulares utilizando librerías de tags
    - Uso extensivo de anotaciones de Java 5 o XDoclet que reducen la complejidad y aumentan la mantenibilidad.
    Las aplicaciones generadas por JAG se pretende que sean un primer paso sólido en el proceso de desarrollo del proyecto.
    Utilizando las aplicaciones generadas como base, el desarrollo posterior puede ser entendido como codificación de lógica de negocio, personalización de la presentación...
  • Problema

    (Puntos:3, Inspirado)
    por Lock (3731) <{lock_peter} {at} {yahoo.es}> el Viernes, 23 Diciembre de 2005, 14:10h (#664799)
    ( http://barrapunto.com/ )
    Una aplicación generada ¿como la mantienes cuando tiene que crecer? ¿La regeneras?

    Cosas como el designer de oracle lo hacían.

    Pero tienes que tener claro en todo momento el objetivo puesto que cuando intentes personalizarlo puedes perder la posibilidad de hacerlo crecer.

    Yo veo más práctico lo de las clases piloto o montadores de plantillas visuales en demanda. Más que especificar la aplicacion especificar el estadar de la aplicacion (funcionalidades que quieres en todos los mantenimientos de los tipos de mantenimientos que desees por ejemplo) e implementarlo como clases y plantillas de interfaces.

    De esa forma hacer aplicaciones es rápido puesto que sólo personalizas esqueletos.

    El enlazar esqueletos (plantillas funcionales) es mucho más trivial y no necesita una automatizacion dado que bien hecho sería más dificil utilizar el metalenguaje que personalizar el código.

    .
    --
    ¿¿PETER?? ¿Demostenes? Y actualmente Lockpeter
    • Re:Problema de josergc (Puntos:1) Viernes, 23 Diciembre de 2005, 16:06h
  • No sé si será lo que buscas

    (Puntos:2, Interesante)
    por deif (22627) el Viernes, 23 Diciembre de 2005, 16:51h (#664884)
    ( Última bitácora: Martes, 17 Enero de 2006, 20:39h )
    Existe una librería llamada Loki (apt-get install Loki) y un libro asociado llamado Modern C++ Design [moderncppdesign.com] que te permite "meta-programar". Es de las pocas librerías (si no la única) que está enfocada construir la estructura del programa, en lugar de su implementación.

    Te voy a poner un extracto de la introducción del libro por John Vlissides (uno de los autores del mítico libro Design Patterns [amazon.com]):
    Code generators have held comparable promise for years, but my own research and practical experience have convinced me that, in the end, code generation doesn't compare. You have the round-trip problem, the not-enough-code-worth-generating problem, the inflexible-generator problem, the inscrutable-generated-code problem, and of course the I-can't-integrate-the-bloody-generated-code-with-m y-own-code problem. Any one of these problems may be a showstopper; together, they make code generation an unlikely solution for most programming challenges.

    Wouldn't it be great if we could realize the theoretical benefits of code generation - quicker, easier development, reduced redundancy, fewer bugs - without the drawbacks? That's what Andrei's approach promises. Generic components implement good designs in easy-to-use, mixable-and-matchable templates. They do pretty much what code generators do: produce boilerplate code for compiler consumption. The difference is that they do it within C++, not apart from it. The result is seamless integration with application code.



    Te aviso que es difícil de entender cómo funciona (plantillas de C++ por todas partes) pero no es difícil usarlo sin más.
  • por julionet001 (4123) el Viernes, 23 Diciembre de 2005, 17:22h (#664901)
    ( http://barrapunto.com/ )
    Veamos, tu trabajas en una empresa y quieres desarrollar un programa que te sustituya en el 80% del trabajo y facilite enormemente que un pardillo haga el solo el 20% restante.........ummmmmmmmmm.... creo que tu no eres el super programador, arquitecto-ingeniero-programersss.... ummmmm. ¡¡¡¡ tu eres el que le paga!!!!.
  • ¿Licencia?

    (Puntos:1)
    por sahel (15695) el Viernes, 23 Diciembre de 2005, 17:43h (#664910)
    ( http://barrapunto.com/ )
    Si utilizas un metaprogramador con licencia GPL, los programas que generase también deberán ser GPL, por tanto no puedes venderlos sin el código y además el comprador debe estar obligado a comunicarte y publicar las modificaciones, cosa que nadie hará.

    Conclusión: Si quieres ahorrarte un poco de trabajo consigue que tu jefe contrate a un becario a un modulero en prácticas. Deja la I+D+I a los extranjeros, que trabajan por las tardes.

    --

    Hemos dicho.

    • Re:¿Licencia? de pobrecito hablador (Puntos:1) Viernes, 23 Diciembre de 2005, 19:34h
      • Re:¿Licencia? de MaGaO (Puntos:1) Domingo, 25 Diciembre de 2005, 02:24h
  • por miguser (18044) el Viernes, 23 Diciembre de 2005, 18:14h (#664924)
    ( Última bitácora: Jueves, 01 Febrero de 2007, 11:55h )

    Hombre, se supone que si trabajas con MDA puedes reutilizar componentes sin más problemas, con Rose o Together.

    Claro, que si quieres algo libre,es mucho más difícil. No hay ninguna herramienta de ingeniería de software decente (todavía).

  • por JoJoC (22939) el Viernes, 23 Diciembre de 2005, 19:33h (#664967)
    ( http://www.adslvoipempresas.com/ )
    Alguien conoce Zope una plataforma de desarrolo en python? Creo que podría ser un punto de partida. Tengo mis dudas de que una aplicación "generada" con una herramienta GPL tenga que ser GPL. No creo que tenga que ser así necesariamente.
  • Una idea

    (Puntos:2)
    por El Pantera (19616) el Viernes, 23 Diciembre de 2005, 20:37h (#665020)
    ( http://barrapunto.com/ )
    Según lo que quieras, quizás podrías comenzar basándote en una herramienta como phpMyEdit [phpmyedit.org], que genera desde php formularios para manejar tablas MySQL.
    --

    "Si alabaras al César no tendrías que comer alubias" ->"si tú comieras alubias no tendrías que alabar al César"
  • Plantillas

    (Puntos:1)
    por Armagnac (9025) el Sábado, 24 Diciembre de 2005, 17:51h (#665354)
    ( Última bitácora: Sábado, 05 Enero de 2008, 22:20h )
    Yo tengo el mismo problema y lo que hice fue definir plantillas y parametrizarlas mediante un fichero xml. Ojo, tienes que definir las plantillas para casos muy concretos, si intentas hacerlas generales al final no te servirán para nada. El problema es que con este sistema hay que mantener el código manualmente. En cuanto a las herramientas yo uso ruby con erb (para "fusionar" el fichero de parámetros con la plantilla). Echale un ojo al libro "Code generation in action" de Jack Herrington (ISBN: 1930110979), yo saqué de ahí las ideas.
    --

    A los elefantes les cuesta mucho adaptarse, las cucarachas sobreviven a todo
  • por asertus (10084) el Lunes, 26 Diciembre de 2005, 14:58h (#665599)
    Hace bastante tiempo, y es tecnología española, www.care-t.com .

    Saludos

  • por etiorum (19379) el Lunes, 26 Diciembre de 2005, 14:37h (#665587)
    ( http://conosinsemilia.com/ )
    Creo que banksphere (bks) no es precisamente lo que esta sugiriendo ya que no es un metalenguaje.

    Banksphere es mas bien una metodologia de desarrollo propia de banesto en la que abstrae conceptos avanzados en pelotitas de colores que hasta un niño de parvulario podria emplear.

    Realmente es una implementacion enorme de java para desarrollo interno, separado en capas presentacion, logica negocio y acceso a datos, en las que solo puedes tocar bien poco para que el banco pueda respirar en cuanto a seguridad y forma de trabajo.

    De vez en cuando publico algo de banksphere aqui [blogspot.com] ya que me dedico a ello.

    Lo que opino de la herramienta, pues que sera de gran utilidad en un futuro, de momento esta muy muy verde. Gracias a buda que hace meses que apenas desarrollo ya que mi curro me orienta mas a la gestion del grupo de trabajo, planificaciones, estimaciones...
    --
    --- Con o Sin Semilia [wordpress.com] ---
    -- Blog sobre d
    [ Padre ]
  • 30 respuestas por debajo de tu umbral de lectura actual.