Go Back   MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Reply
 
Thread Tools Search this Thread Display Modes
Old Aug 5, 2006, 02:24 AM   #1
HiRez
macrumors 601
 
HiRez's Avatar
 
Join Date: Jan 2004
Location: Western US
Need Help: Modern Java Landscape Overview + Questions

Hi guys, I used to do some Java programming but haven't really touched it much in at least 5 years (been doing C/Obj-C/Cocoa/Python development instead). But, I may have an opportunity a bit down the road at a great job doing Java development (you can translate "great" as "really high-paying" ). I'm sure the landscape is much different now than the last time I was involved (back then JFC/Swing, applets, and EJB were considered "new", for example, and anything web-related was very primitive). Please excuse the long post, but here are some of the questions I have:

1. What's a good general IDE to use for Java development nowadays? Even though I'll use my Mac whenever I can, I'd probably want to stick with something cross-platform and industry-standard, such as Elipse or NetBeans. Are those tools still the most common? Are they any good or out of date? Are there newer, better tools I should look at? Whichever IDE I use would need to be able to handle many different Java-related things, including XML, localization, different deployment options, etc. Also, which ones perform best on a Mac?

2. Is Ant still relevant for building Java apps? It's what I used to use but I don't know if there are better methods to use now.

3. What ancillary technologies should I be looking at learning for general, modern web-based development? The myriad of options available now are staggering and bewildering. Some things I've seen include XML, XML-RPC, SOAP, XSLT, SAX, JSF, UDDI, WSDL, Spring, Ajax, etc. There are so many I don't even know where to start or which ones I should be learning. It seems Ajax will be a must (although I understand that requires using a lot of Javascript...yuck), but what else, bearing in mind I may be eventually developing or at least interacting with enterprise business objects)? In the past I have used JSP, Servlets, and Struts and hated every bloody second of it...it really was not fun at all and seemed like a very kludgy solution to web-enabling Java. Hopefully there are newer, better frameworks and technologies that are being used?

4. What are the best resources for brushing up on my Java and all the related technologies? I feel like I still have all the basics in my head somewhere but I need to start myself off gently again to make it all come back. What books do you like? What websites are the most helpful?

Thanks for reading!
__________________
Go outside, the graphics are amazing!
HiRez is offline   0 Reply With Quote
Old Aug 5, 2006, 02:40 AM   #2
gekko513
macrumors 601
 
gekko513's Avatar
 
Join Date: Oct 2003
I will also be interested to see if anyone has any insights on this, but most programming discussions on these forums are quite basic, so I'm not sure if this is the best place to post to reach a high number of experienced enterprise level Java developers with up to date knowledge of the platform.

As for the questions. My impression is the Eclipse and Netbeans are both good IDEs and both projects are active, are releasing updated version regularly and are widely supported.

I'm currently reading "Beginning J2EE 1.4" from 2003 by Weaver and Mukhar, hoping that at least some of it is still valid.
__________________
Someone get Nekkid™, now!

Last edited by gekko513; Aug 5, 2006 at 03:46 AM.
gekko513 is offline   0 Reply With Quote
Old Aug 5, 2006, 03:32 AM   #3
therevolution
macrumors 6502
 
Join Date: May 2003
I've been using Eclipse for a couple of years now, and it's pretty good. Now that I've had lots of practice, I feel that I'm very productive with it. I briefly tried Netbeans, which seems decent, but I went back to Eclipse - probably because I'm used to it, and it works well for me. The GUI builder in Netbeans 5 is pretty slick, though. I've heard good things about IntelliJ IDEA, but I haven't personally tried it.

Eclipse runs great on Intel Macs, but is pretty slow on PowerPC Macs. Lots of RAM helps in either case.

As far as I know, Ant is still widely used. That's what my company uses.

Unfortunately, I don't think I can help with the rest of your question... I haven't done any Java web development (thankfully...). I also haven't picked up any Java books in a long time, so I don't have any suggestions there. Between Google and Sun's Java forum, I can usually figure out any problems I get stuck on.
therevolution is offline   0 Reply With Quote
Old Aug 5, 2006, 04:39 AM   #4
Palad1
macrumors 6502a
 
Palad1's Avatar
 
Join Date: Feb 2004
Location: London, UK
I'm a big fan of Eclipse, great refactoring, slick editor, plays nice with the rest of the OS, but it really lacks in the JSP/Struts department.

Netbeans is much more tightly integrated, with it you get the whole shebang (text editor/compiler toolchain/application server/wywiwymg swing - jsp editor/struts/war deployer...)

Of course there are eclipse plugins but there are incompatibilities between them.

