Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta. developer.okta.com

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

My Review of Java Studio Creator (a.k.a. Rave)

I attended a Rave Demo at Sun in Broomfield today. The meeting actually had two parts - the first hour was a marketing schpeel about Sun's Enterprise Java System and the second hour was a demo of Java Studio Creator. The first hour was boring and very marketing esque - they did have an interesting price point though - $100 per employee. This is small business friendly, which is nice to see.

The Rave (a.k.a. Java Studio Creator) Demo was when things got good. Here's my notes from Dan Robert's presentation, followed by my impressions and comments. Dan is the Product Manager for JSC and was seemed to be very in tune with the tools marketing (i.e. all the good stuff from Intellij and Eclipse - and how JBuilder sucks).

What is it?

  • New Java Development Tools initiative
    • For the corporate developers who write code, but don't understand all of the complexity of J2EE and just need to get their job done.
  • A full fledged Java IDE
    • Visual Design Tools, 2-way editing, Editor, Debugger, Repository Management, and Project Management
    • Cool new Look and Feel
  • Complementary to NetBeans and Java Studio
    • Even Enterprise developers can use it for Rapid Prototyping
    • Use Java Studio or any other tool to add persistence layers (heh, this is b/c they think that persistence can only be EJBs ;-))

What does it do?

  • Quickly builds web applications that solve time-critical, real world problems
    • Complete web application creation for departments, workgroups and businesses of all sizes
    • Focus on easy to understand, event driven coding model
    • Simplifies access to existing infrastructure
    • All Java-standards based servers, all databases, all Web services, all desktops
    • Their main goal is to do web applications well, they'll catch up with the rest later

Standards-based solution for all developers

  • A development solution based on 100% Java standards
  • Delivers "Write Once, Run Anywhere"TM benefits: portable apps, portable developer skillsets
  • Quickly solves time-critical app development needs
    • Drag and Drop, rapid visual access to databasess and web services
    • consistent UI look/feel/behavior across all apps

Visual features to speed development

  • Palette for widgets, custom graphics, code clips, etc...
  • Query Editor

Simplified Access to Existing infrastructure

  • Use any JDBC Compliant Database (3.0)
    • Drag in and automatically create DB connections to data-aware components
  • Web Service Consumption
    • Easily pull in existing web services from Enterprise wide solutions or business partners

Java Studio Creator Roadmap

  • Hammerhead:
    • 2-tier dynamic content web applications based on JSP and JSF with Page Flow design tools
    • Releases: Early Access Spring 04 (today!), FCS Summer 04 (at JavaOne)
  • Thresher:
    • Minor Update Release
    • Focuses on Ease of Development and Stability
  • Mako
    • Extended Client Support

Download today from http://www.sun.com/jscreator. OS X version will be available shortly after the release (JavaOne).

After the PowerPoint, Dan started into the Demo. The first thing I saw that was cool was that when he clicked on the "Run" button, it actually deploys the app and opens the browser to run it. What you see in the browser looks very similar to what you see in the IDE. The IDE looks very simple. My current client went with me and he remarked that it "looks a lot like Eclipse."

The IDE has lots of palettes, and the UI essentially looks very clean. The pallets can be docked just like in IDEA - which I like. It looks a lot more like a native Windows application than it does like Swing. Here are the palettes it has:

  • Server Navigator
    • Data Sources
    • Web Services
    • Deployment Servers Palette
  • User Defined
    • JSF Standard Components
    • JSF Validators / Converters
  • Property Sheet
  • Project Navigator

Dan then dragged a drop down component and a table component onto the page. Secondly, he added a stylesheet and it visually changed the background and fonts on the page. I asked him if there was an imbedded browser. He said they took a look at using Mozilla, but it was too much and apparently one of the "real smart" engineers wrote the embedded browser component from scratch. Dan said it was the same guy who wrote the demo from scratch in 2 minutes at JavaOne last year. The thing I found very cool was that the HTML that is written into the JSP is XHTML - none of this Netscape 4.x support. Fuck Netscape 4.x - I'm glad Sun had the foresight to drop support for it.

