Just prior to the TCO05 Online Round 4, Joe Nuxoll from Sun Microsystems® was in arena to chat about JSF components and Java Studio Creator:
TheJanitor | I was just wondering if Sun had any really good summer internship programs. |
Sun_Joe | absolutely! |
Sun_Joe | we have some great interns on our team right now |
TheJanitor | The IDE team? |
Sun_Joe | if you're interested in an internship, send an email to me: joe.nuxoll@sun.com |
Sun_Joe | I'll forward it on to the right folks |
Sun_Joe | yes, the IDE team |
TheJanitor | Cool beans, thanx |
Sun_Joe | np |
texel | tzup sun_joe? |
Sun_Joe | Hello texel, do you have a Q? |
texel | asl pls |
mike | Sun_Joe: what is your role with the IDE team? |
Sun_Joe | Hello folks, my name is Joe Nuxoll from Sun Microsystems |
Sun_Joe | I am one of the architects working on Creator and frameworks for web and desktop applications |
Sun_Joe | I'm also the spec lead for JSR-273 |
Sun_Joe | I would love to answer any questions pretty much about anything |
Sun_Joe | go ahead and shoot |
mike | so, what is the relationship between Studio Creator and JSF ? |
Sun_Joe | to better answer mike's Q, on Creator specifically, I built the design-time API and helped with much of the underlying framework for the visual designer |
Sun_Joe | Studio Creator is a visual design environment initally focused on building JSF applications |
Sun_Joe | Creator allows you to visually design web apps using JSF components |
mike | Sun_Joe: heh |
jmpld40 | nicka81: Hi nick, jessie here |
mike | Sun_Joe: do people use Studio Creator for non-JSF related develpoment ? |
nicka81 | jmpld40: hello Jessie ;-) |
mike | Sun_Joe: kind of as a general purpose IDE? |
Sun_Joe | at this point Creator is focused on JSF development, but future versions will leverage thick client and other technologies |
snooking | Is the sun application server robust enough to run enterprise applications compared to JBOSS and others? |
Sun_Joe | we started with web applications (and JSF) for the first cut |
mike | Sun_Joe: makes sense |
Sun_Joe | snooking: absolutely |
snooking | is it still free? |
Sun_Joe | yes it is - and open source now! |
Sun_Joe | check out Glassfish |
Sun_Joe | www.glassfish.org I think |
CVT | Is common copy the new ideas from other tools? And when they copy your idea, do you get angry? Is it a strange question? : ) |
Sun_Joe | no that's not the righ url... one sec |
snooking | ok |
Sun_Joe | ah - glassfish.dev.java.net |
Sun_Joe | its a Java.Net (open source) project |
Sun_Joe | the full Sun Application Server codebase |
Sun_Joe | CVT, I am not sure I understand your question? |
snooking | also, why do u bundle point base with Studio Creator and the Sun App Server? |
Sun_Joe | I think tools copy eachother quite frequently! |
Sun_Joe | I think the idea was to make sure a lightweight database was available for sure |
Sun_Joe | we want to make sure it works out of the box |
Sun_Joe | but you don't *have* to use pointbase, of course |
snooking | i c |
mike | Sun_Joe: what version of Java does Studio Creator need? |
Sun_Joe | it runs on 1.4 or 1.5 - but deploys to 1.4 (matching application servers) |
Sun_Joe | an IDE is funny in that it has to deal with a lot of different JVMs |
mike | Sun_Joe: do you notice any performance advantage of using 1.5 to run it? |
Sun_Joe | it runs on one (or two, etc) - but the projects you build need to be able to deploy on different than what the IDE is running on |
Sun_Joe | Java 5 seems to be a bit snappier in UI responsiveness |
Sun_Joe | they did a lot of Java2D and Swing work |
snooking | What's the cost of Studio Creator these days? |
Sun_Joe | we were careful not to include and Java5 code in Creator 2 so that it could still run on 1.4 |
Sun_Joe | Creator is free to download and try... |
Sun_Joe | and $99/year to own |
Sun_Joe | that includes a membership to SDN |
snooking | is that $99 each yr? |
Sun_Joe | (Sun Developer Network) premium content, etc |
Sun_Joe | yep |
Sun_Joe | a subscription |
snooking | i c |
JJohansson | any student discounts? |
Sun_Joe | you can buy it once for $99, and get the SDN subscription for one year (and Creator updates) |
Sun_Joe | after a year, you can't update Creator unless you re-up |
Sun_Joe | yes, major student discounts |
Sun_Joe | I don't know exactly - but I think its free for students |
JJohansson | i like that price |
Sun_Joe | free is a good price for students |
Sun_Joe | we want you guys to really get into Java |
JJohansson | yup |
Sun_Joe | so we have someone to hire when Joe gets tired and wants to float around in the tropical seas... |
Sun_Joe | ;-) |
Sun_Joe | you should be able to get your pricing info on the creator website: developers.sun.com/jscreator |
JJohansson | so what's good about the creator? |
JJohansson | as opposed to eclipse |
Sun_Joe | Studio Creator makes is *very* easy to build dynamic web applications |
Sun_Joe | it leverages JSF (JavaServer Faces) components to make building web applications a point-n-click affair |
pcalcina | is it oriented mainly to Web Development? |
CVT | Ok. I will do a normal question now. Don't you think that web apps make you mix a lot of tech to work? HTML, CSS, Javascript, JSP, Flash.... What do you see for the future? |
Sun_Joe | yes, initally at web - but we're looking at other stuff |
Sun_Joe | VERY GOOD QUESTION! |
pcalcina | Do you plan it to be a Eclipse replacement? |
Sun_Joe | okay - what I am seeing is a convergence of web and desktop |
Sun_Joe | web apps are moving more client-side (AJAX, etc) |
Sun_Joe | and desktop apps are moving more web-based (dynamic data, etc) |
Sun_Joe | take google maps, for example |
Sun_Joe | there are two flavors: |
JJohansson | like visual studio/.NET? |
Sun_Joe | 1) maps.google.com is a web app that has a LOT of very desktop-like features |
Sun_Joe | 2) Google Earth (desktop app) is a thick client (great graphics) app with a very high-bandwidth data connection |
Sun_Joe | I think we'll see this merging trend continue |
Sun_Joe | JJohansson: Eclipse is a general Java tool |
Sun_Joe | Creator is really a visual designer tool (two-way) for building web applications |
JJohansson | gotcha |
Windrider | I'm *always* unsteady over anything that automatically generates code, especially code that really does something (as opposed to a one-liner get or set, which is autogen I don't mind). How customizable is this automatic code generation? |
Sun_Joe | Creator is built on top of NetBeans, and can leverage 3rd party modules |
Windrider | (Automatic code generation is implied in your statement that it's a "...point 'n click affair". |
Sun_Joe | here's the beauty of creator... |
Windrider | So you can build your own autocodegen rules? |
Sun_Joe | its not a "code generator" |
Sun_Joe | its a two-way tool |
Sun_Joe | it *interprets* and allows visual design of regular JSF applications |
Sun_Joe | the key is the JSF technology - its a real component framework (like JavaBeans) for web apps |
Sun_Joe | this allows tools to present them visually |
Sun_Joe | creator goes yet another step beyond this, however... |
Sun_Joe | JSF itself is very "typical J2EE", where you have to have a PhD to really understand what is going on |
Sun_Joe | Creator simplifies the model quite a bit to make your life (the developer) a lot easier |
Sun_Joe | for example: |
Sun_Joe | Page1.java / Page1.jsp |
Sun_Joe | if you're designing a page, you'll have these two files |
Sun_Joe | the .jsp file has all the JSF component tags in it - and CSS stuff to layout etc |
Sun_Joe | the .java file is a "backing file" with the code behind the page itself |
Sun_Joe | the IDE really shows these as two "views" of the page |
Sun_Joe | anything you do to the page (via visual design *or* via hand-coding in the .jsp file) reflects in the source |
Sun_Joe | anything you do in the java file (or jsp) manifests in the visual designer |
Sun_Joe | its a *real* two-way tool |
Sun_Joe | which basically means it has some pretty wicked rocket-science compiler stuff going on behind the scenese |
Sun_Joe | scenes |
Windrider | Heh, sounds similar to my advisor's research project. I do understand what you're saying, though. |
Sun_Joe | that could certainly be - there are many doctoral projects in this field |
Sun_Joe | code "modelling" is a very complicated area to play |
Sun_Joe | but - very well understood by the tool vendors ;-) |
Windrider | So if a programmer has drastically different ideas of "proper curly bracket usage" from your developers, Creator shouldn't do too much damage to it, or can at least be customized? |
Sun_Joe | yes - that's a code style rule - which you can configure to your heart's content |
Sun_Joe | what *really* matters is what the code *does* which is where the tricky stuff comes into play |
Sun_Joe | the code style stuff is directly from NetBeans |
Sun_Joe | which you can download totally for free at www.netbeans.org |
Sun_Joe | NetBeans is pretty darn powerful nowadays |
snooking | what level of java programmer does one have to be to build web apps with Studio Creator? |
Sun_Joe | As I mentioned before, Creator is built on top of NetBeans - its essentially a package of Modules |
mike | Sun_Joe: is there a web site or application out there that is available to the public that has been built using Studio Creator? |
Sun_Joe | Creator was originally conceived to target the VB programmers |
Sun_Joe | so any corporate programmer should be able to pick it up easily |
Sun_Joe | of course, guys like you guys (top coders) should be able to use it in a snap |
Sun_Joe | and the visual manipulation stuff is worth its weight in gold - even if you are a rocket scientist |
Sun_Joe | to answer mike, there are many apps - and I think the website is the best resource for that: |
Sun_Joe | http://developers.sun.com/jscreator |
Sun_Joe | there are also several JSF component vendors that have gone the extra mile to provide great design-time experiences for their components |
Sun_Joe | leveraging the Creator Design-Time API |
Sun_Joe | (which JSR-273 is based on) |
Sun_Joe | you can check that out too: https://jbdt-spec-plublic.dev.java.net |
Sun_Joe | oops - public |
Sun_Joe | not plublic |
Sun_Joe | JSR-273 is being developed "out in the open" on Java.Net |
Sun_Joe | in the project "jbdt-spec-public" |
Sun_Joe | (I diverge) |
Sun_Joe | digress |
Sun_Joe | so how can I help anyone else? |
Sun_Joe | any questions about anything? |
Sun_Joe | architecture? |
Sun_Joe | algorhythms? |
Sun_Joe | software platforms? |
Sun_Joe | favorite pizza toppings? |
Windrider | I think most of us are thinking about the impending tournament right now... |
JJohansson | hehe |
Sun_Joe | is there anything I can help you with there? |
CVT | What about the JNLP protocol? What do you think about it? Jaca Web Start apps. Just like the TopCoder arena. |
Sun_Joe | ah - good one |
CVT | Not Jaca. Java. Hehe. |
Sun_Joe | I think this is an element in the "convergence" between desktop and web apps I commented on earlier |
Windrider | Hmm. Digressing from the subject: The TopCoder forums should reveal that people here do not know what they are doing with regard to generics and especially wildcards. I'm one of them. Got a good tutorial? |
Sun_Joe | the great advantage of a web application is universal distribution and clean updates |
pcalcina | What about SWT? |
Windrider | Oops, ignore me, stick to the subject |
Sun_Joe | I'll go there in a sec, Windrider |
Sun_Joe | SWT is an interesting beast altogether |
Sun_Joe | it was originally created to handle some threading issues in AWT, and to allow for JFace |
Sun_Joe | usually folks are *really* referring to JFace when they mention SWT |
Sun_Joe | the original reasons for SWT (not JFace) have disappeared |
Sun_Joe | AWT has its paint threading handled very well now - and Graphics2D is leaps and bounds beyond the painting primitives in SWT |
Sun_Joe | JFace, on the other hand - is really a differing philosophical approach |
Sun_Joe | JFace uses essentially "peers" - like the original AWT did before Swing |
Sun_Joe | what this does is gives you one-to-one look and feel to match the platform you're targetting |
Sun_Joe | JFace works great on Windows |
Sun_Joe | is works pretty well on Mac |
Sun_Joe | it falls on its face anywhere else |
Sun_Joe | because of the inherent critical architecture point - is that its based on native peers |
Sun_Joe | Swing paints the same anywhere, because it does not rely on peers |
Sun_Joe | and - this is *critical* - the place where it matters most |
Sun_Joe | Swing paints *perfectly* on Windows now because they are using the same paining primitives as IE |
Sun_Joe | Java 5 fixed the reasons that SWT/JFace was created |
Sun_Joe | so... |
Sun_Joe | we'll have to see what happens |
Sun_Joe | I think folks like Eclipse as an IDE |
Sun_Joe | but are wary of creating SWT-based desktop apps |
Sun_Joe | for very good reason |
Sun_Joe | they really should be using Swing, because that's where the Java platform is staying |
Sun_Joe | and Swing will out-perform SWT/JFace in many arenas |
Sun_Joe | perhaps the most important of those arenas is in the 3rd-party component marketplace |
Sun_Joe | if you're building an app and you need a ... ummm... DonkeyGraph control |
Sun_Joe | you're a lot more likely to get one that works well in your Swing app |
Sun_Joe | as SWT/JFace is really a closed component set |
Sun_Joe | and that DonkeyGraph will look perfect on Windows, Mac, Linux, Solaris, etc... |
pcalcina | What do you think about native compilers initiative, like gcj? |
Sun_Joe | that's also a tricky one |
pcalcina | they say the main raseon to do it is: Java is slow |
Sun_Joe | I like native compilers (we made the first Java JIT at Borland) |
Sun_Joe | folks that say "Java is slow" have not used Java since the introduction of HotSpot |
Sun_Joe | Java is dynamically compiled to inline native bytecodes based on program *trends* |
Sun_Joe | a Java program is statistically faster than a native application |
Sun_Joe | the only issue is where the processing crossed the "boundry" of java heap coding into native code |
Sun_Joe | if you do a ton of I/O, for example - the "hop" between the Java code and native OS code will be expensive |
Sun_Joe | in some cases |
Sun_Joe | so you have to program with "java" in mind |
pcalcina | well, swing somtimes is slower than native gui apis |
Sun_Joe | lazy loading of resources - batch loading - off-thread prep, etc |
Sun_Joe | I love this line (because its my line): |
Sun_Joe | "It is very easy to write bad Java code, which will perform poorly" |
Sun_Joe | "It is also very easy to write bad native code, which will perform well" |
Sun_Joe | "But well written Java code will out perform well written native code" |
Sun_Joe | "Thank you, hotspot" |
Sun_Joe | you can't beat dynamic optimization |
Sun_Joe | if you code well - algorhythms are always a good skill - Java shines |
Sun_Joe | don't waste Java cycles recalculating things you did two pops ago in the stack, etc |
Sun_Joe | pay attention |
Sun_Joe | and you will be payed well |
pcalcina | I'm starting in Java programming, after programming a lot in C++ and I wonder where can I get some of the things you mentionsed? |
CVT | What is the HotSpot? |
Sun_Joe | look at high-performant Java apps, like for example, JBuilder |
pcalcina | about the trickiness of writing well java swing code |
Sun_Joe | I think following the javadesktop forum on Java.Net is a good place to dig |
Sun_Joe | HotSpot - is the key architecture behind the modern Java VM |
Sun_Joe | If you've never heard about HotSpot, I highly recommend you read about it |
Sun_Joe | especially you C/C++ guys |
CVT | Ok, I will. Any good source? |
Sun_Joe | I could Alt+Tab and Google it for you, but I think you're pretty smart... ;-) |
CVT | Hehe. |
Sun_Joe | there should be a LOT about it |
Sun_Joe | java.sun.com too |
Sun_Joe | pcalcina: I recommend using a good profiling tool |
Sun_Joe | that is the best way to see where the cycles are being spent |
CVT | Can we live without Google? |
Sun_Joe | its amazing isn't it |
Sun_Joe | the dependency that has grown... |
CVT | Just like the cellphone. |
Sun_Joe | there are many other search engines, of course - but nobody but Google has become a verb! |
pcalcina | sorry, what do you mean with a profiling tool?, (English is not my 'native language'?) |
Sun_Joe | http://java.sun.com/products/hotspot/ |
Sun_Joe | there's the HotSpot stuff |
Sun_Joe | pretty egg-headed, but a good read |
mike | Sun_Joe: nice chat once again |
Sun_Joe | a profiling tool like OptimizeIt will show you where cycles are being spent by the processor |
Sun_Joe | Thanks all! |
Sun_Joe | I think we're coming to a close here |
Sun_Joe | I'm off to watch USA vs. Guatemala (World Cup Qualifying) |
jmpld40 | Sun_Joe: thanks |
mike | Sun_Joe: great job keeping the flow moving |
Sun_Joe | good luck in your competition! |
mike | Sun_Joe: it was very informative |
pcalcina | thanks for all |
CVT | Thank you. |
Sun_Joe | You're welcome |
Sun_Joe | good luck! |
pcalcina | Could you tell us about the license of sun products? |
Sun_Joe | there are a few different licenses, actually |
Sun_Joe | you'd have to consult the individual product license |
pcalcina | ok |
Sun_Joe | from what I understand - there's not a whole lot of catches to them |
Sun_Joe | They would like you to build great apps and go out and become rich and famous |
Sun_Joe | (and buy a bunch of Sun hardware to support your fame and fortune) |
Sun_Joe | (and bandwidth) |
Sun_Joe | ;-) |
Sun_Joe | okay - off I go |
Sun_Joe | thanks again everyone |