My Persistent Objects 1.0 released

Discussions

News: My Persistent Objects 1.0 released

  1. My Persistent Objects 1.0 released (27 messages)

    Ribe Software S.L. has released My Persistent Objects 1.0. From the object model of your application, My Persistent Objects (MPO) generates the business objects, persistence tier and all needed configuration files. It also can generate unit-testing code. The generated code has been designed to be scalable, reusable and easy to maintain. The code follows the best practices of each platform and technology. The code is not intrusive and doesn't depend on MPO, so you can leave using MPO at any time. The functionallity of MPO is divided into modules. Each module generates code for a different programming language or technology. For example, there is a module that generates code based on Java and Hibernate; another module generates POJOs and a SQL script with all the needed "create table" statements; another module generates the persistence tier using JDBC, etc. What do you think of My Persistent Objects?

    Threaded Messages (27)

  2. What do I think?[ Go to top ]

    Well, fer starters, this is exactly what the J2EE community needs. Hopefully, we'll see something along the lines of 'My Presentation Objects' released in the near future as well. The registration and credits system at http://www.ribesoftware.com/download.do also deserve special commendation and praise. You wascals you!
  3. Future modules will generate code for Swing, SWT, or web applications (including JSF and other frameworks). These modules will generate reusable forms and dialogs. We are working on it. We are also planning support for J2ME technlogies.
  4. You guys are gonna be rich! Keep up the great work! You wascals you!
  5. Hibernate Tools[ Go to top ]

    Hibernate tools already does the Java, Hibernate mapping, etc code generation. This seems to just add a pretty gui on top of the existing free tools.
  6. Not just for Hibernate[ Go to top ]

    This tool not only generates Hibernate mapping fields or DAOs based on Hibernate. It also can generate JDBC code.
  7. This is quite possibly the dumbest thing I've ever seen. Ever.
  8. Boo.[ Go to top ]

    Ack. I'm sorry, if I don't have anything nice to say, I probably shouldn't.... But that appears to be the most ridiculous thing I've ever seen. I don't even want to go into the reasons why, or I'd spend the next 2 weeks responding to this thread. But seriously...that CANNOT be the way the Java community goes with software development. Sorry, all due respect, but that is an absolutely horrible way to develop software. Clinton
  9. Re: Boo.[ Go to top ]

    But, in the end, is this really any different than paying for an annual MSDN subscription? I agree, a dumb idea all around.
  10. welll[ Go to top ]

    But, in the end, is this really any different than paying for an annual MSDN subscription?

    I agree, a dumb idea all around.
    No, typing the umphteenth setter/getter combination is great coding. I have no problem with something taking the coding to a higher level, as long as I can always go in and fiddle with it myself. After all, what I really want to do is specify that my "person has a name" and then apply the appropriate logic to the appropriate tier (web, AJAX, Swing, Service, Business Model, MOM, Database, whatever). And let's not forget that "MSDN" in the end does a fairly good job in creating applications. So in my opinion the real question is: after I have generated all this stuff, what happens when I start fiddling with it?
  11. Re: welll[ Go to top ]

    Apparenlty if you are changing field names, etc. they don't charge you extra, but if you want to make changes you have to pay more. I'm not complaining about tools like this. Great, go for it. If you prefer mousing around to write a simple POJO, enjoy. But paying for each time you run the code generator? Hold on while I complete my pets.com and webvan orders...
  12. Credits[ Go to top ]

    Please, read the section credits and modules. You buy credits once and then you can use the application several times. Each time you run the generator a proportional amount of credits is charged into your account depending on the changes you made. And if you have made just little changes you can run the generator by no cost.
  13. code generators are fine, but what many lack is the ability to plugin custom generators. Say I want all the classes generated from UML to add my extra bits, it seems rather silly to make developer manually go in and fiddle with the code. It would be better to allow users to plugin and add the bits they need. To be fair, not many model compilers for either UML or XML Schema do that. The only one that I am aware of is my own XML Schema compiler which does allow users to plugin their own stuff. my bias 2 cents. peter
  14. "No Silver Bullet" by Fred Brooks has a great section on code generation. Every tool has its time and place, and code generation is definitely something every developer should have in their toolkit and not be afraid of using--when it makes sense. In general, though, code generation is a design smell. Sun should have introduced syntax suger for reducing the amount of "getter/setter" methods with no real body (and *shame* on MS for not only not doing this, but make the syntax for getters/setters even more wordy in C#!). Using annotations for most things is a huge benefit as well. The fact that the only real way to build a system based on UML is to plug in a code generator should speak volumes.
  15. "No Silver Bullet" by Fred Brooks has a great section on code generation. Every tool has its time and place, and code generation is definitely something every developer should have in their toolkit and not be afraid of using--when it makes sense. In general, though, code generation is a design smell. Sun should have introduced syntax suger for reducing the amount of "getter/setter" methods with no real body (and *shame* on MS for not only not doing this, but make the syntax for getters/setters even more wordy in C#!). Using annotations for most things is a huge benefit as well. The fact that the only real way to build a system based on UML is to plug in a code generator should speak volumes.
    I don't believe that code generation necessarily means "code smell". Say I want to make sure that when fields are updated, an event is sent out to the listeners. Even in .NET, one would need to change the generated code. Say I connect to SqlServer and have VS.NET generate the classes. The old XSD.exe generated classes that are very simple, so it forced developers to either write their own XML Schema compiler or manually edit the classes. I have a more detailed explanation here. http://dingo.sourceforge.net/comparison.shtml peter
  16. I don't believe that code generation necessarily means "code smell".
    I would definitely say that code generation means "design smell". It means you needed to generate reams of code that shouldn't exist if you can help it. It means more code to test, debug, maintain, load into memory, etc. A good design reduces the amount of code that is needed, it doesn't make the automation of man hours a necessity.
    Say I want to make sure that when fields are updated, an event is sent out to the listeners. Even in .NET, one would need to change the generated code.
    Or I could designed my class to an interface and use a proxy that sends events to listeners before/after forwarding to the actual method. Or, in the event that I didn't have an interface and I used something like Spring or AspectJ or just straight CGLIB in order to create a proxy on a class and do the same thing. I wrote the event messaging and listener registration code once, tested it once, only have to maintain it in one place.
    Say I connect to SqlServer and have VS.NET generate the classes. The old XSD.exe generated classes that are very simple, so it forced developers to either write their own XML Schema compiler or manually edit the classes. I have a more detailed explanation here.
    Microsoft is king of code generation design. It goes all the way back to MFC (and probably earlier). None of it's good. In general, code generation means you need a higher level of abstraction. Where I have found code generation to be useful is when the "code" is a command language that needs to be fed into some processor. A good example is generating SQL for inserting or deleting lots of records rather than issuing a set-based insert or delete statement on an OLTP system.
  17. It means more code to test, debug, maintain, load into memory, etc.
    What if the generated code is easy to test? What happens if the model changes rapidly and the project lead gives you an XML Schema or UML diagram. I"m not saying it's a good way to develop, but it is how some shops work.
    Or I could designed my class to an interface and use a proxy that sends events to listeners before/after forwarding to the actual method. Or, in the event that I didn't have an interface and I used something like Spring or AspectJ or just straight CGLIB in order to create a proxy on a class and do the same thing.
    All good points. Many projects do that and it's totally valid in my mind to use AOP techniques to automatically add byte code. Whether it's easier for the developer is questionable though. Depending on who you ask, the answer/opinion might be different. There's all sorts of code generation. I agree that contract by interface is a good pattern to use. That's one of my complaints of Microsoft's XSD code generation approach. I like the JAXB approach better, but that can also get a bit heavy at times. If everyone working on a project was a hardcore programmer, I'd be inclined to agree with you code generation "smells". Since reality is that projects include leads, project managers, analysts and CTO's, not everyone is going to be most comfortable with code. Some people involved in the project might want to use a tool like UML or XML Schema. peter
  18. At least make it a plugin[ Go to top ]

    The notion that this kind of tool is useful should raise some questions about the current state of Java as an application language. If this *is* useful, shouldn't it be an IDE plugin? You mean I have to start *another* app? At least it doesn't require an XML config file... or does it? God help us all.
  19. I think not[ Go to top ]

    At the beginig that was our idea. But, think, if this tool *is* really useful you will just use it for a few minutes. You will have your persitence tier implemented and then you will code the rest of your application in your IDE. All that I want to say is that you won't need to use this tool and your IDE at the same time. If your object model changes you maybe will use MPO again. This is not painfull thanks to the "diff viewer" that lets you compare your actual code with the code that is going to be generated so if you have made changes you can save them like in a "cvs update". But, again, you don't need to use this tool all the time. You use it for a few minutes and then when you are finished you go to your IDE and start coding.
  20. don't mean to ruin your day[ Go to top ]

    And what if I just make a bunch of 3% changes? Free code generation for everyone!
  21. Changes are accumulative[ Go to top ]

    If you make a 3% of changes, yes, free generation. And then, the next time you make also a 3% of changes, ┬┐free generation? No, I'm sorry, it is a 6% of changes, they are accumulative.
  22. Re: Changes are accumulative[ Go to top ]

    How about this one: I wrote my pojos and used hibernate annotations and then used hibernate tools as part of my build script to generate my DDL. I only had to write my code once inside my IDE and I could type it and never really had to touch my mouse. My IDE was even nice enough to fill in the simple things like import statements. Oh, and that was all for free. So then I refactored a bunch of my code. Probably a good 25% change (how do you measure that, anyway? LOC? Let me introduce you to my boss, he embroiders his initials, PHB, on his sleeves...). And I just re-ran my ant script to regenerate my DB. And it was free. My IDE even has a plugin that will reverse engineer a UML diagram in case someone decides that that's "necessary". And it's free.
  23. Ribe Software S.L. has released My Persistent Objects 1.0.

    From the object model of your application, My Persistent Objects (MPO) generates the business objects, persistence tier and all needed configuration files. It also can generate unit-testing code.

    The generated code has been designed to be scalable, reusable and easy to maintain. The code follows the best practices of each platform and technology. The code is not intrusive and doesn't depend on MPO, so you can leave using MPO at any time.

    The functionallity of MPO is divided into modules. Each module generates code for a different programming language or technology. For example, there is a module that generates code based on Java and Hibernate; another module generates POJOs and a SQL script with all the needed "create table" statements; another module generates the persistence tier using JDBC, etc.

    What do you think of My Persistent Objects?
    What is the difference with AndroMDA?
  24. Easier[ Go to top ]

    It is easier to use.
  25. Other tools[ Go to top ]

    Hibernate tools does a great job in this area. Its well worth the money :-). Alternatively, if you want more of a GUI from end, then you can try the old man of the block, Middlegen (and Middlegen IDE). Many output targets including Hibernate, EJB 2, EJB 3, XMI (UML diags), and GUI code. Create your own plugins and easily customise templates. Its also free.
  26. Re: Other tools[ Go to top ]

    Yes hibernate tools rock. And the price/performance ratio is infinity !
  27. Holy Crap! What a brilliant business model to offer a low startup cost service to cash happy newbies. So Web 2.0. Maybe ibiblio can charge for maven respository hits now! Let's hope you have a marketing budget that can out-google: WSAD, Middlegen, WebLogic Workshop, XDoclet, MyEclipseIde, JBoss IDE, NetBeans, Java Studio Creator, iBatis, JDO and books on EJB, EJB3, Spring, Hibernate, etc... Say I want to tweak my model in three years. Will Ribe be in business. Will the URL 404. 500!
  28. Ok, I can see how this could be useful to some folks in some projects. However, I'll never use it. There's a couple problems with the whole billing scheme. First, I can just see the management reaction if I proposed using a development tool that phones home. I imagine the traffic between this tool and it's home server is encrypted making it impossible to confirm what it is sending home. I'm sure you're all trustworthy people, but that isn't really a compelling argument to corporate suit-types. Second, software tools are budgeted as a one-time type of cost, either per-dev or per-seat, or something along those lines. It's paid for and it's done. No bean-counter is going to be real keen on a tool with a perpetual, unpredictable per-project cost. My advice is to slap a price-tag on it and be done with it. Otherwise, you can pretty much write-off a large chunk of your customer-base.