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.

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?

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.

>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.

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.

>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.

> 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.

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.

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.

> 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.

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 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!

>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.

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.

TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations technology projects - with its network of technology-specific websites, events and online magazines.