Greg has posted 18 posts at DZone. You can read more from them at their website. View Full User Profile

Pivot: Java Framework for Desktop & Web Development

06.11.2008
| 17248 views |
  • submit to reddit

Pivot is an open-source framework for building high-quality, cross-platform applications that are easily deployable both via the web and to the desktop. It began as an R&D effort at VMware and is now being made available to the community as an option for developers who want to build rich client applications in Java.

Pivot applications are written using a combination of Java and XML and can be run either as an applet or as a standalone (optionally offline) desktop application. While Pivot was designed to be familar to web developers who have experience building AJAX applications using HTML, CSS, and JavaScript, it provides a much richer set of standard widgets than HTML, and allows developers to create sophisticated user experiences much more quickly and easily. Pivot will also seem familiar to Swing developers, as both Swing and Pivot are based on Java2D and employ a model-view-controller (MVC) architecture to separate component data from presentation. However, Pivot includes additional features that make building modern GUI applications much easier, including declarative UI, data binding, and web services integration.

Pivot isn't just another open source web toolkit - it is a full-featured, professional-grade development platform that is sufficiently functional to create a broad range of production-ready applications. We've done our best to include what we think are the most essential features for a 1.0 release, and we have tested as extensively as possible. However, we are looking to the Java development community to help us continue to expand upon what we have accomplished thus far. We need support from developers who are willing to start working with Pivot now, to help us identify issues, complete features, and create reference applications. We are excited about this platform, and we want other Java developers to be excited about it as well.

The following screen shots contain a small sample of the features currently available in Pivot:

Pivot buttons

Some Pivot containers

Pivot is currently being hosted at pivot.dev.java.net. We hope to see you there!

0
Average: 4 (1 vote)
Published at DZone with permission of its author, Greg Brown.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Jacek Furmankiewicz replied on Mon, 2008/06/16 - 9:45am

Can you explain what would I choose Pivot over Swing? What are the benefits?

Greg Brown replied on Mon, 2008/06/16 - 10:00am in response to: Jacek Furmankiewicz

Hi Jacek-

Take a look at some of the comments on the original blog entry - they go into some detail on this issue.

http://weblogs.java.net/blog/gkbrown/archive/2008/06/introducing_piv.html 

Greg

 

Jacek Furmankiewicz replied on Mon, 2008/06/16 - 10:14am in response to: Greg Brown

Looks interesting and is definitely an impressive effort.

Not quite sure though if it is better enough to make people abandon Swing. I see the lack of top notch native L&F support as your major hurdle #1 (and the Swing team has spent years trying to get that one right, often with abysmal results, as some of the most glaring bugs on Swing GTK+ can attest).

Any info on performance/memory consumption benefits vs Swing?

 

 

Jacek Furmankiewicz replied on Mon, 2008/06/16 - 10:24am in response to: Greg Brown

Also, does it use Java 2D font rendering or do you have an option to use native font rendering (like SWT)?

I find font rendering to be one of the most glaring differences between native apps and Swing.

 

Greg Brown replied on Mon, 2008/06/16 - 10:50am in response to: Jacek Furmankiewicz

>  I see the lack of top notch native L&F support as your major hurdle #1 

Admittedly, the current L&F is pretty basic. We'll be looking to update that in a future release.

> Any info on performance/memory consumption benefits vs Swing?

Hard to say without doing a side-by-side comparison. We don't currently have any hard numbers on this.

 

Greg Brown replied on Mon, 2008/06/16 - 10:56am in response to: Jacek Furmankiewicz

> does it use Java 2D font rendering or do you have an option to use native font rendering (like SWT)?

Pivot uses Java2D for all rendering. I would also like the option to use native font rendering. Currently, I believe it is only supported on the Mac.

 

Jacek Furmankiewicz replied on Mon, 2008/06/16 - 11:28am

