Login Barrapunto
Generador de aplicaciones libre
editada por fernand0
el 23 de Diciembre 2005, 11:16h
desde el dept. carta-a-los-reyes-magos-programadores
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.
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)( 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)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)( 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)Yo conozco...
(Puntos:2)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)JAG: Java Application Generator
(Puntos:4, Informativo)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)( http://barrapunto.com/ )
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
No sé si será lo que buscas
(Puntos:2, Interesante)( Última bitácora: Martes, 17 Enero de 2006, 20:39h )
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.
super programa que a su vez hace los programas...
(Puntos:1)( http://barrapunto.com/ )
¿Licencia?
(Puntos:1)( http://barrapunto.com/ )
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.
mda y proceso unificado
(Puntos:2)( Ú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).
Plataforma o Metalenguaje
(Puntos:1)( http://www.adslvoipempresas.com/ )
Una idea
(Puntos:2)( http://barrapunto.com/ )
"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)( Última bitácora: Sábado, 05 Enero de 2008, 22:20h )
A los elefantes les cuesta mucho adaptarse, las cucarachas sobreviven a todo
Ya se comentó una herramienta para esto...
(Puntos:1)Saludos
Re:Esto ya esta inventado
(Puntos:1)( http://conosinsemilia.com/ )
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