I've been doing more and more .Net the past year, but had a discussion with a Java expert the other day, seems like Struts/JSP is on the way out, in favor of JFaces.

If you need an O/R mapping, it seems that Hibernate still dominates the field.

As far as application servers go, I'm sorry, I can't help you there...
Palad1 is offline   0 Reply With Quote
Old Aug 5, 2006, 01:18 PM   #5
mrichmon
macrumors 6502a
 
Join Date: Jun 2003
A couple of thoughts:

Eclipse is still one of the most popular IDE's. NetBeans is good and gives you the total integration. You can get the same level of integration that NetBeans provides if you go with the Rational tooling from IBM. The Rational IDE is built on top of Eclipse so everything you know about Eclipse is the same in the Rational tools. JSF integration and EJB authoring is heavily automated for you.

Get up to speed on the new features of Java 1.5. Java 1.5 has some significant changes to the language. Most of the changes are improvements so you really want to understand the support for generics and the automatic boxing/unboxing stuff.

EJB has evolved a lot. The deployment descriptors have had major changes over the years. With the new specification released last year the deployment descriptors are now optional. However not many folks have picked up the new specification yet.

Ant is still the way to go for complex build needs.

If you are interested in web integration take a look at Java ServerFaces. JSF feels in many ways like the natural evolution of struts and effectively smooths over the rough parts of struts.

To group your list of technologies -- XML, XSLT, SAX are all about data storage and processing. Personally, I find that XML and SAX are the basics here. Understanding a little of XML is necessary for many technologies since most people end up using XML as their data/configuration format. SAX gives you an easy way to parse XML documents. To output XML you can just use print/write statements. If you need to process over the XML documents then DOM is your path.

WSDL, SOAP, XML-RPC -- these are your component services technologies. Basically how you wrap your code so it can be invoked by other applications.

There is a lot of buzz around AJAX but at present it is mostly some really nasty JavaScript hacks. Long term maintenance of AJAX is not very nice. In most real world development spaces AJAX is where you go for your fluffy and glitzy aspects in your application. (If you want fluff and glitz.) I believe that AJAX will end up being a very useful approach but it desperately needs cleaner and more disciplined frameworks to be released.
mrichmon is offline   0 Reply With Quote
Old Aug 5, 2006, 03:43 PM   #6
HiRez
Thread Starter
macrumors 601
 
HiRez's Avatar
 
Join Date: Jan 2004
Location: Western US
Quote:
Originally Posted by mrichmon
Get up to speed on the new features of Java 1.5. Java 1.5 has some significant changes to the language. Most of the changes are improvements so you really want to understand the support for generics and the automatic boxing/unboxing stuff.
Yes, I was just looking those over, really some great improvements. Autoboxing/unboxing seems so obvious I just can't believe Apple hasn't done this for Cocoa/Obj-C. I can't count how many times I've had to convert a float or int to an NSNumber and back just to stuff a number into a collection. And I love Java's new abbreviated 'for' loop format for iterating over collections, and variable arg lists using '...' is great too.

So here's my list so far:

Core: Java 1.5
IDE: NetBeans or Eclipse/Rational
Build: Ant
GUI: JavaServer Faces, AJAX (possibly)
Data: XML, SAX, DOM
Object relational mapping / persistence: Hibernate, SQL
Component services: XML-RPC, SOAP, WSDL

