Seam Forge – interview with project lead Lincoln Baxter, III

Seam Forge – a core framework for rapid-application development in a standards-based environment.

Q: Hi Lincoln, thanks for your time. What’s cool about Forge?
A: Hi Michael, thanks for your interest in Forge! Special, that’s a tough one. It’s my project so it all feels a little special, but overall I think there are two big differences we’re going to see with Forge as opposed to other rapid application tools like it. The first is the fact that it is technology agnostic. Sure, it’s written in Java, and it primarily operates on Java projects right now, but it could be used on any technology, support any build tool, and even do things that are completely un-related to web development. I for one, plan on using it’s plugin system to control my home automation system. And that brings me to the other big thing that makes Forge special – the plugins themselves. Plugins are so easy to write that I expect people will be writing plugins for things we couldn’t have possibly imagined.

Q: What’s current state?
A: Forge is currently on the fourth Alpha, but has been under development for over a year and is quite stable and powerful already. We are working at this slower pace because we want to give our community time to influence the design of the tool itself. In short, we want to do this the right way, and we don’t want to make mistakes that will limit our ability to grow in the future.

Q: It is Seam centric?
A: No. When we started this project early on, it was clear that we had something more than just “Seam Gen 2” – we had a chance to take an idea that started roughly 5 years ago, and was seam-centric, and apply it to a much larger problem domain. One of the reasons I like working at JBoss is that their goal of solving broad problems fits with mine. We didn’t want this to be another throwaway project; this one is here to stay for a long time.

Q: Why is it called “Seam Forge” if not only focussed on Seam?
A: That’s a tough question to answer. All I’ll say is that we loved the name “Forge,” and because of the trademarking system, we didn’t have many options. Seam 3 is a set of open-extensions to Java EE, and is is focused on solving developer problems, making development easier. That’s what Seam Forge is all about, so in a sense, you can think of the Seam community as trying to close the gaps in developer productivity – that’s why Forge fits in well.

Q: Is it easy to extend? Is there sth like central plugin repo?
A: Forge is actually incredibly easy to extend. As a matter of fact, in many of my presentations I do a quick overview of how to create a plugin. It starts with “new-project”, “plugins-setup”, and then finally “new-plugin.” Once you’ve done that, you have a project that can be installed as a plugin using “plugins source-plugin”. We try to be very straight forward because barriers to entry are your worst enemy; that’s the problem Forge is trying to solve for Java EE an other technologies, and also the problem that Forge must solve for itself – reducing barrier to entry. I’d love to hear what people think about this, if we’ve been successful, so by all means, we want to hear your feedback.

Q: What is in pipe?
A: We have a bunch of great ideas coming down the pipe, actually, and many of them have come from the community, which is a great feeling because it shows us that we are doing something valuable, and something that people want and are benefiting from. Probably one of the coolest, “wow” kind of things we are working on was an idea from Ian Hands, a Java EE developer for Red Hat’s customer portal. He suggested using Git to provide the “undo” and “redo” functionality in Forge. It actually makes a lot of sense because we already knew we needed to solve this problem, and Git is already embedded into Forge. We’ll just create a forge_history branch and use that to track changes.

Q: Last question, Lincoln: When it’s scheduled to become final?
A: There’s no Final date set right now (I’d guess somewhere around October or November 2011), but don’t let that stop you from using it! This isn’t an application server where you’re going to deploy production applications and lose money if things go wrong. Forge is a tool, and doesn’t do anything that you can’t do yourself or change later. So with that in mind, there’s no reason you shouldn’t use Forge to get started quickly, or enhance an existing project today! Write plugins, get involved!

Lincoln Baxter, III is a Senior Software Engineer at Red Hat, working on JBoss open-source projects; most notably as project lead for Seam Forge. This blog represents his personal thoughts and perspectives, not necessarily those of his employer. He is a founder of OcpSoft, the author of PrettyFaces: a URL-rewriting tool for Servlet and Java EE, and an individual member of the JavaServer™ Faces Expert Group. When he is not swimming, running, or playing Ultimate Frisbee, Lincoln is focused on promoting open-source software and making web-applications more accessible for small businesses, individuals. You can follow his latest work on twitter: @lincolnthree

This is kind of funny statement that says “Sure, it’s written in Java, and it primarily operates on Java projects right now, but it could be used on any technology, support any build tool,” .

Just go to a Dot Net developer and ask them to use Forge and wait for their reply. I don’t understand why these type of foul statements are given. When they invented Hibernate, they said it could be used by any technology and then they introduced NHibernate. What a buggy tool that was.

Listen Lincoln Baxter, no body is going to use forge except the Java/Jee Developers. Be sure when you give such a useless statement (which only you believe) ..

There is nothing tying Forge to Java projects other than the fact that it was *implemented* with Java. That is where the restrictions end. Eclipse is written in Java, and it still works fine on PHP or C++ projects. Forge is no different.

We have no reason to supply support for .NET out of the box. That is why there is a Plugin API / and core SPI which you are free to extend it as you like.

Please feel free to look at the code and at the abstractions provided. If you feel we missed something technically, or have done something that would prevent you from doing so, we welcome feature requests or bug reports: https://issues.jboss.org/browse/SEAMFORGE