Java Can Be Saved
But what we really need is to reduce the complexity of Java development. We need to eliminate the multi-year learning curve needed to write basic Java web applications. And neither closures, SwingX or JavaFX is going to do that.
Now I haven't done real Flash development, but I've created Flash pages. This is because Flash Professional makes it relatively easy. I've also created a Silverlight page - but again, because Microsoft Expression makes it easy.
So where is the visual designer that makes it easy to create basic Java web pages, without spending months learning an IDE, Java, Swing, Java2D, Jar packaging/signing, applet deployment and more? Why do we have a dozen ORM frameworks, XML parsers, testing frameworks and profiling tools, but no end-user visual design tool?
And no points awarded if you answer Eclipse, NetBeans or Matisse.
Update: This is what I'm talking about: DataBox.
- Login or register to post comments
- 4204 reads
- Printer-friendly version
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)















Comments
Onur Ersen replied on Wed, 2009/11/11 - 7:20am
By looking through programmer perspective I strongly agree on what you said about making development as easy as it can be.
But for a newbie who really wants to be a real developer needs to get into platform deep inside by learning eclipse and java platform features well.
By the way,I don't think that Java is dead.
killingdjef replied on Wed, 2009/11/11 - 7:40am
I wholeheartedly agree with you Jeff! Java is a great back-end development language, but on the GUI department it's an abomination.
Yes, Swing is a good library which can pretty much let you do anything you want but the curve is too high and you end up coding a specific component most of the time. What Java lacks is good tools to easilly make a sophisticated GUI/Webpage.
It almost looks like everyone at Sun thinks from a developer perspective rather than from an artist perspective. Sun tries with JavaFX but its still too much coding and less "clicking". If you want to lower accessibility to the Java platform, you better provide tools which make the entire development cycle easier. We have the frameworks (that's an understatement) now we need to make the art-pipeline more smooth.
This tool would look like Flash for instance. There's the tool to build a flashmovie with all kinds of features build in which let you do 99%. For that 1% missing there's actionscript. This tool would like a Flash builder while Java underneith will be "actionscript".
If I want to make something as trivial as a JTable with a combobox auto-complete filter, I want it done in a few clicks. Not install a third party library only to find out it's not exactly what I needed and have to write the whole thing myself.
If I want to change the entire look and feel of my components, I want to click and import my own art, not extend components or overwrite global values which cost me significant lines of code and time. Nor do I want to constantly recompile and check out the results.. I want a tool that instantly shows me what my app will look like.
Sure.. Matisse is nice and all, but when stuff gets complicated where I need to define accurate placement of components to the pixel (what you usually do when you have a professional interaction design) it just won't cut it.
drewhk replied on Wed, 2009/11/11 - 8:31am
Rogerio Liesenfeld replied on Wed, 2009/11/11 - 9:18am
Check this out: http://sellmic.com/blog/2009/06/05/javafx-authoring-tool-demo-at-javaone-2009-with-video/
Yes, not yet released, but looks promising doesn't it?
There are also some JavaFX plugins for Adobe Photoshop and Illustrator, but I have no experience with that (I am a "code centric" developer :^).
Mike Mormando replied on Wed, 2009/11/11 - 10:14am
Gerard Davison replied on Wed, 2009/11/11 - 12:25pm
What about frameworks such as Oracle ADF:
http://www.oracle.com/technology/products/adf/index.html
Most simple web apps are drag and drop operations that build JSF apps. I would guess I could take someone from school have have them productively building apps in only a few months.
Of course disclaimer, I work on the JDeveloper product; but not ADF directly.
Gerard
Dean replied on Wed, 2009/11/11 - 1:43pm
Adobe's solutions are better because they are based on a reasonable language, ActionScript, instead of HTML created by the hairball of JSP based offerings like Struts, JSF, etc.
Even if someone came up with a good Java-based web page technology there would still be the issue of JVM adoption. Adobe's success with Flash based technologies is only possible because they have a 90% adoption rate for their VM whereas the JVM adoption rate is still a problem for Java-based solutions. (Does anyone know what the JVM adoption rate is?)
JavaGP replied on Wed, 2009/11/11 - 2:29pm
alexander.a replied on Wed, 2009/11/11 - 2:45pm
killingdjef replied on Wed, 2009/11/11 - 3:05pm
in response to: dwschulze
From the top of my hat, Java adoption rate is roughly 80%. I can't provide a source but I recall reading it while searching google a few months back. Do note that this doesnt mean the latest JRE is installed. I recall most systems have 1.5. Anyhow the adoption rate isnt as terrible as you'd expect.
Jeff Martin replied on Wed, 2009/11/11 - 3:19pm
shanse2 replied on Wed, 2009/11/11 - 5:26pm
nsitaman replied on Thu, 2009/11/12 - 2:24am
LOL replied on Thu, 2009/11/12 - 3:21am
Rainer Eschen replied on Thu, 2009/11/12 - 3:30am
Gerard Davison replied on Thu, 2009/11/12 - 5:37am
in response to: rainwebs
Rainer,
Thanks for your reply, I do have to call you up on two points though.
First of all JDeveloper is not based on a JBuilder kernel, this was true in the early versions which use the JBuilder hybrid IDE written in Java,C,Pascal, Asembler and chicken entrails*. Since version 5.0 of JDeveloper we have used a new tool base re-written in Java. I will claim to be an authoritative person on this as I have worked on Oracle tools on and off for over a decade now. (Yes there are some classes with similar names; but that is to be expected given the heritage)
It is also worth mentioning that the ADF components can be deployed to other JEE application servers / even just plain Tomcat:
http://blogs.oracle.com/dana/2009/01/how_to_deploy_a_11g_adf_applic_1.html
You can also work with over databases so you are not entirely stuck in the Oracle world with ADF. Part of the reason for this flexibility is that ADF is the basis for upcoming Fusion Applications which can be deployed to different application servers etc.
http://www.oracle.com/technology/products/jdev/htdocs/11/database.html
You might find that ADF is interesting even in cases where you are using a different database and application servers.
You will have to excuse my enthusiasm for ADF, I guess this seems like a bit of astro turfing on my part, the tools org in Oracle has been given on day a week out of there normal duties to build interesting ADF applications. I had never played much with ADF in anger to until they started us all on courses and I was pleasantly supprised how easy it was to use.
Anyway, enough rambling back to my day job
Gerard
Oracle JDeveloper WebService / Spring / SCA Lite tooling
* This was a nightmare to maintain but apparently required to get the right perfromance in a java ide.
Rainer Eschen replied on Thu, 2009/11/12 - 8:08am
Dean replied on Thu, 2009/11/12 - 10:19am
If the adoption problem is pretty much solved the way forward should be in the area of rich interfaces. I don't see why we should create better tools to create Java programs that ultimately create stone-age artifacts like HTML, CSS, and JavaScript. It's time to leverage Java's ability in rich interfaces (as well as serious client side processing). Better tools to create Swing interfaces would help, but that's already been tried with little success.
One area where Adobe's technologies outperform Java is in multimedia content. In order for Java to play catch-up successfully it is going to have to catch up to Adobe in multimedia support. JavaFX offers that promise, but the last time I looked at JavaFX it had limited connectivity with Java. Go Figure. Two steps forward and one step backwards for Sun.
For all of its problems JavaFX is still evolving. If it hits critical mass then we get back to Jeff's original question about making it simple to use. Java has to offer compelling solutions for things like multimedia as well as addressing the simplicity issue.
HJB replied on Thu, 2009/11/12 - 5:03pm
in response to: gd118284
Gerald,
I think ADF is a good development tool but its pricing model makes many developers stick with the basics. For reference see http://www.oracle.com/technology/products/jdev/htdocs/jdevpricefaq.html.
I don't see ADF is a web designer/user tool.
Hernando
Bruno Barin replied on Fri, 2009/11/13 - 6:28am
Jeff,
I strongly agree with you. What Java needs is to be easy and fast to develop applications. Particulary I have no
complaints about the language syntax/semantics. In my opinion the Java's weakness are:
- It's not easy to develop UI (specially desktop applications). Someone can say that JavaFX/Matisse addressed it, but is far away to be easy to develop. Just to compare, .NET developers just don't care about the code behind the desktop applications, their focus is only the business rules(OK, I know this is due to the strongly coupled of MS Studio and in Java you can choose your IDE... But should we really care about that?).
- Sun changes their focus all the time. They shoot to any directions. Do you remember the "LookingGlass", JavaSpaces, Java Metadata, Applets... Now they're coming with the new silver bullet called... "JavaFX". I really don't know any "serious" applications written in JavaFX, it's like a toy.
- Sun/Oracle should help more open source organisations like Apache. They know how to create great
frameworks better than Sun.
Java is very good in the server side world, but it's very weak in the UI world, and as we know beautiful UIs(eg. Apple applications) helps to sell more software....
Cheers,
Bruno
Jonathan replied on Fri, 2009/11/13 - 9:41am
I'm confused. Are we talking about web apps or desktop apps? I thought the OP was talking about web apps. If we're talking about desktop apps, gui designers like matisse make it very simple to create good looking UI's with no swing experience. If you prefer user interfaces by hand, it doesn't get much better than miglayout IMHO. What I think needs to be easier is customing the look and feel of Swing components. I think Java 7 is adding some CSS type styling - this is cool but it needs to be more than changing colors, borders, etc.
But I think the OP was talking about web apps - specifically - something like Flash's authoring tool for beginners. I think Sun is working on a timeline based editor for JavaFX and while this will be useful for animations, web games, or simple apps and it will help java gain market share with wannabe-developers I don't think it will be useful for developing real business web applications.
@Dean
I don't understand why HTML, javascript, and CSS are stone-age artifacts. We're developing our main application in GWT and it looks nicer than most Swing applications. It also behaves nearly identical to a swing application with proper resizing and layout management. I will go one step further and say it's probably a better user interface experience for our customers than any Flash or JavaFX application - with no plugins necessary.