(I'm still unclear on which of the component technologies are necessary, then which are considered the most modern/best). Anyway, thanks to all of you for all the great info, it is really helping me. Keep it coming!
__________________
Go outside, the graphics are amazing!
HiRez is offline   0 Reply With Quote
Old Aug 5, 2006, 06:08 PM   #7
Compile 'em all
macrumors 601
 
Compile 'em all's Avatar
 
Join Date: Apr 2005
Quote:
Originally Posted by HiRez
Yes, I was just looking those over, really some great improvements. Autoboxing/unboxing seems so obvious I just can't believe Apple hasn't done this for Cocoa/Obj-C. I can't count how many times I've had to convert a float or int to an NSNumber and back just to stuff a number into a collection. And I love Java's new abbreviated 'for' loop format for iterating over collections, and variable arg lists using '...' is great too.

So here's my list so far:

Core: Java 1.5
IDE: NetBeans or Eclipse/Rational
Build: Ant
GUI: JavaServer Faces, AJAX (possibly)
Data: XML, SAX, DOM
Object relational mapping / persistence: Hibernate, SQL
Component services: XML-RPC, SOAP, WSDL

(I'm still unclear on which of the component technologies are necessary, then which are considered the most modern/best). Anyway, thanks to all of you for all the great info, it is really helping me. Keep it coming!
In programming, there is no such thing as hip or cool. It is all about getting
the job done in a fast and efficent manner. You should first ask yourself
what you want to do and _then_ see what you need to get it done . Posting
a very general question like yours will only get you back a bunch of
mixed answers (which as far as I have read on this thread are OK).

Anyway, regarding your first question. Eclipse is the way to go. It is
basically the industry's defacto standard. Not in the sense MS Windows is ,
but because Eclipse is actually good. Borland (the maker of Jbuilder,
another Java IDE) won't release any further versions of JBuilder and will
move to eclipse as well (i.e, produce an IDE based on Eclipse).

-------------------------
Note: AJAX has nothing to do with Java. You can read more about
AJAX here.

Last edited by Compile 'em all; Aug 5, 2006 at 06:39 PM.
Compile 'em all is offline   0 Reply With Quote
Old Aug 5, 2006, 06:12 PM   #8
Compile 'em all
macrumors 601
 
Compile 'em all's Avatar
 
Join Date: Apr 2005
Quote:
Originally Posted by Palad1
I've been doing more and more .Net the past year, but had a discussion with a Java expert the other day, seems like Struts/JSP is on the way out, in favor of JFaces.
JFaces is going to replace Struts but not JSPs. JFaces uses JSP as its display
technology.
Compile 'em all is offline   0 Reply With Quote
Old Aug 5, 2006, 06:28 PM   #9
Palad1
macrumors 6502a
 
Palad1's Avatar
 
Join Date: Feb 2004
Location: London, UK
Thanks for the heads-up

I've spent too much time in an MVC-less land (WebForms, bleh), whish I could get back to Java... That'll give me an excuse to get a MBP

Speaking about Ajax, I had the displeasure to work with Atlas and I just checked-out google's Ajax toolkit, which seems quite nice.

You basically write Java code using a set of ajax-aware widgets and stuff your server code in servlets. Testing is done locally, before deploiement, your bytecode is automatically turned into JavaScript.

I think this is a very neat approach that may hint at solving Ajax' maintenability issues.

Cheers,
Palad1

ps: sorry for my spelling, I long for camino's inclusion of the Cocoa spellchecker :/
Palad1 is offline   0 Reply With Quote
Old Aug 5, 2006, 07:21 PM   #10
Compile 'em all
macrumors 601
 
Compile 'em all's Avatar
 
Join Date: Apr 2005
Quote:
Originally Posted by Palad1
ps: sorry for my spelling, I long for camino's inclusion of the Cocoa spellchecker :/
Did you try Camitools, may be it already has it.
Compile 'em all is offline   0 Reply With Quote
Old Aug 6, 2006, 06:38 AM   #11
AlmostThere
macrumors 6502a
 
Join Date: Feb 2005
Location: The royal throne of kings, the sceptred isle, the other Eden, the fortress built
Quote:
Originally Posted by mrichmon
Eclipse is still one of the most popular IDE's. NetBeans is good and gives you the total integration. You can get the same level of integration that NetBeans provides if you go with the Rational tooling from IBM. The Rational IDE is built on top of Eclipse so everything you know about Eclipse is the same in the Rational tools. JSF integration and EJB authoring is heavily automated for you.
Rational is available for OS X?
__________________
Join the army of the dead: http://www.urbandead.com
AlmostThere is offline   0 Reply With Quote
Old Aug 6, 2006, 12:23 PM   #12
mrichmon
macrumors 6502a
 
Join Date: Jun 2003
Quote:
Originally Posted by AlmostThere
Rational is available for OS X?
Not that I am aware of. The original poster did not specify platform requirements.
mrichmon is offline   0 Reply With Quote

Reply
MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Similar Threads
thread Thread Starter Forum Replies Last Post
Some apps prompt to install Java 6 even when Java 7 is installed MacMan988 OS X Mavericks (10.9) 1 Apr 18, 2014 08:56 AM
Java 6.x security risk (?) vs Java 7.x and broken apps w/ v7.x installs? mgiamo Mac Basics and Help 1 Dec 15, 2013 04:48 PM
Java questions. alexwei MacBook Pro 6 Aug 27, 2013 05:16 PM
Chrome on OS X -- Java plugin / Java 7 vs Java 6 Issue booyahbooyah Mac Applications and Mac App Store 4 May 31, 2013 10:13 AM
Installed Java 7.07 but doesn't show up in Java preferences? -mattias- OS X 10.8 Mountain Lion 21 Aug 31, 2012 05:49 PM

Forum Jump

All times are GMT -5. The time now is 04:42 AM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2013, MacRumors.com, LLC