After adding the stylesheet, Dan used the Data Sources navigator to grab a table and drag it to the drop-down. Then he did the same for another table and the data grid. Using the Visual SQL Query Builder (which looks a lot like M$ Access) he linked two tables and added a new column from a 2nd table to the grid. He then showed us that JSC has pretty good support for 2-way editing. Edit the code, the visual representation changes. Edit the visual, the code changes. This seems to be a big problem with WYSIWIG editors, especially when it comes to dynamic webapps. It appears that they've done a pretty good job to solve this.

Next he showed us some cool features of the components. For the table, there is an "enable paging" checkbox - and for the drop-down, you can right-click and select "auto-submit on change." He then set a couple of converter types on the drop-down and had to hand-code the event handler for the drop-down. Two lines of very simple code and he was done. The code was simple enough that you could have guessed the syntax. Code completion popped up nicely as well. Apparently the JSF coding style is that each page (JSP) is backed by a Bean that contains different event handlers. The code looked pretty simple and all the data was retrieved via RowSets.

Bill Dudney was there and asked about testing tools (i.e. Cactus or JUnit). Dan's response was that these are usually used by more advanced Java developers and there's talk of it, but nothing has been done yet. Now he pulls up a very cool page navigation creator which he uses to drag and drop buttons and links to point to different pages. Then someone asked about cost - and here's what makes it great. Under $300. They also hope to have lots of add on components for JSF by JavaOne. Unfortunately, there's no tooling for building JSF components in Java Studio Creator. For more information checkout http://developers.sun.com/jscreator.

The main reason I really like Java Studio Creator was that you literally never had to see any JSF code - and you get all of the features I like to use in webapps. Furthermore, I've been training a couple of guys all week on JSPs and using JSTL's SQL tags to do CRUD on a database table. While it's simple stuff, since they've never done web development before, it's a bit advanced. I'm sure their eyes will glaze over tomorrow when I start showing them how to write JUnit Tests, DAOs and how to use Hibernate to CRUD an object. They'll probably fall asleep by the time I show them how to wire the DAOs to Hibernate using Spring. When they saw this demo today - there eyes lit up and they got inspired to do their projects again. It looks easy for them now. All they need is a JDBC 3.0 driver for DB2 and they should be able to rapidly develop webapps with Java Studio Creator. I don't blame them for wanting to use this tool - it greatly simplifies things.

After the meeting, I asked Dan about transactions and if it was possible to use Hibernate instead of the RowSet stuff. He said that since JSC is based on NetBeans, you could probably write a plugin to use Hibernate instead of RowSets. As far as I know, the main reason you'd use Hibernate is for caching - but rowsets probably have that too. I know that the spec lead for JSF is talking to the Spring developers about JSF-Spring integration, so maybe that will be a future option as well.

Another thing that's not currently supported is the use of great technologies like Tiles or Sitemesh. Sitemesh integration would likely be pretty easy - you'd just never see your decorated UI in the IDE. Tiles is definitely something on the roadmap, but they don't have a solution yet. Dan indicated that using "includes" in your JSPs should work just fine - rendering in the IDE as they would in your browser. Good stuff - I hope we start using it at my current project - I think it'll do wonders for productivity. Since it's based on standards (JSF and RowSets) - the generated code looked pretty clean too.

Posted in Java at Apr 08 2004, 10:12:34 PM MDT 20 Comments
Comments:

First I discover there is a Struts for <em>Dummies</em>, now Sun are talking about dumb Enterprise developers. I think somebody's trying to tell me something ;-)

Posted by Steve Raeburn on April 09, 2004 at 01:08 AM MDT #

