Discussions

News: Japple: New Open Source Web Application Development Environment

  1. Japple is an open source, rapid application development environment for building web applications and services. Built on the J2EE and open-standards, Japple provides a pre-built framework, template-based JSP approach, and more.

    Check out www.japple.org.

    Threaded Messages (24)

  2. now, what are all thes other guys (Struts, Turbine, Expresso, you name it..) doing wrong that yet another web application framework needs to be invented?

    I'll have a look at this one, anyway
  3. I agree that there seem to be alot of these webapp frameworks.
    <tongue-in-cheek>
    Perhaps what we need is a JSR or standard
    </tongue-in-cheek>
  4. Perhaps what we need is something nice.
    bye
    -stephan
  5. yeah, the way struts manages navigation between pages is far from being perfect. I guess there are rooms for improved mvc frameworks as the existing ones are usually awkward or counter-intuitive.
  6. So what would be in few words the main advantage of Japple?
    I think it has a relatively steep learning curve, so people need to spend time learning a proprietary framework, tied into the IDE. Why would people do that? Would the selling point be that it's really fast to develop new apps once you learn the framework?
  7. 1) The main advantage of Japple is that is lowers the bar to Enterprise Application Development. The only required knowledge for building apps is html, jsp, javascript, and sql.

    2) Japple does very well not to introduce any new concepts past Japple Managed Objects, and JMOs are essientally just a uniform way to name and organize all of your development artifacts.

    3) Japple is Open Source, _not_ proprietary. The source code is licensed under the GNU LGPL.

    4) Find out how easy Japple really is in just 30 Minutes!
    Download Japple
     and try the
    Japple Tutorial.

    Cheers,
    Bill Thompson
    Chief Japple Evangelist
  8. I've downloaded and performed some evaluation on Japple.

    While the tutorial looks simple, I found that just following it did not work.

    I created a new Project - Japple Tutorial - as requested and entered in a URL for the web application. This did not create a web application - I had to perform this task manually.

    I then tried to create a package and could not get this to work at all. No errors in the console or in the "IDE". Checking the error log I found the package creation was failing. I figured it probably didn't know where to be the JMOs, so entered the JMO file location and config file (copied this from the jappleide web app). This now allowed me to create a package.

    Once there I was pretty disappointed. There seems to be no notion of familiar constructs - such as JSPs and servlets. These are all hidden from the user. Instead there is the proprietary JMO structure for everything!

    These all seem to be stored in XML format (not in itself a bad thing) and generated dynamically. I don't think it even generates JSPs behind the scenes (none found in the tomcat work directory).

    All in all, pretty terrible and very buggy. It does not lower the bar, just moves it to a totally proprietary new location. Just because something is open source does not mean it is _not_ proprietary (in the words of Bill Thompson). It will only become so if people use it, and/or it becomes adopted as a standard through a standards body or the JCP.

    Dave
  9. Posted by Dave Tomkins 2002-02-05 12:01:21.0.

    >I've downloaded and performed some evaluation on Japple.
    >While the tutorial looks simple, I found that just following it did not work.

    Dave,

    From your note, it appears that you missed a crucial step, which is installing the tutorial.war app. When you open a new Project in the JappleIDE you have the choice of attaching to an existing app or working with the file system. The tutorial is designed to attach to tutorial.war app. If tutorial.war was not installed you would run into the problems you described. I've update the Tutorial to call more attention to this detail.

    Thanks for trying Japple, I hope you'll give it another shot.

    We've also setup a japple-tutorial mailing list to help folks having trouble running the tutorial.

    Thanks for the feedback!

    Cheers,
    Bill

    --
    William G. Thompson, Jr
    Chief Japple Evangelist | www.japple.org
    Saucon Technologies | www.saucontech.com
  10. The other frameworks you mention need a Senior Java developer to get anything done. Japple lowers the bar to Enterprise Application Development, the only required knowledge is HTML, JSP, JavaScript, and SQL.

    Also, Japple establishes a clean separation of concerns for interface designers, application developers, and programmers. Japple Templates are a unique way to code Java Server Pages without having to inline HTML markup. Java programmers create Japple Services that application developers can reuse across applications. Teamwork is more efficient with Japple.

    Take a look!

    Cheers,
    Bill Thompson
    Chief Japple Evangelist
  11. From looking at the tutorial it seems to me that Japple has some similarities to Enhydra XMLC, in that HTML is dynamically manipulated trough a DOM tree at runtime.

    I wonder whether this is not quite inefficient, as the HTML has to be parsed at and a DOM tree created in-memory. Does Japple employ compilation techniques like XMLC? Does it happen to use XMLC?
  12. Posted by Christian Sell 2002-02-05 03:51:20.0.

    >Does Japple employ compilation techniques like XMLC? Does it happen to use XMLC?

    Christian,

    Japple Templates use a combination of JDOM, JTidy, and a helper class for common DOM manipulations like populating form elements (<select>, <input>, etc.) and generating table rows. DOM fragments are cached for a particular amount of time and we have not run into any performance problems.

    Inspiration for Japple Templates came out of working with XMLC and client-side DOM. Japple gives you the best of both worlds however, since our templates handlers are just JSP files that you can reload in your browser to get compiled. The secret sauce is the Template JMO, which is how Japple knows what HMTL DOM to present to the JSP template handler.

    Japple Templates give you the power and elegance of XMLC with the easy and speed of JSP development.

    Cheers,
    Bill Thompson
    Chief Japple Evangelist
    www.japple.org
  13. Dear Bill,


        Can I use Japple with an EJB Container instead of its data access layer? I ask this because I didn´t find a tutorial in the Japple site showing how to do it.


    Thank you very much.
                   José Paulo Papo, from Brazil


    "Learning, learning, learning - that is the secret of jewish survival" -- Ahad A´Ham
  14. Posted by José Papo 2002-02-05 06:28:58.0.

    > Can I use Japple with an EJB Container instead of its data access layer? I ask this because I didn´t find a tutorial in the Japple site showing how to do it.

    Jose,

    We do not run like this, so your milage may vary, but... Yes, you could access EJBs in JSP to get and set data and then modify the DOM in the usual way. You could also write a Japple Service that wraps your EJB calls in a Service JMO, which you then include in a Page Definition.

    Cheers,
    Bill Thompson
    Chief Japple Evangelist
    www.japple.org
  15. Much more documentation is forthcoming. Any specific suggestions as to what needs to be made clearer are greatly appreciated!
  16. Posted by William Thompson 2002-02-04 23:19:17.0.

    The other frameworks you mention need a Senior Java developer to get anything done<
    What, incl Struts? A little bit of exaggeration there.

    As for "another framework?" *groan* responses- this is what capitalism is all about: choice, success and failure.

    saraba
  17. Japple does look like it has some nice features, not sure I'm willing to drop the jakarta Struts/Velocity stuff yet.

    As for the "Senior Developer" comment, I just don't believe it. Maybe on small scale projects where just some little/simple things are happening.

    Sure it'll probably get the job done (in terms of code that works), but I've yet to see a very large-scale/high-performance system that doesn't take a good deal of knowledge (as in senior developer knowledge) to get it to be just that. This is often *compunded* by code generators, not reduced. Tuning generated code is sometimes harder than tuning developed code. Maybe I'm wrong and Japple is revolutionary.

    Mostly the developers I know use code generators simply to avoid doing certain kinds of tasks (especially getter/setters!).

    For the most part, I still see acceptance of more "high-level" tools like Rational Development Suite and TogetherJ. They probably don't generate the end-to-end pieces of the app (never used Together), but they help manage the larger scope complexities of development throughout project life. On the other hand, they also cost wads of dough!

    Both this and Lowroad look very nice, and I'll give them a try when I have a chance.

    -Newt
  18. Posted by Jason McKerr 2002-02-05 10:06:46.0.

    > Japple does look like it has some nice features, not sure I'm willing to drop the jakarta Struts/Velocity stuff yet.

    If you have 30 minutes, try the Japple Tutorial.

    > As for the "Senior Developer" comment, I just don't believe it. Maybe on small scale projects where just some little/simple things are happening.

    A Japple Development Team always will need a least one Senior Developer who understands the fundamentals of web application development, and who can extend Japple with Japple Services, etc. However, the point is that all things being equal Japple allows you to tackle the same project with 1 Senior Java Programmer and 3-4 mid level Application Developers, as opposed to a team of 3 Java Developers and 4-6 Application Developers.

    >This is often *compunded* by code generators, not reduced. >Tuning generated code is sometimes harder than tuning >developed code. Maybe I'm wrong and Japple is revolutionary.

    Japple is _not_ a code generator. You development Japple applications using _your_ editor of choice and you create JSP, HTML, JavaScript, SQL, etc the way you normally would. The secret sauce is naming and managing how all these artifacts come together. Japple untangles the "Great Hair Ball" that most web apps become.

    Cheers,
    Bill Thompson
    Chief Japple Evangelist
    www.japple.org

  19. Alright! good answers. I will indeed give the Japple Tutorial a try.

    -Newt
  20. I gave the Japple tutorial a try and liked it quite a lot (although it was a disappointment not to be able to make it work on the JBoss+Tomcat combination right away).

    We are in sore need of capable and affordable development tools to lower the entry level of J2EE (by "we" I mean the developers of the IT department of the company I work for, but maybe could be extended to many other members of the J2EE community).

    Among the things I like about Japple:

    - Leverages the knowledge of SQL, without having to write JDBC code (most of our corporate programmers are more adept at SQL than at OOP programming).

    - Does not need the creation of zillions of classes just because you have tens of business entities.
      
    - Provides MVC separation in what seems a very convenient and productive way (although I don't know whether performance will suffer under load)

    - Applications written using this framework are still plain standard J2EE applications (despite all the JMO object definitions lying around)
      
    - Provides a simple but reasonable development environment to put together the different components.

    - It is Open Source.

    On the other hand, to be of any use I think Japple needs:

    - Documentation, documentation, documentation:
      - The first tutorial is OK, more are needed
      - A thorough applications developer guide
      - An in-depth architecture guide
      - Installation instructions for the most popular application servers (including JBoss+Tomcat, of course!)

    I for one will be watching closely the evolution of this baby!


    Fernando Olcoz
  21. Posted by Fernando Olcoz 2002-02-06 10:00:13.0.

    >I gave the Japple tutorial a try and liked it quite a lot
    >(although it was a disappointment not to be able to make
    >it work on the JBoss+Tomcat combination right away).

    Fernado,

    I would like to work with you on hooking up Japple to a JBoss+Tomcat installation. I am confident that you could run in such a senerio, although we usually just stick with our Data Access JMOs. If you are interested please shoot me an email at bthompson at saucontech dot com

    Cheers,
    Bill

    ps. We will have parts of the second lesson set up by early next week.

    pps. You aptly summed up both the problem we are trying to address as well as the key features Japple provides. Thanks!
  22. Is there any framework which allows dynamic HTML-based UI genertaion from all UI components defined/stored in database with required attributes?

    There should not be any JSP/HTML coding. Should be totally database driven.

  23. Posted by Rajesh Thakker 2002-02-07 01:49:59.0.

    >Is there any framework which allows dynamic HTML-based UI
    >genertaion from all UI components defined/stored in database
    >with required attributes?
    >
    >There should not be any JSP/HTML coding. Should be totally database driven.

    Rajesh,

    I am not sure I totally follow you. Could you expand a little more on what you are thinking?

    One of the things that makes Japple really cool is that the JMO definitions are all just XML files under the WEB-INF directory. So you can just check them into CVS along with the rest of your code base.

    I guess you could store the JMO definitions in an XML/Object Database or even a RDBMS of some sort, but I fail to see what that you buy you.

    Best Regards,
    Bill

    --
    William G. Thompson, Jr.
    Chief Japple Evangelist | www.japple.org
    Saucon Technologies | www.saucontech.com






  24. Too many framework? I think that's normal, although far from ideal. there is not such thing as "killer framework" that works for everything scenarios. a "standard" approach is born to be failed. besides web platform is a very difficult platform to master. as it always involve the balance of client v.s. server side. web is not designed for building applications, it is designed for publishing information.

    another thing is MVC model is a very abstract, open model. almost anything can look more-or-less like MVC.

    ben

    p.s. Strut is not good enough. it is clear that it is not designed from the ppl who understand web/UI applications.
  25. How is the validation is done in Japple? Is there search capability in database with this framework