This week's book giveaway is in the Java 8 forum.
We're giving away four copies of Java 8 in Action and have Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft on-line!
See this thread for details.
The moose likes Cattle Drive and the fly likes Isn't Java version 1.4 obsolete? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » This Site » Cattle Drive
Bookmark "Isn Watch "Isn New topic
Author

Isn't Java version 1.4 obsolete?

Kaydell Leavitt
Ranch Hand

Joined: Nov 18, 2006
Posts: 688

It seems to me that learning Java version 1.4 is obsolete.
1. For the Cattle Drive, we bought an edition of "Just Java 2" that covers Java version 5.0.
2. Here is a link that I followed from the Cattle Drive website to download Java 1.4 and the Sun site says that 1.4 has reached the end of its life.
http://java.sun.com/j2se/1.4.2/download.html
3. I believe that my computer running Vista may require Java version 6.0

Can we use Java 5.0 (or even 6.0) for the Cattle Drive now?



Katrina Owen
Sheriff

Joined: Nov 03, 2006
Posts: 1347
    
  13
You may use the later versions of Java, but for the assignments we will ask you to ensure that they would compile as Java 1.4.

Java 5.0 adds some complexity that is really great, but essentially unnecessary for the major lessons that the Cattle Drive - eh - drives home.
Kaydell Leavitt
Ranch Hand

Joined: Nov 18, 2006
Posts: 688

OK, Thanks.
Mike Simmons
Ranch Hand

Joined: Mar 05, 2008
Posts: 2970
    
    9
Perhaps it's time to update the instructions so they ask the user to download a JDK that is more readily available,
like maybe something here. I suppose if you really want to, it's possible to find more ancient JDK versions. But you have to skip past several messages suggesting you use something less cobwebby. I suggest the Cattle Drive instructions should maybe either link to a modern JDK, or at least give a better link to the specific now-deprecated JDK that you want people to use. If you opt for the former, it would be helpful to add instructions on how to compile with the -source flag in order to (a) eliminate pesky generics warnings, and (b) actually do what Katrina just asked: " ensure that they would compile as Java 1.4." Well, there are more complicated library issues too I suppose, but the biggest source of friction at the moment is that you're asking people to use a restricted subset of the language, without clear instructions on how to achieve this.

Note that it's probably worthwhile to check other links in the instructions to verify whether they're still current, and useful. There's at least one other problem ("Sun's JDK class documentation") just on the intro page; I haven't tried the later pages.

[ EJFH: Fix weird formatting issue ]
Kaydell Leavitt
Ranch Hand

Joined: Nov 18, 2006
Posts: 688

One of the reasons that I'm taking the Cattle drive is to get more experience so that I can pass the SCJP 5.0 exam.

I believe that Sun no longer offers the 1.4 SCJP exam certificate. It doesn't make sense for me to use Java 5.0 and compile for 1.4 (though this is an interesting thing to me).

Katrina Owen
Sheriff

Joined: Nov 03, 2006
Posts: 1347
    
  13
I agree that the instructions could use an overhaul - maybe one of the volunteers around here will take care of it.

I'm not here to convince you (or anyone else) to take the Cattle Drive. I am here because I took the Cattle Drive and found it to be very helpful - it taught me many things that I did not learn at university. So I stuck around, hoping to help other people who may want to learn what the Cattle Drive has to teach.

I'm not sure if you are asking whether the Cattle Drive will help you pass the SCJP 5.0 exam - I can't say, because I haven't taken it. I can only share with you what I have learned from it.

1) Writing readable code.
I learned more about writing good code from the lessons in the cattle drive than any books or courses. The lessons are applicable to other languages (I code in a different language at work). There are books that are fabulous that teach these things:
Clean Code (Robert Martin)
Implementation Patterns (Kent Beck)
The Pragmatic Programmer (Thomas/Hunt).
But I don't know if I could have learned from the books the way I learned from the Cattle Drive without having taken it first.

2) Humility.
I learned more here than any other place that there is always another way of approaching a problem - there is always a different solution, and it might be better than the one I came up with. Even when I thought I had coded a masterpiece the nitpickers had something to say. And they were right - every time
This is a lesson that I apply every day in my work. Only yesterday, I had a tangled piece of legacy code that I had to extend. I took the core idea of the code, wrote some unit tests, and tried to extend the idea. I think I spent 4 hours digging a deeper hole before I realized that a different approach might be better. After that it only took about an hour and a half until I had a working prototype.

I also learned a few things about optimization, and a thing or two about conforming to the standards set by a group - not because they are the best standards, but because they are the ones that the group has chosen. I place my braces one place here - a different place at work. I don't have a very passionate view about where they go, but I certainly appreciate the uniformity, no matter where I am.

3) The idea of refactoring.
While the Cattle Drive doesn't teach you to refactor in the sense that you change the structure of the code without changing the behavior in a controlled manner (with automated tests and small steps), the Cattle Drive does teach you to look at your code and see that this here is similar to that there, that if you move this over here then the flow of the code becomes easier to follow, that if you change the name of this variable, then the reader isn't guessing what you mean anymore, and once you do that, you suddenly see something that allows you to simplify the whole thing. If anything, I learned that the number of times I submitted something before it passed was irrelevant. The code went back and forth, and each time, a layer of crud was taken off, and something more beautiful emerged. Each layer exposed something new in the code - and each time I learned something else.