Matt, Thanks for reviewing this, until now I've been avoiding it. So I downloaded and gave it a bit of a test drive. At first glance at the VERY LEAST this sucker is a very very good layout editor indeed. you could definitely whip out a bunch of jsp pages with supporting beans in no time. I like that it uses styles for layout positioning, no crazy table stuff. Further looking at the source of the JSP and the corresponding java file, you could fairly quicly change the jsp source to work with Struts-based tags, and change the jsp class to be used for a Struts form, so most of the coding is there. Since most of the fields in the form would map to business objects, you can reuse it there too. So while I don't think I'd quite use this yet for my day to day stuff, maybe even ever, I would definitely use it for what I consider to be the most painful part of our web development process... layouts and form interaction. Thanks again as usual. R

Posted by Robert S. Sfeir on April 09, 2004 at 06:42 AM MDT #

Thanks for the very detail review of the presentation. I am really bummed that I missed it because it sounds like they were really able to do a lot more with it than I have been able to do. Maybe it is time I download a newer version

Posted by Kris Thompson on April 09, 2004 at 07:40 AM MDT #

RowSet (aka JDBC) should not be used for web apps. One should use a DAO (Hibrenate/iBatis, etc.) . One work arround is to use one of the caching JDBC drivers. Too bad I do not do HTML any more, I only do browser side applications talking to DAO/s (aka RIA). .V

Posted by Vic on April 09, 2004 at 08:38 AM MDT #

Thanks for the review - I just HAD to try it out and it's awesome. Even though I'm a dedicated Eclipse user - I'll use this thing just for paining and layout. Thanks for your help.

Posted by Grego on April 09, 2004 at 10:05 AM MDT #

Hi All, Thanks for checking out Creator. By the way, a lot of our developers use Macs, so you can expect the Mac version to rock. I happen to run XP. Other folks on different Linux flavors too. We try to have a good mix throughout the team. It's EA so if (when) you see some bugs help us out and send some feedback. (See the help drop-down). Also among many things I'm into UI design. Drop me an email if you have some ideas. - Steve Fleming Creator Software Engineering

Posted by Steve Fleming on April 09, 2004 at 12:31 PM MDT #

Matt has just written up some notes about Java Studio Creator. After the first read, I shook my head and read it again. It seems to me, and I'm really not being biased, that it is nothing more than an incomplete version of WebLogic Workshop. Am I wrong? Unfortunately, I cannot try it myself. Daniel points out that OS X is not supported. Would anyone out there care to point out the differences. Besides the obvious one that is, which is that WebLogic Workshop is really targetted at WebLogic only. (poor man's trackback: rest here: here)

Posted by Jon on April 09, 2004 at 01:30 PM MDT #

