-
Making Java Easier (27 messages)
- Posted by: Shlomo Schwarcz
- Posted on: May 19 2008 08:20 EDT
Overview The last few articles published on TSS talk about one of the most painful problems with Java and JEE: the complexity and high learning curve of the technology for beginners. Chris Keene has recently described the steps needed to make Java useful and relevant to what he calls the "low end" developers: make Java easier to get started with, prettier, and more fun - and basically provide a simple platform on which any 15 year old kid can easily develop and run web applications. The Java language itself is not the problem, nor the JSP syntax or the JRE API packages. It’s what’s around the language that makes it so difficult to step into. This article will try to suggest the proper changes that can turn Java into such a platform. Simple deployment Model One of the most frustrating features in Java is the EAR/WAR/JAR/web.xml architecture for distributing web applications. Sure, it's a great system for professionals managing large projects but what if I just want a 20 page interactive web site? Why can't I simply write a Servlet or JSP or even a single Java class, copy it to the server and execute it? JEE should offer the ability to deploy even an individual class without requesting any WAR of even JAR wrapper just like PHP does. Dynamically reload classes This issue has been partly solved by products like JavaRebel but it's time to include this feature in the JVM and JEE specs. Change a single Java class and see the change right away with no restart required. Although this feature does work in some cases and on some servers, the minimum involved is redeploying the entire application. In other cases a server restart is required which in many cases can take over 5 minutes. A Simple Web Server GUI console Different severs have different management consoles, and most of them are web based. New users expect to find a tool similar to the Microsoft IIS Console, allowing browsing of the server’s folders, viewing deployed applications, drilling down through the application’s classes and pages, and deleting, updating, or uploading any piece inside an application. Besides that, the console must provide easy configuration for Data Sources, JRE parameters, User Management, JNDI objects, EJBs, and lots of other stuff I left out. Such consoles do exist in the professional servers like WebLogic and WebSphere but are not powerful enough when it comes to Tomcat, Jetty or even JBoss. A Visual IDE GUI Designer SUN made big progress presenting NetBeans 5.1 Web Pack, and NetBeans 6x. The IDE provides a powerful solution for visual web form designing, and a visual Swing designer which can easily compete with the Microsoft Visual Studio IDE. Unfortunately, however, most of the Java community prefers using Eclipse. Another problem with NetBeans Web Pack is deploying an application to a non-GlassFish server. I tried deploying a Visual Web Application to WebLogic, Tomcat and JBoss. After a lot of effort and playing around with the JARs I was able to run it on a specific JBoss version (not the latest one) but all other servers just show that annoying exception page. The fact is that if you are not a Java guru, then it will be almost impossible to perform the simple task of visually designing a form in NetBeans and then deploying it to a Tomcat or Jetty server. Besides that, there is another problem; maybe it's the popular Windows (SWT) UI or just a matter of luck but the fact is that most Java beginners will start by downloading one of the who-knows-how-many Eclipse versions. At the presents there is no free visual IDE designer for Eclipse. This means that the 15-year-old kid who wants to write a few WebForms for his project will prefer to download the free MS Visual Studio Express rather then Eclipse. If Sun would integrate their excellent visual solution into Eclipse it will probably give a big push to the entire platform. Conclusion Most of the technology is out there, scattered around different open source projects and frameworks. All we need now is to wrap it up in a friendly shell. A simple combination of an IDE->Deployment->Server system can turn Java from a platform used by experts to a wide spread technology that anyone can use. A similar act was made by Ubuntu, bringing the Linux desktop to "regular" people rather then Linux freaks. Microsoft was always good at that since the first Visual Basic release and through the latest .NET platform. Will Java be able to compete? [Editor's note: as usual, this is posted as commentary from the contributor with edits only for grammar, spelling, or other non-content-additives. This is not an endorsement of the sentiments offered, nor is it a suggestion that everything posted is correct.]Threaded Messages (27)
- One possible option by Jeff Garratt on May 19 2008 09:15 EDT
- Re: One possible option by mona john on May 19 2008 10:12 EDT
- Re: One possible option by Nils Myklebust on May 19 2008 10:50 EDT
- Java API is complicated too by Richard Malaschitz on May 20 2008 06:19 EDT
- Re: One possible option by mona john on May 19 2008 10:12 EDT
- Learn Groovy first. by Time PassX on May 19 2008 09:40 EDT
- Re: Learn Groovy first. by Time PassX on May 19 2008 11:39 EDT
-
Re: Learn Groovy first. by Daniel Kordoba on May 19 2008 12:09 EDT
- Re: Learn Groovy first. by Dan Kaplan on May 20 2008 02:11 EDT
-
Re: Learn Groovy first. by Daniel Kordoba on May 19 2008 12:09 EDT
- Re: Learn Groovy first. by Time PassX on May 19 2008 11:39 EDT
- Re: Making Java Easier by Jacob Hookom on May 19 2008 10:53 EDT
- RE: not the fault of the language by John O'Hanley on May 19 2008 12:29 EDT
- Re: Making Java Easier by Berry Crawford on May 19 2008 13:04 EDT
-
Re: Making Java Easier by David McCoy on May 19 2008 01:23 EDT
-
Re: Making Java Easier by Berry Crawford on May 19 2008 02:13 EDT
-
Re: Making Java Easier by Berry Crawford on May 19 2008 02:34 EDT
-
Feeling Like You have to Know It All by Ron Grimes on May 19 2008 06:38 EDT
-
Assuming Everyone Came from C++ by Ron Grimes on May 19 2008 06:50 EDT
-
Re: Assuming Everyone Came from C++ by David McCoy on May 20 2008 08:33 EDT
- Clueless by Ron Grimes on June 14 2008 05:56 EDT
-
Re: Assuming Everyone Came from C++ by David McCoy on May 20 2008 08:33 EDT
-
Assuming Everyone Came from C++ by Ron Grimes on May 19 2008 06:50 EDT
-
Feeling Like You have to Know It All by Ron Grimes on May 19 2008 06:38 EDT
-
Re: Making Java Easier by David McCoy on May 19 2008 04:11 EDT
- Re: Making Java Easier by Mark N on May 19 2008 06:20 EDT
- Re: Making Java Easier by Mark N on May 19 2008 06:20 EDT
-
Re: Making Java Easier by Berry Crawford on May 19 2008 02:34 EDT
-
Re: Making Java Easier by Berry Crawford on May 19 2008 02:13 EDT
-
Re: Making Java Easier by David McCoy on May 19 2008 01:23 EDT
- Re: Making Java Easier by John Loebach on May 19 2008 11:37 EDT
- Re: Making Java Easier by Jacob Hookom on May 19 2008 12:07 EDT
- Don't be a Scala-wag! by John Loebach on May 20 2008 04:53 EDT
- Re: Making Java Easier by Jacob Hookom on May 19 2008 12:07 EDT
- I am developing a matisse-like builder plugin for eclipse. by William Chen on May 20 2008 03:13 EDT
- I disagree with some stuffs by Fernando Franzini on May 20 2008 14:47 EDT
- Re: Making Java Easier by Jess Holle on May 21 2008 07:12 EDT
-
One possible option[ Go to top ]
- Posted by: Jeff Garratt
- Posted on: May 19 2008 09:15 EDT
- in response to Shlomo Schwarcz
Have you considered sMash (projectzero.org). It seems to support each of the criteria you list above. -
Re: One possible option[ Go to top ]
- Posted by: mona john
- Posted on: May 19 2008 10:12 EDT
- in response to Jeff Garratt
The Net beans 6.1/Glassfish combo should be the best option for new developers. I think Sun did a very good job with Net beans 6.1 and it is lot better than visual studio for new programmers. -
Re: One possible option[ Go to top ]
- Posted by: Nils Myklebust
- Posted on: May 19 2008 10:50 EDT
- in response to mona john
The Net beans 6.1/Glassfish combo should be the best option for new developers. I think Sun did a very good job with Net beans 6.1 and it is lot better than visual studio for new programmers.
But someone else said it didn't work with JBoss. What kind of catastrophy is that? Where did the run anywhere slogan go? And does this install a complete database engine by default with connectivity, simple table design, automatic crud functionality and the works? All on one Windows PC and with single button move to a simple serverbased setup? -
Java API is complicated too[ Go to top ]
- Posted by: Richard Malaschitz
- Posted on: May 20 2008 06:19 EDT
- in response to Jeff Garratt
Not only bad tools (GUI designer, Application servers without GUI, etc..) but API of pure Java is compicated. For example printing from Java. In Adobe Flex is only one main class for printing (FlexPrintJob) a three other classes are special components, three classes are enums and one class is old class for flash. In Java we have package java.awt.print (4 classes, 3 interfaces, 3 exceptions), javax.print (14 classes, 10 interfaces, 1 exception), javax.print.event (8), javax.print.attribute (80). You must attentively study this API when you want decide between PrintJob, DocPrintJob, MultiDocPrintJob or CancelablePrintJob. For XML is situation even worse. JAXB is pratically without examples and almost everybody use some open source framework. -
Learn Groovy first.[ Go to top ]
- Posted by: Time PassX
- Posted on: May 19 2008 09:40 EDT
- in response to Shlomo Schwarcz
Title says it all. Groovy (and Grails if you want a brain-dead web app) is great for cutting your teeth. They don't force the programmer to think about the details, but expose the relevant technology in layers so as you become more proficient, you can gradually dig into the nitty gritty. And the syntax is close enough that you can go right from Groovy to Java easily. Grails is a perfect example of this. As your app gets more sophisiticated, you can dig into the details of Hibernate and Spring, but starting out, you can have a fully functional app without knowing anything (except the general concepts) about either one. -
Re: Learn Groovy first.[ Go to top ]
- Posted by: Time PassX
- Posted on: May 19 2008 11:39 EDT
- in response to Time PassX
Sorry, should have read "dead-simple", not "brain-dead." Grails apps should be anything but, given its adaptive AJAX abilities. -
Re: Learn Groovy first.[ Go to top ]
- Posted by: Daniel Kordoba
- Posted on: May 19 2008 12:09 EDT
- in response to Time PassX
Most of these problems will be resolved by OSGI in Glassfish V3. Until that is production ready, just use Grails. It does not get much easier than that. A learning curve pretty much doesnt exist, it is so simple yet extremly powerful and adaptable. -
Re: Learn Groovy first.[ Go to top ]
- Posted by: Dan Kaplan
- Posted on: May 20 2008 14:11 EDT
- in response to Daniel Kordoba
Most of these problems will be resolved by OSGI in Glassfish V3.
Yes! OSGI and "Making Java Easier" are practically synonymous! Seriously, I don't even understand what OSGI does and when it's useful and I gave it at least a solid hour. If one's left clueless after that much time, that's a serious red flag. -
Re: Making Java Easier[ Go to top ]
- Posted by: Jacob Hookom
- Posted on: May 19 2008 10:53 EDT
- in response to Shlomo Schwarcz
It should be more and more obvious to others that the issue/train jumping isn't a fault of the language, but of the APIs put forth. In going through some books/papers on Ruby/Scala/etc-- yes, some things are syntactically more easy to deliver, but it's usually nothing that: 1) you absolutely couldn't do in Java and 2) Something that could be more easily solved with a new API/method call in Java. Specifically, some of the language enhancements around file/IO is often used as a comparison to show line reduction. In those cases, the line reduction is fairly dramatic, but could almost be equivocal with better API calls within Java which you could write or import yourself. -
RE: not the fault of the language[ Go to top ]
- Posted by: John O'Hanley
- Posted on: May 19 2008 12:29 EDT
- in response to Jacob Hookom
"It should be more and more obvious to others that the issue/train jumping isn't a fault of the language, but of the APIs put forth." +1. - John -
Re: Making Java Easier[ Go to top ]
- Posted by: Berry Crawford
- Posted on: May 19 2008 13:04 EDT
- in response to Jacob Hookom
It should be more and more obvious to others that the issue/train jumping isn't a fault of the language, but of the APIs put forth.
Agreed. Taking someone who is new to Java and getting them up to speed with the popular frameworks is a daunting task and the main reason .net exists in interprise environments and PHP has done so well in website development enviornments. -
Re: Making Java Easier[ Go to top ]
- Posted by: David McCoy
- Posted on: May 19 2008 13:23 EDT
- in response to Berry Crawford
I don't agree. I had a "framework" based on Struts/Spring/Hibernate along with other OS tools and had junior developers producing some pretty good quality work with minimal knowledge of the tools. Its all in the presentation.It should be more and more obvious to others that the issue/train jumping isn't a fault of the language, but of the APIs put forth.
Agreed. Taking someone who is new to Java and getting them up to speed with the popular frameworks is a daunting task and the main reason .net exists in interprise environments and PHP has done so well in website development enviornments. -
Re: Making Java Easier[ Go to top ]
- Posted by: Berry Crawford
- Posted on: May 19 2008 14:13 EDT
- in response to David McCoy
Im not saying its not possible to get junior developers up to speed in Java, obviously it happens all the time. Its just been my experience that compared to .NET, it simply takes longer with Java and there are more barriers to climb and more moving pieces to understand. Even is a minimal stack that includes Struts/Hibernate. Either way, having a good mentor (which I assume you are) is also key. I'll certainly agree with you there.It should be more and more obvious to others that the issue/train jumping isn't a fault of the language, but of the APIs put forth.
Agreed. Taking someone who is new to Java and getting them up to speed with the popular frameworks is a daunting task and the main reason .net exists in interprise environments and PHP has done so well in website development enviornments.
I don't agree. I had a "framework" based on Struts/Spring/Hibernate along with other OS tools and had junior developers producing some pretty good quality work with minimal knowledge of the tools.
Its all in the presentation. -
Re: Making Java Easier[ Go to top ]
- Posted by: Berry Crawford
- Posted on: May 19 2008 14:34 EDT
- in response to Berry Crawford
One more point about this issue: This isnt just academic, it has very important consequences. Ive seen entire state agencies dump Java and standardize on .NET because their experience in hiring/growing .NET developers was easier than hiring/growing Java developers. As an unapologetic Java partisan, I hate seeing that happen. tss.com in general attracts expert Java developers with deep experience and I think one consequence of this is that some people here may not be able to empathise what its like for a new developer to go from novice to experienced in the java world. Like I said, obviously its possible, it happens tens of thousands of times each year, but that doesnt mean there isnt room for improvement. -
Feeling Like You have to Know It All[ Go to top ]
- Posted by: Ron Grimes
- Posted on: May 19 2008 18:38 EDT
- in response to Berry Crawford
"I think one consequence of this is that some people here may not be able to empathise what its like for a new developer to go from novice to experienced in the java world." I got into Java EE after 25 years in the IT industry. The hardest part of the transition is just deciding which set of frameworks, packages, etc., you are going to use in your company's architecture. If you hire someone to architect a java-based solution for you, you are only blindly buying their set of prejudices. So, I was left reading everything I could on all the different ways I could go to build web applications. As you all know, the possibilities were enormous. Then, you have to make a decision without ever having actually developed anything with these solutions. Eventually, I decided on Spring/XFire for the middleware with Adobe Flex on the client side. I've been extremely pleased with this solution. Developing web services with this architecture is faster than the old Novell Composer WYSIWIG I was using to generate the J2EE services. So, I lucked out. Couldn't be happier. We brought Dan Diephouse in for a bit to set us up and get us going. It made getting into Java pretty painless. Sure, I can't claim to be an expert, but it allowed me to establish a base and branch out with more and more Java expertise as time permitted. For me, the biggest drawback to being a newbie to Java is feeling like you're not a "real" Java developer unless you speak fluently about EJB and all the garbage that came before you decided to jump into the stream. A lot of developers feel like, in order to learn Java, you not only have to learn what is current (frameworks like Spring), but you also have to learn how to maintain all the legacy frameworks that came before it. And, maybe you don't have to learn all that, but you feel lost on Java forums because of all the antiquated features of Java that fewer and fewer people are using, but everyone still talks about. R. Grimes -
Assuming Everyone Came from C++[ Go to top ]
- Posted by: Ron Grimes
- Posted on: May 19 2008 18:50 EDT
- in response to Ron Grimes
I forgot one other obstacle to getting into Java. It's not so much true now, but I remember looking into Java when it was fairly new. Within the first five years of Java's creation, it seemed EVERY book assumed that you were coming from a C/C++ world. So, that was the take off point. It was a stupid approach, and dissuaded a LOT of people from moving to Java. Now, the error is to write Java books, introducing new frameworks, as though we all have been coding Java since its inception. If you want to get new Java developers, STOP writing books with tons of references to the frameworks that came before and with which we have no familiarity. R. Grimes -
Re: Assuming Everyone Came from C++[ Go to top ]
- Posted by: David McCoy
- Posted on: May 20 2008 20:33 EDT
- in response to Ron Grimes
I forgot one other obstacle to getting into Java. It's not so much true now, but I remember looking into Java when it was fairly new. Within the first five years of Java's creation, it seemed EVERY book assumed that you were coming from a C/C++ world. So, that was the take off point. It was a stupid approach, and dissuaded a LOT of people from moving to Java. Now, the error is to write Java books, introducing new frameworks, as though we all have been coding Java since its inception. If you want to get new Java developers, STOP writing books with tons of references to the frameworks that came before and with which we have no familiarity.
And for you, pray you get to work on only new applications, with whatever tools come out tomorrow. No offense, but what good are you? Or them? C/C++ has been around for ever and was the most successful language of its day. Why wouldn't you tap that resource, a known resources as opposed to you? Someone who has basically statement that he can learn something...TODAY. What is in place and what must be in place is implied to be beyond you. If you can't pick up existing tools with the amount of hindsight available in the form of books and blogs, how could someone trust you to pick up something new? For that matter, who did it dissuade? VB guys? Ada guys? Cobol guys? Please. It would have been the foolish NOT to bring the C/C++ guys to the party. You couldn't.
R. Grimes -
Clueless[ Go to top ]
- Posted by: Ron Grimes
- Posted on: June 14 2008 17:56 EDT
- in response to David McCoy
First of all, you don't know me or how many languages I use on a daily basis. So, if you typically make such rash conclusions, based on little to no knowledge, why would anyone hire an old dinosaur like you? You obviously missed my point, which was directed toward how to attract new developers to the Java language, rather than coddling the egos of 6o year old has-beens, such as yourself, who need a contextual reference from the past in order to understand the new. R. Grimes -
Re: Making Java Easier[ Go to top ]
- Posted by: David McCoy
- Posted on: May 19 2008 16:11 EDT
- in response to Berry Crawford
I've moved from Unix C to Unix C++ to VC++ to Java. The Holy Grail of ease may be something that the world will never truly find. VB was supposed to be it, but during my VC++ days(and early java days) we spent time moving projects from the "easy platforms." Time will tell if .Net offers the same opportunities. I have faith in MS!! :-)It should be more and more obvious to others that the issue/train jumping isn't a fault of the language, but of the APIs put forth.
Agreed. Taking someone who is new to Java and getting them up to speed with the popular frameworks is a daunting task and the main reason .net exists in interprise environments and PHP has done so well in website development enviornments.
I don't agree. I had a "framework" based on Struts/Spring/Hibernate along with other OS tools and had junior developers producing some pretty good quality work with minimal knowledge of the tools.
Its all in the presentation.
Im not saying its not possible to get junior developers up to speed in Java, obviously it happens all the time. Its just been my experience that compared to .NET, it simply takes longer with Java and there are more barriers to climb and more moving pieces to understand. Even is a minimal stack that includes Struts/Hibernate.
Either way, having a good mentor (which I assume you are) is also key. I'll certainly agree with you there. -
Re: Making Java Easier[ Go to top ]
- Posted by: Mark N
- Posted on: May 19 2008 18:20 EDT
- in response to David McCoy
I've moved from Unix C to Unix C++ to VC++ to Java. The Holy Grail of ease may be something that the world will never truly find. VB was supposed to be it, but during my VC++ days(and early java days) we spent time moving projects from the "easy platforms." Time will tell if .Net offers the same opportunities. I have faith in MS!! :-)
That is what I do with some .Net projects. They start out simple and then I am missing something or it becomes a pain. -
Re: Making Java Easier[ Go to top ]
- Posted by: Mark N
- Posted on: May 19 2008 18:20 EDT
- in response to David McCoy
I've moved from Unix C to Unix C++ to VC++ to Java. The Holy Grail of ease may be something that the world will never truly find. VB was supposed to be it, but during my VC++ days(and early java days) we spent time moving projects from the "easy platforms." Time will tell if .Net offers the same opportunities. I have faith in MS!! :-)
That is what I do with some .Net projects. They start out simple and then I am missing something or it becomes a pain. -
Re: Making Java Easier[ Go to top ]
- Posted by: John Loebach
- Posted on: May 19 2008 11:37 EDT
- in response to Shlomo Schwarcz
Two words: Groovy/Grails -
Re: Making Java Easier[ Go to top ]
- Posted by: Jacob Hookom
- Posted on: May 19 2008 12:07 EDT
- in response to John Loebach
Two words: Groovy/Grails
How practical is it for mainstream given concerning data like this? http://dmy999.com/article/26/scala-vs-groovy-static-typing-is-key-to-performance -
Don't be a Scala-wag![ Go to top ]
- Posted by: John Loebach
- Posted on: May 20 2008 16:53 EDT
- in response to Jacob Hookom
The performance of Groovy is leaping tall buildings my friend. Check out the release notes of the latest version: http://docs.codehaus.org/display/GROOVY/2008/05/02/Groovy+1.6-beta-1+release+with+great+performance+improvements -
I am developing a matisse-like builder plugin for eclipse.[ Go to top ]
- Posted by: William Chen
- Posted on: May 20 2008 03:13 EDT
- in response to Shlomo Schwarcz
SUN made big progress presenting NetBeans 5.1 Web Pack, and NetBeans 6x. The IDE provides a powerful solution for visual web form designing, and a visual Swing designer which can easily compete with the Microsoft Visual Studio IDE. Unfortunately, however, most of the Java community prefers using Eclipse. I am developing a matisse-like builder plugin for eclipse. Currently, I have finished most of the functionalities, including the group layout part, which works almost the same as that netbeans. But I have problems parsing/generating java code. I want to open source it under LGPL once I finish it. Can anyone help me on this? My email is: rehte at hotmail dot com. -
I disagree with some stuffs[ Go to top ]
- Posted by: Fernando Franzini
- Posted on: May 20 2008 14:47 EDT
- in response to Shlomo Schwarcz
If a boy with 15 y. old can build one big, large, escalable, distribuited, multiplataform web application...We dont have job ! What about all SUN certifications ? The main issue are that builds big, large, escalable, distribuited, multiplataform aren't easy !!! And never will be !!! Dont forget that MS developments products dont have the same aims that java have !!! You cant develpment some big, large, escalable, distribuited, multiplataform with ASP.NET. I agree with that SUN and specifications should improve made the java tecnologies much moore easy....but the man goals is BUILT SOMENTHING NOT...about easily ways.... -
Re: Making Java Easier[ Go to top ]
- Posted by: Jess Holle
- Posted on: May 21 2008 07:12 EDT
- in response to Shlomo Schwarcz
If Sun would integrate their excellent visual solution into Eclipse it will probably give a big push to the entire platform.
There's absolutely no reason for Sun to do this. NetBeans is growing in popularity every year (44% growth year-over-year). If someone downloads Eclipse and discovers that for some tasks it is a bait-and-switch -- looking free and great and then requiring money to actually solve your problem -- that's their problem and the Eclipse community's, not Sun's.