In college, I never got feedback on my code. If it ran, it passed. Heck - I know some people in my classes that submitted code that barely compiled, much less ran correctly, and their code passed. So I learned whatever I could figure out on my own. The problem being that I didn't know what I might have misunderstood or just plain missed. I didn't know what I didn't know. Here, I could be certain that I would be led to an understanding based on where I was right at that moment.

Katrina
Kaydell Leavitt
Ranch Hand

Joined: Nov 18, 2006
Posts: 688

I appreciate the Cattle Drive. I think that I am learning from it. I'll try to be more humble because I can't learn without being humble, and I'll try to show gratitude for what I'm learning.

I accept the nit-picking that I received and I revised my exercise until I was passed. This is exactly why I took the Cattle Drive too, is to get feedback from other Java programmers) and I think that the Cattle Drive is good.

I think that turn-about-is-fair-play. The people running the Cattle Drive run a good program, but it's not perfect. For example, since we can only use version 1.4, I believe that I could have bought the earlier edition of the book "Just Java" for $6.00 instead of paying $26.00 and I would have had a book that matches the curriculum.

It makes a lot of sense to me to learn 1.4 as a subset of 1.5 before learning the full 1.5.

Also, the link to download the JDK says it links to 1.4, but it links to 1.6 and you have to search for 1.4, wondering whether you should use 1.4 like it says on the Cattle Drive webpage or not.

What I really want though, is to get on with it and get some exercises done and get more feedback.

Carol Murphy
village idiot
Bartender

Joined: Mar 15, 2001
Posts: 1190
Kaydell, if there is one thing that defines the people here at JavaRanch, it is openess to suggestions. I am sure someone will have a look at the links you mentioned in the instructions, (and thank you for the heads up, by the way) and update the page shortly. Just a reminder though, your nitpickers are volunteers, as are the folks who keep things running, and to my knowledge the folks who update the download pages at Sun don't notify them when things change. So when you run across something like this, send up a flare!
There has been talk of moving on to version 5, but obviously it hasn't happened yet.
Kaydell Leavitt
Ranch Hand

Joined: Nov 18, 2006
Posts: 688

I respect the JavaRanch.com and the Cattle Drive. I showed this by paying $200.00 tuition instead of paying $300.00 to Sun just to take a multiple-guess exam SCJP 5.0.

Other things that I like about the Cattle Drive is to learn about JDBC and Servlets because it seems like these skills are worth money in the current job-market.

Hmmm. If I'm humble, I should also learn better object-orientation by doing the exercises for OOP and getting the feedback.




Marilyn de Queiroz
Sheriff

Joined: Jul 22, 2000
Posts: 9043
    
  10
Many companies are still (for one reason or another) using java 1.4. You can download and use java5 or java6 or perhaps even java 7, but it still must compile and run using java 1.4 (at this time). Most of the CattleDrive pages/assignments are ready to move to Java 5, but not all, and I think it would be really confusing to start with 5 or 6 and then have to move backwards when you get to Servlets, for example. Therefore we haven't officially moved to java 5 yet.

I haven't taken the java5 SCJP exam, but I'd be really surprised if they concentrate on questions regarding the format method and such. Once you get to the OOP assignments and begin to use Collections, then the real advantage of java 5 begins. I think the strength of the Cattle Drive is in teaching things that are more generally applicable than the specific differences between java 1.4 and java 1.5 ... as Katrina mentioned above.


JavaBeginnersFaq
"Yesterday is history, tomorrow is a mystery, and today is a gift; that's why they call it the present." Eleanor Roosevelt
Marilyn de Queiroz
Sheriff

Joined: Jul 22, 2000
Posts: 9043
    
  10
Mike Simmons wrote:Perhaps it's time to update the instructions so they ask the user to download a JDK that is more readily available,
like maybe something here. I suppose if you really want to, it's possible to find more ancient JDK versions. But you have to skip past several messages suggesting you use something less cobwebby. I suggest the Cattle Drive instructions should maybe either link to a modern JDK, or at least give a better link to the specific now-deprecated JDK that you want people to use. If you opt for the former, it would be helpful to add instructions on how to compile with the -source flag in order to (a) eliminate pesky generics warnings, and (b) actually do what Katrina just asked: " ensure that they would compile as Java 1.4." Well, there are more complicated library issues too I suppose, but the biggest source of friction at the moment is that you're asking people to use a restricted subset of the language, without clear instructions on how to achieve this.

Note that it's probably worthwhile to check other links in the instructions to verify whether they're still current, and useful. There's at least one other problem ("Sun's JDK class documentation") just on the intro page; I haven't tried the later pages.


Thanks for the info, Mike. I wasn't aware that the contents of the link had changed. Hopefully, now that the new year has begun, my life will get back to a more normal pace and I can get this finished quickly.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Isn't Java version 1.4 obsolete?
 
Similar Threads
Why does Cattle Drive Initial instructions state to download obsolete JDK
Not able to execute a sample jsp file
Cattle Drive up to date?
1.4 & 1.6
Java Assignments for a Beginner