Is it possible to add own JSP tags to the palette? currently we are using Coldbeans (http://www.servletsuite.com) and it would be good to keep them there

Posted by Dan Novik on April 09, 2004 at 04:27 PM MDT #

The $100 price point is a great price for a small shop, we received the same presentation just last week. The only problem being. We're a big bank with 6000 employees. After the meeting, the CIO said:
"Well, 600000 / year, guess we don't go with sun then"

Posted by Michael Koziarski on April 09, 2004 at 05:00 PM MDT #

Jon - I went to a Workshop/NetUI demo this week. I wasn't impressed. It seemed like it was just trying to hide the complexity of Struts - while still allowing you to use Struts if you want. While this may be powerful, it just didn't entice me at all. It also had the concept of components, but it seemed like you were tied to WLS. I know they have a conversion kit for Tomcat, but - like I said, it wasn't impressive.

To be fair, the demo centralized around talking about the technology, rather than showing us anything - so that could have had something to do with my bad impression. I asked the guy if an experienced Struts user would get anything from NetUI and the presenter said "probably not." I don't know that Creator is much better for the experienced developer, but it will probably make inexperienced developers more efficient. Also, they'll write standards compliant code (XHTML, CSS 2, JSF, RowSets), which is most likely a Good Thing<sup>TM</sup>.

Posted by Matt Raible on April 09, 2004 at 07:03 PM MDT #

Matt, nice review. I've been playing with JSC since the technology preview, and I think it's going to be a great product. One question: why do you think JBuilder sucks? I've been using it for the past few years, and I've looked at both WSAD and IDEA, and I've happily stuck with JBuilder. I also noticed that IntelliJ is adding all of these features that JBuilder has had for years. Am I missing something?

Posted by Kito D. Mann on April 12, 2004 at 12:06 PM MDT #

I didn't say "JBuilder Sucks" - Dan just implied it. To be honest, I've never used it for more than a day, so I'm woefully unqualified to say it sucks. At my last project, however, they had <em>standardized</em> on JBuilder for development. Who knows why - it was terribly slow to start (I guess they all are though) and it "forced" a lot of things upon you - i.e. directory structure, Struts version, etc. I've always liked Eclipse and IDEA because they've never imposed anything upon me or got in my way.

I'm an HTML developer at heart and I used HomeSite for my Java development for years - so I still have a hard time relying on an IDE for anything. For most of my compilation, testing and deployment - I still rely on command-line Ant.

Posted by Matt Raible on April 12, 2004 at 12:22 PM MDT #

Interesting review. But you guys should really take a look at what MS does from time to time. All this and more has been available in VS.NET for more than 3 years. Not to mention the free WebMatrix...

Posted by BLR on April 12, 2004 at 12:31 PM MDT #

BLR, That's all fine and dandy, but short of Sun copying what's there it's useless for me to look at what MS does for dot anything. Unfortunately, short of one of us writing something to do everything they do, we have to contend with the advancements as they appear. R

Posted by Robert on April 12, 2004 at 01:02 PM MDT #

<Interesting review. But you guys should really take a look at what MS does from time to time. All this and more has been available in VS.NET for more than 3 years. Not to mention the free WebMatrix... /> Java Studio Creator is intended for the same public VB.XXX, VS.XXX are. So it can't be essentially different. good job Sun. If you don't loose interest on it like other great initiatives started and not finished, than it'll be a great product. Which I suppose will happen because this is one of the last things you can do to stay in business :-)

Posted by Booh on April 13, 2004 at 12:45 AM MDT #

Regarding pricing. Please no worries if you work for a large company. I just talked to the head of marketing. Look for official pricing details at product release time. Thanks all for your helpful comments. - SF

Posted by Steve Fleming on April 13, 2004 at 12:53 AM MDT #

More on JBuilder: Fair enough, Matt. I must admit, though, that I standardized a development group on it once :-). We didn't find that it restricted anything, and since it didn't directly support Struts at the time, we had no problem using it for Struts. Just my two cents :-).

Posted by Kito D. Mann on April 13, 2004 at 09:06 AM MDT #

That's right. Let me rephrase, then: Sun, IBM and BEA should really take a look at what MS does from time to time...

Posted by BLR on April 13, 2004 at 02:14 PM MDT #

BLR, That I agree, and I think that they ought to in general pull their resources together to do what MS did... however that will never happen, since you have 3 competing companies fighting everything they can out in the open, and never agreeing on much of anything. (See the many JSRs IBM approves with caveats for example) And they wonder why MS has such strength, and is such a bear to beat up on. SOmetimes it really is the 3 little pigs against the big bad wolf. R

Posted by Robert on April 13, 2004 at 02:34 PM MDT #

JBuilder does suck! It has SO many bugs in it that I can not even list them all here. Most severe: 1. Intensive memory leak. 2. Numerous bugs in famous dbSwing, like weird date corresponding to db null value - our team was forced to develope workarounds. You pay for the license and then you pay for wasted time. 3. Query builders and etc build code 10k lines long - 90% is garbage. And etc, etc, etc.... And they call it Enterprise product. I would say - junk.

Posted by Eugene on October 12, 2005 at 01:42 PM MDT #

Post a Comment:
  • HTML Syntax: Allowed