Learning Java on Ubuntu
February 12, 2008 9:55 PM   RSS feed for this thread Subscribe

How should I get started in programming Java on Ubuntu Linux?

I'm interested in programming (web) applets with graphical interfaces particularly. I have no experience with Java at all. I'm looking for recommendations on setting up a development environment, helpful books, online tutorials, anything at all - all keeping in mind that this is under linux+firefox. Googling reveals a lot of stuff, much of it outdated, and I'm hoping the hive mind can separate the wheat from the chafe.

I realize Java is supposed to be the end all of portability, but I feel like most of the resources I'm finding assume a windows development environment.

Communities of developers (something like Perlmonks) would be awesome as well.

I have programming experience, and am a comfortable with OO concepts, but know nothing of the Java take on them.
posted by phrontist to computers & internet (14 comments total) 8 users marked this as a favorite
Oh, I'm also experiencing a degree of culture shock (this is the first proprietary language I've ever tried to learn). The Java world seems to do a lot of things differently (JSON, Netbean, etc.). Is there a good lexicon of all these odd java-specific terms?
posted by phrontist at 9:58 PM on February 12, 2008


Eclipse is probably the most popular Java IDE (integrated development environment). It's more than a Java IDE, actually, as it has a plugin-based architecture that lets people add all kinds of capabilities to it.

You can install it in Ubuntu with the command:
  sudo aptitude install eclipse
That will probably get you started. I don't have any specific tutorial links or books to recommend. I picked up Java after knowing C++, so it was a fairly easy transition. The primary resource I use is the online API reference at Sun's website.
posted by knave at 10:24 PM on February 12, 2008


Yeah, there's a lot of choice in the java development space. That can be quite confusing.
I'd say start with installing java 6 on ubuntu and install either Netbeans or Eclipse. From there the differences between developing on windows and linux are minimal.

Then choose a beginners manual and work through that.

One warning: nobody builds or uses applets anymore. If you want GUI applications that can be deployed over http you could look into swinglabs, which is by Sun, or Eclipse Rich Client Project (RCP), which stems from IBM.

You might like javalobby as a developer community.
posted by jouke at 10:35 PM on February 12, 2008


JSON is for JavaScript (i.e. ECMAScript), not Java, and so pretty much entirely unrelated to Java. I'm unclear on why you consider Java to be a "proprietary" language...exactly what have you programmed in in the past, and why is this new language such a shock?

I'm seconding jouke in that nearly nobody develops java apps, so I also question why that is your focus.

I wouldn't say that the Java world "does things differently"--it's just a different language, like any other programming language, and there are a lot of different ways of using the language to do what you want to do with it -- isn't that a Perl mantra? Anyway, thisbean or thatbean is just one way of abstracting the complexity of things you want to do in Java. It's nothing to be concerned about.

For communities of developers, you are probably going to have to get a bit more focused on what you want out of Java. There are so many developers out there and methodologies that I don't think that there's necessarily going to be one generic "Java developers forum" out there. (although I may be wrong).

If you really want a comprehensive understanding this might be one of those times that you break down and buy a book. There are loads of good books out there...do research on Amazon and figure out which one matches your style, but try to find one that describes the Java landscape, since it is large and it sounds like you want to understand it.

On the other hand, you can take the other tack and realize it doesn't really matter what terminology is being used and what sort of weird things are going on...just start learning the language. It's written in a really straightforward way and nothing should come as a real surprise...just start making simple Java apps (run them in the command line, please don't bother with applets).
posted by Deathalicious at 11:02 PM on February 12, 2008


Also, for most of these Java-specific terms Wikipedia or google will serve you fine. Both the article on JSON (which, as noted, is for JavaScript) and Netbean do an excellent job of explaining what they are.
posted by Deathalicious at 11:05 PM on February 12, 2008


I have programming experience, and am a comfortable with OO concepts, but know nothing of the Java take on them.

Java does not support multiple inheritance or operator overloading, but you can overload methods. What other major OO concepts are you familiar with?
posted by Blazecock Pileon at 12:09 AM on February 13, 2008


Oh, and regarding what beginners manual to buy; I've heard people who like the style of the Head First series. So that would be Head First Java.
posted by jouke at 2:56 AM on February 13, 2008


Seconding Head First Java. The other big Java IDE is NetBeans (you can find many articles comparing NetBeans vs Eclipse by searching). Having used both, I'd have to say that they're very similar in most respects, but I've found NetBeans' GUI builder incredibly useful, so if you're building GUI applications, at least give it a go.
posted by primer_dimer at 3:16 AM on February 13, 2008


If you want a completely entry-level introduction to Java and OO, check out BlueJ Java. Its (free) development environment allows you to easily create instances of objects and call its functions for testing.There's also a book that's pretty good if you're a complete beginner.

I also intensely suggest you bookmark Roedy Green’s Java & Internet Glossary, which is an excellent resource about pretty much all Java topics.
posted by Zarkonnen at 3:46 AM on February 13, 2008


On the same note as Zarkonnen: I just finished up a course in Java at my university, and we used Dr.Java, which is purposely built for students just beginning java programming. It doesn't have some of the flashy elements of Eclipse, but my fiance (a computer programmer by trade) thought it was a great environment, to the point where he sought out the same real-time testing for his own work. The "interactions" pane allows you to try out a piece of code to see if you got it right.
posted by nursegracer at 5:54 AM on February 13, 2008


I'm seconding jouke in that nearly nobody develops java apps anymore

I'm seconding jouke in that nearly nobody develops java applets anymore

Fixed that for ye.
posted by toastchee at 7:57 AM on February 13, 2008


toastchee: "Fixed that for ye."

Yes. Yes you did. I just saw that and fake dope-slapped myself.
posted by Deathalicious at 10:29 AM on February 13, 2008


To the OP, if you're predominantly interested in graphical flashy things in web browsers, you should maybe be looking at Flash or Silverlight.

They're not free/open-source, and the Flash environment in particular is $$$, but the flipside is that good Flash animators/programmers are in very high demand.

Java applets still have some specialist use, but not so much these days for mainstream rich media things. It may yet have a renaissance as the Java graphic libraries improve and browsers get better.
posted by Artful Codger at 11:35 AM on February 13, 2008


Actually to toot the Adobe trumpet, Flex (which creates Flash files) is free and open source (the SDK is going to be given to the Mozilla foundation). It's pretty easy to program in and get going, and everyone has Flash player installed to view it. It also has a strong community behind it. They have an Eclipse based IDE which costs money, but if your willing to use your favourite text editor and command line its free as in beer. It's Sliverlight's competitor (or should I say Silverlight is Flex's competitor as Flex came first and is more established). ---- goo's consort (because man goo sounds wrong)
posted by goo at 12:55 PM on February 13, 2008


« Older Watching last night's Westmins...   |   Dark Continent music: I have ... Newer »
This thread is closed to new comments.