Don't get me wrong...I am impressed by the fact you even attempted something like this.

 But besides a slightly better API (a claim I have not had a chance to verify, but I'll take your word for it), it seems you're really lacking any sort of "Swing killer" feature that would help someone choose Pivot over Swing.

At least SWT has some dramatic architectural and philosophical differences, so there is a clear set of disadvantages and advantages compared to Swing.

But I am not seeing such a compelling reason when it comes to Pivot. Also, how do you plan to support RIA type functionality (desktop FX, animations, translucency, video, etc, etc.) if you (presumably) can't reuse any of the platform work that is being done to enable this (e.g. Project Scenegraph).

Do not mistake this in any way as an attack on Pivot, I wish your project all the best...just some hard questions.

 

Greg Brown replied on Mon, 2008/06/16 - 12:31pm in response to: Jacek Furmankiewicz

> besides a slightly better API (a claim I have not had a chance to verify, but I'll take your word for it), it seems you're really lacking any sort of "Swing killer" feature that would help someone choose Pivot over Swing.

One significant distinction is Pivot's markup language, WTKX. This allows developers to be much more productive than when wiring up UIs by hand. Pivot's simpler API should also translate to increased developer efficiency.

However, as I mentioned in one of my comments on the blog, Pivot was not strictly designed as a replacement for Swing (though it can certainly be used that way). It may actually be more useful to non-Swing developers, especially those currently working in AJAX. We tried to address the needs of multiple audiences when designing Pivot.

> how do you plan to support RIA type functionality (desktop FX, animations, translucency, video, etc, etc.) if you (presumably) can't reuse any of the platform work that is being done to enable this (e.g. Project Scenegraph).

Both JavaFX and Pivot use Java2D under the hood. Unless Sun has done something to tie JavaFX intrinsically to Swing (which I hope they have not), Pivot applications should also be able to take advantage of it. We're planning to look at this more closely at some point in the near future.

Greg Brown replied on Mon, 2008/06/16 - 12:47pm in response to: Jacek Furmankiewicz

Another advantage that may be worth pointing out is that Pivot is an open platform. Swing's source may be open, but its APIs are not. In contrast, we actively encourage developers to help us make Pivot better.

 

Jacek Furmankiewicz replied on Mon, 2008/06/16 - 12:52pm in response to: Greg Brown

Point taken :-)

Jim Lombardo replied on Sat, 2008/06/28 - 9:29am

Just got through reading the tutorial and articles about Pivot. Very impressive work! My only concern at this point is the web deployment model using Applets. The waiting time for a large app may be a bone of contention for users. Even your small demo apps force me to wait 10-15 seconds, and I'm on a high-bandwidth connection. What are your thoughts about this?

Michael Manske replied on Sun, 2008/06/29 - 10:38am

Looks very interesting. Currently i'm trying to use it for a little real-world application. Unfortunately the documentation is very incomplete. I see regular activity on the codebase but no activity on the tutorial. I'm pretty sure that Pivot could get a noteworthy and active user base if the documentation would get more priority. It just takes too much time to get things done with Pivot because even the tutorial sources don't cover enough of Pivots functionality. Beside of that Pivot is definitely an impressive framework.

Greg Brown replied on Mon, 2008/06/30 - 7:31am in response to: Jim Lombardo

Hi Jim,

I suspect that the poor load time may be a hosting issue. The java.net site doesn't provide true web hosting - the demo and tutorial applets are actually hosted in Subversion. When run from an actual web server, response time is much better. 

Greg

 

Greg Brown replied on Mon, 2008/06/30 - 7:41am in response to: Michael Manske

Hi Michael,

Apologies for the lack of documentation updates - we'll be focusing more on that over the next couple of weeks. Many of the recent code updates were in support of a new demo that will serve as the basis of a "practical" tutorial example (the Stock Tracker application). The tutorial itself is not done yet, but you may find the source code useful:

https://pivot.dev.java.net/source/browse/pivot/trunk/tutorials/src/pivot/tutorials/stocktracker/ 

It demonstrates a number of Pivot features that are likely to be used in any "real" application:

  • WTKX
  • Event handling
  • Web queries
  • Data binding
  • Localization

 Greg

 

Greg Brown replied on Mon, 2008/06/30 - 7:44am

By the way, the discussion forums are a great place to post your questions about Pivot:

https://pivot.dev.java.net/servlets/ProjectForumView

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.